public void ListenInitialState() { var container = new StateContainer(new IndexedDictionary <string, object>()); var listenCalls = 0; container.Listen("players/:id/position/:attribute", (DataChange change) => { listenCalls++; }); container.Listen("turn", (DataChange change) => { listenCalls++; }); container.Listen("game/turn", (DataChange change) => { listenCalls++; }); container.Listen("messages/:number", (DataChange change) => { listenCalls++; }); container.Set(GetRawData()); Assert.AreEqual(9, listenCalls); }
public void ListenAddString() { var newData = GetRawData(); newData ["some_string"] = "hello!"; var listenCalls = 0; container.Listen("some_string", (DataChange change) => { listenCalls++; Assert.AreEqual("add", change.operation); Assert.AreEqual("hello!", change.value); }); container.Set(newData); Assert.AreEqual(1, listenCalls); }
public void ListenWithImmediate() { var container = new StateContainer(GetRawData()); var listenCalls = 0; container.Listen("players/:id/position/:attribute", (DataChange change) => { listenCalls++; }, true); container.Listen("turn", (DataChange change) => { listenCalls++; }, true); container.Listen("game/turn", (DataChange change) => { listenCalls++; }, true); container.Listen("messages/:number", (DataChange change) => { listenCalls++; }, true); Assert.AreEqual(9, listenCalls); }