UNPKG

@drozdik.m/event

Version:
99 lines (98 loc) 3.24 kB
exports.__esModule = true; var unit_test_1 = require("@drozdik.m/unit-test"); var Event_1 = require("../src/Event"); var unitTest = new unit_test_1.UnitTest("Event"); var Foo = /** @class */ (function () { function Foo(id) { if (id === void 0) { id = 5; } this.id = id; } return Foo; }()); var Args = /** @class */ (function () { function Args(value) { this.value = value; } return Args; }()); unitTest.AddTestCase("Add, Invoke", function () { var event = new Event_1.Event(); var counter = 0; event.Invoke(null, null); unit_test_1.Assert.AreEqual(0, counter); event.Add(function (caller, args) { counter++; unit_test_1.Assert.IsNull(caller); unit_test_1.Assert.IsNull(args); }); event.Invoke(null, null); unit_test_1.Assert.AreEqual(1, counter); event.Add(function (caller, args) { counter++; unit_test_1.Assert.IsNull(caller); unit_test_1.Assert.IsNull(args); }); event.Invoke(null, null); unit_test_1.Assert.AreEqual(3, counter); }); unitTest.AddTestCase("Remove", function () { var event = new Event_1.Event(); var counter = 0; event.Invoke(null, null); unit_test_1.Assert.AreEqual(0, counter); event.Add(function (caller, args) { counter++; unit_test_1.Assert.IsNull(caller); unit_test_1.Assert.IsNull(args); }); function NullCallback(caller, args) { counter++; unit_test_1.Assert.IsNull(caller); unit_test_1.Assert.IsNull(args); } event.Invoke(null, null); unit_test_1.Assert.AreEqual(1, counter); event.Add(NullCallback); event.Invoke(null, null); unit_test_1.Assert.AreEqual(3, counter); for (var i = 1; i < 4; i++) { event.Remove(NullCallback); event.Invoke(null, null); unit_test_1.Assert.AreEqual(3 + i, counter); } }); unitTest.AddTestCase("Invoke with args", function () { var event = new Event_1.Event(); var counter = 0; event.Add(function (caller, args) { counter += args.value; unit_test_1.Assert.IsNull(caller); }); event.Invoke(null, new Args(1)); unit_test_1.Assert.AreEqual(1, counter); event.Invoke(null, new Args(4)); unit_test_1.Assert.AreEqual(5, counter); event.Add(function (caller, args) { counter += args.value; unit_test_1.Assert.IsNull(caller); }); event.Invoke(null, new Args(2)); unit_test_1.Assert.AreEqual(9, counter); }); unitTest.AddTestCase("Count, Empty, Clear", function () { var event = new Event_1.Event(); unit_test_1.Assert.AreEqual(0, event.Count()); unit_test_1.Assert.IsTrue(event.IsEmpty()); event.Add(function (caller, args) { }); unit_test_1.Assert.AreEqual(1, event.Count()); unit_test_1.Assert.IsFalse(event.IsEmpty()); event.Add(function (caller, args) { }); unit_test_1.Assert.AreEqual(2, event.Count()); unit_test_1.Assert.IsFalse(event.IsEmpty()); event.Clear(); unit_test_1.Assert.AreEqual(0, event.Count()); unit_test_1.Assert.IsTrue(event.IsEmpty()); }); unitTest.Run();