Beispiel #1
0
        public void Setup()
        {
            requestRouter = mockRequestRouter.Object;
            monitorCache  = mockMonitorCache.Object;
            factory       = mockFactory.Object;
            senderMonitor = mockSenderMonitor.Object;
            sender        = mockSender.Object;
            address       = mockAddress.Object;
            senderRouting = SenderRouting.For <ISender>(address);

            mockFactory
            .SetupGet(m => m.SenderType)
            .Returns(typeof(ISender));

            mockFactory
            .SetupGet(m => m.SenderMonitor)
            .Returns(senderMonitor);

            mockRequestRouter
            .Setup(m => m.RoutingFor <object>(out senderRouting))
            .Returns(true);

            mockFactory
            .Setup(m => m.CreateSender(It.IsAny <IAddress>()))
            .Returns(sender);

            mockFactory
            .SetupGet(m => m.SenderMonitor)
            .Returns(senderMonitor);
        }
Beispiel #2
0
        public void For_WithNullAddress_ThrowsArgumentNullException()
        {
            // Act
            TestDelegate create = () => SenderRouting.For <ISender>(null);

            // Assert
            Assert.That(create, Throws.ArgumentNullException);
        }
Beispiel #3
0
        public void For_WithAddress_ReturnsSameAddress()
        {
            // Arrange
            var routing = SenderRouting.For <ISender>(address);

            // Act
            var senderAddress = routing.Address;

            // Assert
            Assert.That(senderAddress, Is.EqualTo(address));
        }
Beispiel #4
0
        public void For_WithAddress_HasSenderType()
        {
            // Arrange
            var routing = SenderRouting.For <ISender>(address);

            // Act
            var senderType = routing.SenderType;

            // Assert
            Assert.That(senderType, Is.EqualTo(typeof(ISender)));
        }
Beispiel #5
0
        public void SenderFor_WithNoFactory_ThrowsMissingFactoryException()
        {
            // Arrange
            var cache         = new SenderCache(requestRouter, monitorCache);
            var senderRouting = SenderRouting.For <ISender>(address);

            mockRequestRouter
            .Setup(m => m.RoutingFor <object>(out senderRouting))
            .Returns(true);

            // Act
            TestDelegate senderFor = () => cache.SenderFor <object>();

            // Assert
            Assert.That(senderFor, Throws.TypeOf <MissingFactoryException>());
        }
Beispiel #6
0
        public void SetupMirroredResponse <TMessage>(SenderCache senderCache, TMessage response) where TMessage : class
        {
            mockSender
            .Setup(m => m.SendAndReceive(It.IsAny <object>(), It.IsAny <TimeSpan>()))
            .ReturnsAsync(response);

            var senderRouting = SenderRouting.For <ISender>(address);

            mockRequestRouter
            .Setup(m => m.RoutingFor <object>(out senderRouting))
            .Returns(true);

            mockFactory
            .Setup(m => m.CreateSender(It.IsAny <IAddress>()))
            .Returns(sender);

            senderCache.AddFactory(factory);
        }
Beispiel #7
0
        public void SenderFor_WithRoutingAndFactory_ReturnsSender()
        {
            // Arrange
            var cache         = new SenderCache(requestRouter, monitorCache);
            var senderRouting = SenderRouting.For <ISender>(address);

            mockRequestRouter
            .Setup(m => m.RoutingFor <object>(out senderRouting))
            .Returns(true);

            mockFactory
            .Setup(m => m.CreateSender(It.IsAny <IAddress>()))
            .Returns(sender);

            cache.AddFactory(factory);

            // Act
            var resolvedSender = cache.SenderFor <object>();

            // Assert
            Assert.That(resolvedSender, Is.EqualTo(sender));
        }