From f7c2e077319dfe7cd1171c1a63948eb5d4f204aa Mon Sep 17 00:00:00 2001 From: Dima Granetchi Date: Thu, 13 Nov 2014 19:10:26 +0200 Subject: [PATCH] signal tests --- test/SignalTest.hx | 78 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 75 insertions(+), 3 deletions(-) diff --git a/test/SignalTest.hx b/test/SignalTest.hx index b2bc4cd..77cf1aa 100644 --- a/test/SignalTest.hx +++ b/test/SignalTest.hx @@ -1,6 +1,6 @@ package ; -import bindx.Bind; +import bindx.BindSignal; import buddy.*; using buddy.Should; @@ -10,8 +10,80 @@ class SignalTest extends BuddySuite { public function new() { super(); - describe("BindSignal functionality tests", { - it("signals should dispatch data"); + describe("FieldSignal functionality tests", { + + var fs:FieldSignal; + var callNum:Int; + + before({ + fs = new FieldSignal(); + callNum = 0; + }); + + it("signal listeners should listen signal", { + var f = "1"; + var t = "2"; + function listener(from:String, to:String) { + from.should.be(f); + to.should.be(t); + callNum ++; + fs.remove(listener); + }; + var listener2 = function (from:String, to:String) { + from.should.be(f); + to.should.be(t); + callNum ++; + }; + fs.add(listener); + fs.add(listener); + fs.add(listener2); + + fs.dispatch(f, t); // listener self-remove + callNum.should.be(2); + + fs.dispatch(f, t); + callNum.should.be(3); + + fs.removeAll(); + fs.dispatch(t, f); + callNum.should.be(3); + }); + + }); + + describe("MethodSignal functionality tests", { + + var ms:MethodSignal; + var callNum:Int; + + before({ + ms = new MethodSignal(); + callNum = 0; + }); + + it("signal listeners should listen signal", { + function listener() { + callNum ++; + ms.remove(listener); + }; + var listener2 = function () { + callNum ++; + }; + ms.add(listener); + ms.add(listener); + ms.add(listener2); + + ms.dispatch(); // listener self-remove + callNum.should.be(2); + + ms.dispatch(); + callNum.should.be(3); + + ms.removeAll(); + ms.dispatch(); + callNum.should.be(3); + }); + }); } } \ No newline at end of file