inheritance tests
This commit is contained in:
+5
-4
@@ -94,13 +94,14 @@ class Bind {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static function isBindable(classType:ClassType):Bool {
|
public static function isBindable(classType:ClassType):Bool {
|
||||||
|
if (classType.module == "bindx.IBindable" && classType.name == "IBindable")
|
||||||
|
return true;
|
||||||
|
|
||||||
var t = classType;
|
var t = classType;
|
||||||
while (t != null) {
|
while (t != null) {
|
||||||
for (it in t.interfaces) {
|
for (it in t.interfaces)
|
||||||
var t = it.t.get();
|
if (isBindable(it.t.get()))
|
||||||
if (t.module == "bindx.IBindable" && t.name == "IBindable")
|
|
||||||
return true;
|
return true;
|
||||||
}
|
|
||||||
t = t.superClass != null ? t.superClass.t.get() : null;
|
t = t.superClass != null ? t.superClass.t.get() : null;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
+29
-24
@@ -11,36 +11,41 @@ class InheritanceTest extends BuddySuite {
|
|||||||
super();
|
super();
|
||||||
|
|
||||||
describe("Using classes inheritance", {
|
describe("Using classes inheritance", {
|
||||||
it("bindx should support class inheritance");
|
var b:BindableChild;
|
||||||
|
var bp:BindableParent;
|
||||||
|
var callNum:Int;
|
||||||
|
|
||||||
|
before({
|
||||||
|
b = new BindableChild();
|
||||||
|
bp = new BindableParent();
|
||||||
|
callNum = 0;
|
||||||
|
});
|
||||||
|
|
||||||
|
it("bindx should support class/interface inheritance", {
|
||||||
|
b.i = 1;
|
||||||
|
b.s = "a";
|
||||||
|
Bind.bind(b.i, function (_, _) callNum++);
|
||||||
|
Bind.bind(b.s, function (_, _) callNum++);
|
||||||
|
|
||||||
|
b.i = 2;
|
||||||
|
b.s = "b";
|
||||||
|
callNum.should.be(2);
|
||||||
|
|
||||||
|
bp.i = 1;
|
||||||
|
Bind.bind(bp.i, function (_, _) callNum++);
|
||||||
|
bp.i = 2;
|
||||||
|
callNum.should.be(3);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
/*
|
}
|
||||||
function testChild() {
|
|
||||||
var c = new BindableChild();
|
interface IIBindable extends IBindable {
|
||||||
c.i = 0;
|
|
||||||
c.s = "0";
|
|
||||||
var iChanged = 0;
|
|
||||||
Bind.bind(c.i, function (from, to) {
|
|
||||||
assertEquals(from, 0);
|
|
||||||
assertEquals(to, 1);
|
|
||||||
iChanged ++;
|
|
||||||
});
|
|
||||||
c.i = 1;
|
|
||||||
assertEquals(iChanged, 1);
|
|
||||||
|
|
||||||
var sChanged = 0;
|
|
||||||
Bind.bind(c.s, function (from, to) {
|
|
||||||
assertEquals(from, "0");
|
|
||||||
assertEquals(to, "1");
|
|
||||||
sChanged ++;
|
|
||||||
});
|
|
||||||
c.s = "1";
|
|
||||||
assertEquals(sChanged, 1);
|
|
||||||
}*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@:bindable
|
@:bindable
|
||||||
class BindableParent implements IBindable {
|
class BindableParent implements IIBindable {
|
||||||
public function new() {}
|
public function new() {}
|
||||||
|
|
||||||
public var i:Int;
|
public var i:Int;
|
||||||
|
|||||||
+1
-1
@@ -97,7 +97,7 @@ class SignalTest extends BuddySuite {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("MethodSignal functionality tests", {
|
describe("Using MethodSignal", {
|
||||||
|
|
||||||
var ms:MethodSignal;
|
var ms:MethodSignal;
|
||||||
var callNum:Int;
|
var callNum:Int;
|
||||||
|
|||||||
Reference in New Issue
Block a user