public async Task ListAsync_ReturnsObjects( [Frozen] Mock <AWContext> mockContext, string userId, string userName, Core.Entities.Customer customer, string shipMethod, Core.ValueTypes.Address address, Core.Entities.CreditCard creditCard, string cardSecurityNumber, string cardHolderName ) { //Arrange creditCard.ExpYear = short.Parse(DateTime.Today.Year.ToString()); creditCard.ExpMonth = byte.Parse(DateTime.Today.Month.ToString()); var salesOrders = new List <Core.Entities.SalesOrder>(); int orderCount = 2; for (int i = 0; i < orderCount; i++) { salesOrders.Add( new Core.Entities.SalesOrder( userId, userName, customer, shipMethod, address, address, creditCard, cardSecurityNumber, cardHolderName ) ); } var mockSet = salesOrders.AsQueryable().BuildMockDbSet(); mockContext.Setup(x => x.Set <Core.Entities.SalesOrder>()) .Returns(mockSet.Object); var repository = new EfRepository <Core.Entities.SalesOrder>(mockContext.Object); //Act var spec = new GetSalesOrdersForCustomerSpecification(salesOrders[0].Customer.CustomerNumber); var list = await repository.ListAsync(spec); //Assert list.Count.Should().Be(orderCount); }
public async Task Handle_SalesOrderWithStoreCustomer_Exists_ReturnSalesOrder( string userId, string userName, string cardSecurityNumber, string cardHolderName, Core.Entities.StoreCustomer customer, string shipMethod, ValueTypes.Address billToAddress, ValueTypes.Address shipToAddress, Core.Entities.CreditCard creditCard, [Frozen] Mock <IRepository <Core.Entities.SalesOrder> > salesOrderRepoMock, GetSalesOrderQueryHandler sut, GetSalesOrderQuery query ) { //Arrange creditCard.ExpYear = short.Parse(DateTime.Today.Year.ToString()); creditCard.ExpMonth = byte.Parse(DateTime.Today.Month.ToString()); var salesOrder = new Core.Entities.SalesOrder( userId, userName, customer, shipMethod, billToAddress, shipToAddress, creditCard, cardSecurityNumber, cardHolderName ); salesOrderRepoMock.Setup(x => x.GetBySpecAsync( It.IsAny <GetFullSalesOrderSpecification>(), It.IsAny <CancellationToken>() )) .ReturnsAsync(salesOrder); //Act var result = await sut.Handle(query, CancellationToken.None); //Assert result.Should().NotBeNull(); salesOrderRepoMock.Verify(x => x.GetBySpecAsync( It.IsAny <GetFullSalesOrderSpecification>(), It.IsAny <CancellationToken>() )); result.SalesOrderNumber.Should().Be(salesOrder.SalesOrderNumber); }
public async Task Handle_CreditCardExists_CreateSalesOrder( [Frozen] Mock <ISalesOrderIntegrationEventService> salesOrderIntegrationEventServiceMock, [Frozen] Mock <IRepository <Core.Entities.SalesOrder> > salesOrderRepositoryMock, [Frozen] Mock <IRepository <Core.Entities.CreditCard> > creditCardRepositoryMock, CreateSalesOrderCommandHandler sut, CreateSalesOrderCommand command, Core.Entities.CreditCard creditCard, DateTime expirationDate ) { //Arrange command.OrderItems.ForEach(_ => _.Discount = 0); creditCard.ExpMonth = byte.Parse(expirationDate.Month.ToString()); creditCard.ExpYear = short.Parse(expirationDate.Year.ToString()); creditCardRepositoryMock.Setup(_ => _.GetBySpecAsync( It.IsAny <GetCreditCardSpecification>(), It.IsAny <CancellationToken>() )) .ReturnsAsync(creditCard); //Act var result = await sut.Handle(command, CancellationToken.None); //Assert result.Should().BeTrue(); salesOrderIntegrationEventServiceMock.Verify(_ => _.AddAndSaveEventAsync( It.IsAny <IntegrationEvent>()) ); salesOrderRepositoryMock.Verify(_ => _.AddAsync( It.IsAny <Core.Entities.SalesOrder>(), It.IsAny <CancellationToken>()) ); }