Exemplo n.º 1
0
        public async Task GetRevenueReportBySellerAsync_ShouldReturnResult()
        {
            // Arrange
            var reportService = TestableReportService.Create();

            var testOrders      = CreateTestOrders();
            var sellerId        = testOrders[1].CreatedById;
            var mockOrders      = testOrders.AsQueryable().BuildMock();
            var mockAppSettings = CreateAppSettings().AsQueryable().BuildMock();

            reportService.MockOrderRepo.Setup(repo => repo.QueryAsNoTracking()).Returns(mockOrders.Object);
            reportService.MockAppSettingRepo.Setup(repo => repo.QueryAsNoTracking()).Returns(mockAppSettings.Object);

            // Action
            var report = await reportService.GetRevenueReportBySellerAsync(DateTime.Now, sellerId);

            // Assert
            Assert.NotNull(report);
            var subTotal = testOrders.Where(order => order.CreatedById == sellerId).Sum(order => order.SubTotal);

            Assert.Equal(subTotal, report.SubTotals[0]);
            Assert.Empty(report.Totals);
            Assert.Empty(report.Costs);
            Assert.Empty(report.Profits);
        }
Exemplo n.º 2
0
        public async Task GetRevenueReportAsync_ShouldReturnResult_ForAllSellers()
        {
            // Arrange
            var reportService = TestableReportService.Create();

            var testOrders      = CreateTestOrders();
            var mockOrders      = testOrders.AsQueryable().BuildMock();
            var mockAppSettings = CreateAppSettings().AsQueryable().BuildMock();

            reportService.MockOrderRepo.Setup(repo => repo.QueryAsNoTracking()).Returns(mockOrders.Object);
            reportService.MockAppSettingRepo.Setup(repo => repo.QueryAsNoTracking()).Returns(mockAppSettings.Object);

            // Action
            var report = await reportService.GetRevenueReportAsync(DateTime.Now, null);

            // Assert
            Assert.NotNull(report);
            var subTotal = testOrders.Sum(order => order.SubTotal);
            var total    = testOrders.Sum(order => order.OrderTotal);
            var cost     = testOrders.Sum(order => order.OrderTotalCost);
            var profit   = total - cost;

            Assert.Equal(subTotal, report.SubTotals[0]);
            Assert.Equal(total, report.Totals[0]);
            Assert.Equal(cost, report.Costs[0]);
            Assert.Equal(profit, report.Profits[0]);
        }