Пример #1
0
        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);
        }
Пример #2
0
        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);
        }