public void TypeDetermination() { IMockMessage msg = new MockMessage1(); _bus.RegisterSubscriber(new MockSubscriber1()); // Handler wants MyMessage1 types, msg is IMsgInterface but runtime type MyMessage1, so it should still get called _bus.Send(msg); AssertHandleCounts(1); ResetHandleCounts(); MockMessageBase msg2 = new MockMessage2(); _bus.RegisterSubscriber(new MockSubscriber2()); // Similar here, Msg2Sub should still get called. _bus.Send(msg2); AssertHandleCounts(0, 1); }
public void GetKey_ConfiguresOnlyOnce_AndUsesProvidedFunctions() { var saga = new MockSaga(); var message1 = new MockMessage1() { Key = "FooKey" }; var message2 = new MockMessage2() { Key = "BazKey" }; Assert.AreEqual(0, saga.ConfigureMessageKeysCount); var result1 = manager.GetKey(saga, message1); var result2 = manager.GetKey(saga, message2); Assert.AreEqual("FooKey", result1); Assert.AreEqual("BazKey", result2); Assert.AreEqual(1, saga.ConfigureMessageKeysCount); }
void ISubscriber <MockMessage2> .Handle(MockMessage2 message) => Handle2Count++;