Exemplo n.º 1
0
        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 GetByIdAsync_ReturnsObject(
            [Frozen] Mock <DbSet <Core.Entities.SalesOrder> > mockSet,
            [Frozen] Mock <AWContext> mockContext,
            Core.Entities.SalesOrder salesOrder
            )
        {
            //Arrange
            mockSet.Setup(x => x.FindAsync(It.IsAny <object[]>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(salesOrder);

            mockContext.Setup(x => x.Set <Core.Entities.SalesOrder>())
            .Returns(mockSet.Object);
            var repository = new EfRepository <Core.Entities.SalesOrder>(mockContext.Object);

            //Act
            var result = await repository.GetByIdAsync(1);

            //Assert
            result.SalesOrderNumber.Should().Be(salesOrder.SalesOrderNumber);
        }
        public async Task AddAsync_SavesObject(
            List <Core.Entities.SalesOrder> salesOrders,
            Core.Entities.SalesOrder newSalesOrder
            )
        {
            //Arrange
            var mockSet = salesOrders.AsQueryable().BuildMockDbSet();

            var mockContext = new Mock <AWContext>();

            mockContext.Setup(x => x.Set <Core.Entities.SalesOrder>())
            .Returns(mockSet.Object);
            var repository = new EfRepository <Core.Entities.SalesOrder>(mockContext.Object);

            //Act
            var savedSalesOrder = await repository.AddAsync(newSalesOrder);

            //Assert
            mockSet.Verify(x => x.Add(It.IsAny <Core.Entities.SalesOrder>()));
            mockContext.Verify(x => x.SaveChangesAsync(It.IsAny <CancellationToken>()));
            newSalesOrder.Should().BeEquivalentTo(savedSalesOrder);
        }