예제 #1
0
        public void Send_ShippingCostAboveZero_ShouldSendMessage()
        {
            // Arrange
            mockMessageService
            .Setup(ms => ms.Send(It.IsAny <string>()))
            .Verifiable();

            mockShippingCostCalculator
            .Setup(c => c.CalculateShippingCost(It.IsAny <Order>()))
            .Returns(0.01m);

            // Act
            orderSender.Send(new Order());

            // Assert
            mockMessageService.Verify(ms => ms.Send(It.IsAny <string>()), Times.Once);
        }
예제 #2
0
        public void Send_InvalidOrder_ShouldntSendMessage()
        {
            // Arrange
            OrderSender orderSender = new OrderSender(new OrderCalculator(), messageService);

            // Act
            orderSender.Send(new Order()
            {
                TotalAmount = 0m
            });

            // Assert
            mockMessageService.Verify(ms => ms.Send(It.IsAny <Message>()), Times.Never);
        }
        public void Send_ValidOrder_RaiseOrderSentEvent()
        {
            // Arrange
            OrderSender orderSender = new OrderSender(new OrderCalculator(), new FakeMessageService());

            Order id = null;

            orderSender.OrderSent += (sender, args) => { id = args; };

            // Act
            orderSender.Send(new Order());

            // Asserts
            Assert.NotNull(id);
        }
예제 #4
0
        public void Send_ValidOrder_RaiseOrderSentEvent()
        {
            // Arrange
            mockMessageService
            .Setup(ms => ms.Send(It.IsAny <Message>()))
            .Verifiable();

            OrderSender orderSender = new OrderSender(new OrderCalculator(), messageService);

            Order id = null;

            orderSender.OrderSent += (sender, args) => { id = args; };

            // Act
            orderSender.Send(new Order());

            // Asserts
            Assert.NotNull(id);
        }