Skip to content

Commit

Permalink
Implemented more test case.
Browse files Browse the repository at this point in the history
  • Loading branch information
OOPMan committed Sep 14, 2015
1 parent 0da9162 commit 8f9d7a6
Showing 1 changed file with 58 additions and 0 deletions.
58 changes: 58 additions & 0 deletions test/encapsulate.es6
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,64 @@ describe("encapsulate", () => {
});
});

describe("Inheritance tests", () => {
it("Object trait inheritance", () => {
const instantiatorA = encapsulate({
propertyA: 1,
methodA: function () {
return this.propertyA;
},
methodZ: function () {
return "A";
}
}),
instantiatorB = encapsulate(instantiatorA)({
propertyB: 2,
methodB: function () {
return this.propertyB;
},
methodZ: function self() {
return "B" + self.super();
}
}),
instantiatorC = encapsulate(instantiatorB)({
propertyC: 3,
methodC: function () {
return this.propertyC;
},
methodZ: function self() {
return self.super() + "C";
}
}),
instanceA = instantiatorA(),
instanceB = instantiatorB(),
instanceC = instantiatorC();
test.bool(instanceA.instanceOf(instantiatorA)).isTrue()
.number(instanceA.propertyA).is(1)
.number(instanceA.methodA()).is(1)
.string(instanceA.methodZ()).is("A");

test.bool(instanceB.instanceOf(instantiatorB)).isTrue()
.bool(instanceB.instanceOf(instantiatorA)).isTrue()
.number(instanceB.propertyA).is(1)
.number(instanceB.propertyB).is(2)
.number(instanceB.methodA()).is(1)
.number(instanceB.methodB()).is(2)
.string(instanceB.methodZ()).is("BA");

test.bool(instanceC.instanceOf(instantiatorC)).isTrue()
.bool(instanceC.instanceOf(instantiatorB)).isTrue()
.bool(instanceC.instanceOf(instantiatorA)).isTrue()
.number(instanceC.propertyA).is(1)
.number(instanceC.propertyB).is(2)
.number(instanceC.propertyC).is(3)
.number(instanceC.methodA()).is(1)
.number(instanceC.methodB()).is(2)
.number(instanceC.methodC()).is(3)
.string(instanceC.methodZ()).is("BAC");
});
});

describe("encapsulate({})", () => {
var instantiator = encapsulate({});
it("should produce a function",
Expand Down

0 comments on commit 8f9d7a6

Please sign in to comment.