Ejemplo n.º 1
0
        public void TestSource_WhenDifferentConfigsForBaseAndDerived_ThenReceiveFromBoth()
        {
            const string exchangeName        = "exchange";
            const string exchangeType        = "type";
            const string routingKey          = "route";
            const string derivedExchangeName = "derived-exchange";
            const string derivedExchangeType = "derived-type";
            const string derivedRoutingKey   = "derived-route";

            var derivedTestEvent  = new DerivedTestEvent();
            var derivedTestEvent2 = new DerivedTestEvent();
            var sourceMock        = new Mock <IEventSource>(MockBehavior.Strict);

            sourceMock.Setup(m => m.ReceiveEvents <DerivedTestEvent>()).Returns(Observable.Return(derivedTestEvent));
            var derivedSourceMock = new Mock <IEventSource>(MockBehavior.Strict);

            derivedSourceMock.Setup(m => m.ReceiveEvents <DerivedTestEvent>()).Returns(Observable.Return(derivedTestEvent2));
            var factoryMock = new Mock <IEventProcessorFactory>(MockBehavior.Strict);

            factoryMock.Setup(m => m.CreateSource(exchangeName, exchangeType, routingKey)).Returns(sourceMock.Object);
            factoryMock.Setup(m => m.CreateSource(derivedExchangeName, derivedExchangeType, derivedRoutingKey)).Returns(derivedSourceMock.Object);
            var exchangeConfiguration = new ExchangeConfiguration();

            exchangeConfiguration.ConfigureEventSource(typeof(TestEvent), exchangeName, exchangeType, routingKey);
            exchangeConfiguration.ConfigureEventSource(typeof(DerivedTestEvent), derivedExchangeName, derivedExchangeType, derivedRoutingKey);

            var bus            = new Bus(factoryMock.Object, exchangeConfiguration) as IEventSource;
            var receivedEvents = bus.ReceiveEvents <DerivedTestEvent>().ToArray().Wait();

            Assert.Equal(2, receivedEvents.Length);
            Assert.True(receivedEvents.Contains(derivedTestEvent));
            Assert.True(receivedEvents.Contains(derivedTestEvent2));
            sourceMock.Verify(m => m.ReceiveEvents <DerivedTestEvent>(), Times.Once);
            derivedSourceMock.Verify(m => m.ReceiveEvents <DerivedTestEvent>(), Times.Once);
        }
Ejemplo n.º 2
0
        public void TestSender_WhenDifferentConfigsForBaseAndDerived_ThenSendToBoth()
        {
            const string exchangeName        = "exchange";
            const string derivedExchangeName = "derived-exchange";

            var derivedTestEvent = new DerivedTestEvent();
            var senderMock       = new Mock <IEventSender>(MockBehavior.Strict);

            senderMock.Setup(m => m.SendEvent(derivedTestEvent));
            var derivedSenderMock = new Mock <IEventSender>(MockBehavior.Strict);

            derivedSenderMock.Setup(m => m.SendEvent(derivedTestEvent));
            var factoryMock = new Mock <IEventProcessorFactory>(MockBehavior.Strict);

            factoryMock.Setup(m => m.CreateSender(exchangeName)).Returns(senderMock.Object);
            factoryMock.Setup(m => m.CreateSender(derivedExchangeName)).Returns(derivedSenderMock.Object);
            var exchangeConfiguration = new ExchangeConfiguration();

            exchangeConfiguration.ConfigureEventSender(typeof(TestEvent), exchangeName);
            exchangeConfiguration.ConfigureEventSender(typeof(DerivedTestEvent), derivedExchangeName);

            var bus = new Bus(factoryMock.Object, exchangeConfiguration) as IEventSender;

            bus.SendEvent(derivedTestEvent);

            senderMock.Verify(m => m.SendEvent(derivedTestEvent), Times.Once);
            derivedSenderMock.Verify(m => m.SendEvent(derivedTestEvent), Times.Once);
        }
Ejemplo n.º 3
0
        public void TestSource_WhenConfiguredForBaseEvent_ThenReceiveDerived()
        {
            const string exchangeName = "exchange";
            const string exchangeType = "type";
            const string routingKey   = "route";

            var derivedTestEvent = new DerivedTestEvent();
            var sourceMock       = new Mock <IEventSource>(MockBehavior.Strict);

            sourceMock.Setup(m => m.ReceiveEvents <DerivedTestEvent>()).Returns(Observable.Return(derivedTestEvent));
            var factoryMock = new Mock <IEventProcessorFactory>(MockBehavior.Strict);

            factoryMock.Setup(m => m.CreateSource(exchangeName, exchangeType, routingKey)).Returns(sourceMock.Object);
            var exchangeConfiguration = new ExchangeConfiguration();

            exchangeConfiguration.ConfigureEventSource(typeof(TestEvent), exchangeName, exchangeType, routingKey);

            var bus           = new Bus(factoryMock.Object, exchangeConfiguration) as IEventSource;
            var receivedEvent = bus.ReceiveEvents <DerivedTestEvent>().Wait();

            Assert.Equal(derivedTestEvent, receivedEvent);
            sourceMock.Verify(m => m.ReceiveEvents <DerivedTestEvent>(), Times.Once);
        }
Ejemplo n.º 4
0
 protected void Handle(DerivedTestEvent ev)
 {
     Fired2++;
 }