public void Given_invalid_order_When_saving_Then_return_false()
        {
            var invalidOrder = new OrderStub(false);
            var orderService = GetOrderService();

            var result = orderService.Save(invalidOrder);

            Assert.False(result);
        }
        public void When_repository_throws_Then_doesnt_send_email()
        {
            var orderRepositoryStub = new Mock<IRepository<Order>>();
            var order = new OrderStub(true);
            orderRepositoryStub.Setup(x => x.Save(It.IsAny<Order>())).
                Throws(new Exception("Oh no! the repository is falling appart "));

            var emailServiceMock = new Mock<IEmailService>();
            emailServiceMock.Setup(x => x.SendConfirmationEmail(It.IsAny<Order>()));
            var orderService = GetOrderService(orderRepositoryStub.Object, emailServiceMock.Object);
            orderService.Logger = new Mock<ILogger>().Object;

            orderService.Save(order);

            emailServiceMock.Verify(x=>x.SendConfirmationEmail(order), Times.Never());
        }
 public OrderServiceTests()
 {
     _orderStubValid = new OrderStub(true);
 }