Exemple #1
0
    it("should dispatch range change on shift then pop", function () {
        var set = Set.from([1, 3]);
        set.addRangeChangeListener(function (plus, minus, index) {
            spy(plus, minus, index); // ignore all others
        });

        var spy = jasmine.createSpy();
        expect(set.add(2)).toEqual(true);
        expect(set.toArray()).toEqual([1, 3, 2]);
        expect(spy).toHaveBeenCalledWith([2], [], 2);

        var spy = jasmine.createSpy();
        expect(set.shift()).toEqual(1);
        expect(set.toArray()).toEqual([3, 2]);
        expect(spy).toHaveBeenCalledWith([], [1], 0);

        var spy = jasmine.createSpy();
        expect(set.pop()).toEqual(2);
        expect(set.toArray()).toEqual([3]);
        expect(spy).toHaveBeenCalledWith([], [2], 1);

        var spy = jasmine.createSpy();
        expect(set.delete(3)).toEqual(true);
        expect(set.toArray()).toEqual([]);
        expect(spy).toHaveBeenCalledWith([], [3], 0);
    });
Exemple #2
0
 it("should dispatch range change on clear", function () {
     var set = Set.from([1, 2, 3]);
     var spy = jasmine.createSpy();
     set.addRangeChangeListener(spy);
     set.clear();
     expect(spy).toHaveBeenCalledWith([], [1, 2, 3], 0, set, undefined);
 });
Exemple #3
0
 it("should dispatch range change on shift", function () {
     var set = Set.from([1, 3, 2]);
     var spy = jasmine.createSpy();
     set.addRangeChangeListener(spy);
     expect(set.shift()).toEqual(1);
     expect(set.toArray()).toEqual([3, 2]);
     expect(spy).toHaveBeenCalledWith([], [1], 0, set, undefined);
 });
Exemple #4
0
 it("should dispatch range change on delete", function () {
     var set = Set.from([1, 2, 3]);
     var spy = jasmine.createSpy();
     set.addRangeChangeListener(spy);
     set["delete"](2);
     expect(set.toArray()).toEqual([1, 3]);
     expect(spy).toHaveBeenCalledWith([], [2], 1, set, undefined);
 });
Exemple #5
0
 it("should pop and shift", function () {
     var a = {i: 2};
     var b = {i: 1};
     var c = {i: 0};
     var set = Set.from([a, b, c]);
     expect(set.pop()).toBe(c);
     expect(set.shift()).toBe(a);
 });
Exemple #6
0
    it("should dispatch size property change on clear", function () {
        // var set = new Set([1, 2, 3]);
        var set = Set.from([1, 2, 3]);
        var spy = jasmine.createSpy();
        set.addBeforeOwnPropertyChangeListener("size", function (size) {
            spy("size change from", size);
        });

        set.addOwnPropertyChangeListener("size", function (size) {
            spy("size change to", size);
        });

        expect(set).toEqual(new Set([1, 2, 3]));
        set.clear();
        expect(set).toEqual(new Set());
        
        var argsForCall = spy.calls.all().map(function (call) { return call.args });
        expect(argsForCall).toEqual([
            ["size change from", 3],
            ["size change to", 0]
        ]);
    });