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 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."); }