public void NewOrderShouldBeAddedTogetherOrderItemsSuccess() { //Arrange var handler = Fixture.GetOrderHandler(); var command = GeneratedObjectsTests.GenerateAddItemCommand(1); var order = GeneratedObjectsTests.GenerateOrder(); var product = GeneratedObjectsTests.GenerateProduct(1M); Fixture.OrderAdoRepositoryMock.Setup(r => r.GetLastCreatedOrderByUserId(command.UserId)).Returns((Order)null); Fixture.OrderComposerMock.Setup(r => r.Create(command.UserId)).Returns(order); Fixture.ProductRepositoryMock.Setup(r => r.GetById(command.ProductId)).Returns(product); //Act var result = handler.Handle(command); //Assert Fixture.OrderAdoRepositoryMock.Verify(r => r.GetLastCreatedOrderByUserId(command.UserId), Times.Once); Fixture.OrderComposerMock.Verify(r => r.Create(command.UserId), Times.Once); Fixture.ProductRepositoryMock.Verify(r => r.GetById(command.ProductId), Times.Once); Fixture.OrderAdoRepositoryMock.Verify(r => r.Save(order), Times.Once); Fixture.OrderItemAdoRepositoryMock.Verify(r => r.Save(It.IsAny <OrderItem>()), Times.Once); result.Should().BeOfType <ReturnedItemCommandResult>(); }
public void ShouldCreditCardToBeInvalidBySpecialCaracteresInCreditCardNumber() { var card = GeneratedObjectsTests.GenerateCreditCard("1?34-/4t5-1235-0082"); var result = card.Valid; result.Should().BeFalse(); card.Notifications.FirstOrDefault()?.Message.Should().Be("Credit Card Number is invalid."); }
public void ShouldCreditCardToBeInvalidByNumberFormat() { var card = GeneratedObjectsTests.GenerateCreditCard("123-4-123"); var result = card.Valid; result.Should().BeFalse(); card.Notifications.FirstOrDefault()?.Message.Should().Be("Credit Card Number is invalid."); }
public void ShouldCreditCardToBeValid() { var card = GeneratedObjectsTests.GenerateCreditCard("1234-5678-9012-3456"); var result = card.Valid; result.Should().BeTrue(); card.Notifications.Should().HaveCount(0); }
public Order GetValidOrderWithOrderItems() { var order = GeneratedObjectsTests.GenerateOrder(); var product = GeneratedObjectsTests.GenerateProduct(1M); order.AddItem(product, 1); return(order); }
public void ShouldRemoveItemIsFailed() { var order = GeneratedObjectsTests.GenerateOrder(3); order.RemoveItem(Guid.NewGuid()); var result = order.Valid; result.Should().BeFalse(); order.Notifications.FirstOrDefault()?.Message.Should().Be("This item doesn't exist in your list."); }
public void ShouldAddItemValid() { var order = GeneratedObjectsTests.GenerateOrder(); var product = GeneratedObjectsTests.GenerateProduct(2M); order.AddItem(product, 1); var result = order.Valid; result.Should().BeTrue(); order.Notifications.Should().HaveCount(0); }
public void ShouldRemoveItemIsSuccess() { var order = GeneratedObjectsTests.GenerateOrder(3); var orderItem = order.OrderItems.FirstOrDefault(); order.RemoveItem(orderItem.Id); var result = order.Valid; result.Should().BeTrue(); order.Notifications.Should().HaveCount(0); }
public void ShouldAddItemInvalid() { var order = GeneratedObjectsTests.GenerateOrder(); var product = GeneratedObjectsTests.GenerateProduct(1M); order.AddItem(product, 1000); var result = order.Valid; result.Should().BeFalse(); order.Notifications.FirstOrDefault()?.Message.Should().Be("The total weight is greater than 3kg allowed."); }
public void ShouldCheckoutIsFailedCreditCardInvalid() { var order = GeneratedObjectsTests.GenerateOrder(3); var address = GeneratedObjectsTests.GenerateAddress(); order.Checkout(address.ContactName, address.Street, address.City, address.Country, string.Empty); var result = order.Valid; result.Should().BeFalse(); order.Notifications.FirstOrDefault()?.Message.Should().Be("Credit Card Number is required."); }
public void ShouldCheckoutIsFailed() { var order = GeneratedObjectsTests.GenerateOrder(); var address = GeneratedObjectsTests.GenerateAddress(); var card = GeneratedObjectsTests.GenerateCreditCard("1234-5678-9012-3456"); order.Checkout(address.ContactName, address.Street, address.City, address.Country, card.Number); var result = order.Valid; result.Should().BeFalse(); order.Notifications.FirstOrDefault()?.Message.Should().Be("This order doesn't have items."); }
public void ShouldCheckoutIsSuccess() { var order = GeneratedObjectsTests.GenerateOrder(3); var address = GeneratedObjectsTests.GenerateAddress(); var card = GeneratedObjectsTests.GenerateCreditCard("1234-5678-9012-3456"); order.Checkout(address.ContactName, address.Street, address.City, address.Country, card.Number); var result = order.Valid; result.Should().BeTrue(); order.Notifications.Should().HaveCount(0); }
public void ShouldCheckoutIsFailedStreetInvalid() { var order = GeneratedObjectsTests.GenerateOrder(3); var address = GeneratedObjectsTests.GenerateAddress(); var card = GeneratedObjectsTests.GenerateCreditCard("1234-5678-9012-3456"); order.Checkout(address.ContactName, string.Empty, address.City, address.Country, card.Number); var result = order.Valid; result.Should().BeFalse(); order.Notifications.FirstOrDefault()?.Message.Should().Be("Street is required."); }
public void CheckoutShouldBeSucceed() { //Arrange var handler = Fixture.GetOrderHandler(); var command = GeneratedObjectsTests.GenerateCheckoutCommand(); var order = Fixture.GetValidOrderWithOrderItems(); Fixture.OrderAdoRepositoryMock.Setup(r => r.GetLastCreatedOrderById(command.OrderId)) .Returns(order); //Act var result = handler.Handle(command); //Assert Fixture.OrderAdoRepositoryMock.Verify(r => r.GetLastCreatedOrderById(command.OrderId), Times.Once); Fixture.OrderAdoRepositoryMock.Verify(r => r.Update(order), Times.Once); result.Should().BeOfType <ReturnedItemCommandResult>(); }
public void OrderShouldBeNullInAllRemoveMethod() { //Arrange var handler = Fixture.GetOrderHandler(); var command = GeneratedObjectsTests.GenerateRemoveAllCommand(); Fixture.OrderAdoRepositoryMock.Setup(r => r.GetLastCreatedOrderById(command.OrderId)) .Returns((Order)null); //Act var result = handler.Handle(command); //Assert Fixture.OrderAdoRepositoryMock.Verify(r => r.GetLastCreatedOrderById(command.OrderId), Times.Once); result.Should().BeNull(); handler.Notifications.Should().HaveCount(1); handler.Notifications.First().Message.Should().Be("Order isn't found."); }
public void OrderItemShouldBeAllRemovedInOrder() { //Arrange var handler = Fixture.GetOrderHandler(); var command = GeneratedObjectsTests.GenerateRemoveAllCommand(); var order = GeneratedObjectsTests.GenerateOrder(); Fixture.OrderAdoRepositoryMock.Setup(r => r.GetLastCreatedOrderById(command.OrderId)) .Returns(order); //Act var result = handler.Handle(command); //Assert Fixture.OrderAdoRepositoryMock.Verify(r => r.GetLastCreatedOrderById(command.OrderId), Times.Once); Fixture.OrderItemAdoRepositoryMock.Verify(r => r.DeleteAllbyOrderId(command.OrderId), Times.Once); result.Should().BeOfType <ReturnedItemCommandResult>(); }
public void RemovedOrderItemDontExist() { //Arrange var handler = Fixture.GetOrderHandler(); var command = GeneratedObjectsTests.GenerateRemoveItemCommand(); var order = Fixture.GetValidOrderWithOrderItems(); Fixture.OrderAdoRepositoryMock.Setup(r => r.GetLastCreatedOrderById(command.OrderId)) .Returns(order); //Act var result = handler.Handle(command); //Assert Fixture.OrderAdoRepositoryMock.Verify(r => r.GetLastCreatedOrderById(command.OrderId), Times.Once); result.Should().BeNull(); handler.Notifications.Should().HaveCount(1); handler.Notifications.First().Message.Should().Be("This item doesn't exist in your list."); }
public void OrderShouldBeFailedProductNotFound() { //Arrange var handler = Fixture.GetOrderHandler(); var command = GeneratedObjectsTests.GenerateAddItemCommand(1); var order = Fixture.GetValidOrderWithOrderItems(); Fixture.OrderAdoRepositoryMock.Setup(r => r.GetLastCreatedOrderByUserId(command.UserId)).Returns(order); Fixture.ProductRepositoryMock.Setup(r => r.GetById(command.ProductId)).Returns((Product)null); //Act var result = handler.Handle(command); //Assert Fixture.OrderAdoRepositoryMock.Verify(r => r.GetLastCreatedOrderByUserId(command.UserId), Times.Once); Fixture.ProductRepositoryMock.Verify(r => r.GetById(command.ProductId), Times.Once); result.Should().BeNull(); handler.Notifications.Should().HaveCount(1); handler.Notifications.First().Message.Should().Be("Product isn't found."); }
public void CheckoutWithCreditCardInvalid() { //Arrange var handler = Fixture.GetOrderHandler(); var command = GeneratedObjectsTests.GenerateCheckoutCommand(); var order = Fixture.GetValidOrderWithOrderItems(); command.CreditCardNumber = string.Empty; Fixture.OrderAdoRepositoryMock.Setup(r => r.GetLastCreatedOrderById(command.OrderId)) .Returns(order); //Act var result = handler.Handle(command); //Assert Fixture.OrderAdoRepositoryMock.Verify(r => r.GetLastCreatedOrderById(command.OrderId), Times.Once); result.Should().BeNull(); handler.Notifications.Should().HaveCount(2); handler.Notifications.First().Message.Should().Be("Credit Card Number is required."); handler.Notifications.Last().Message.Should().Be("Credit Card Number is invalid."); }