public async Task GetClientRevenueData()
        {
            var data = new ClientRevenueData()
            {
                RowNumber            = 1,
                ClientId             = Guid.NewGuid(),
                ClientLastName       = "van Niekerk",
                ClientInitials       = "DJ",
                ClientDateOfBirth    = DateTime.Now,
                MonthlyAnnuityMonth  = 2,
                AnnualAnnuityAverage = 3,
                TotalMonthlyEarnings = 4,
                OnceOff          = 5,
                LifeFirstYears   = 6,
                GrandTotal       = 7,
                AllocationsCount = 8
            };

            var pagedItems = new PagedItems <ClientRevenueData>()
            {
                TotalItems = 1,
                Items      = new List <ClientRevenueData>()
                {
                    data
                }
            };

            var service     = new Mock <ICommissionReportService>();
            var authService = TestHelper.MockAuthenticationService(Scope.Branch);

            ClientRevenueQueryOptions queryOptions = null;

            service.Setup(c => c.GetClientRevenueData(It.IsAny <ClientRevenueQueryOptions>()))
            .Callback((ClientRevenueQueryOptions options) => queryOptions = options)
            .ReturnsAsync(pagedItems);

            var controller = new CommissionReportsController(service.Object, authService.Object);

            var result = await controller.GetClientRevenueData("MonthlyAnnuityMonth", "desc", 15, 2, $"yearEnding=2019;monthEnding=1");

            Assert.Equal(Scope.Branch, queryOptions.Scope.Scope);
            Assert.Equal("MonthlyAnnuityMonth", queryOptions.SortOptions.Column);
            Assert.Equal(SortDirection.Descending, queryOptions.SortOptions.Direction);
            Assert.Equal(15, queryOptions.PageOptions.Size);
            Assert.Equal(2, queryOptions.PageOptions.Number);

            Assert.Equal(2019, queryOptions.YearEnding);
            Assert.Equal(1, queryOptions.MonthEnding);

            var okResult    = Assert.IsType <OkObjectResult>(result);
            var returnValue = Assert.IsType <PagedItems <ClientRevenueData> >(okResult.Value);

            Assert.Same(pagedItems, returnValue);
        }
        public async Task GetPastRevenueCommissionData()
        {
            var data = new PastRevenueCommissionData()
            {
                AmountExcludingVAT       = 100,
                CommissionEarningsTypeId = Guid.NewGuid(),
            };

            var items = new List <PastRevenueCommissionData>()
            {
                data
            };

            var service     = new Mock <ICommissionReportService>();
            var authService = TestHelper.MockAuthenticationService(Scope.Branch);

            PastRevenueCommissionQueryOptions queryOptions = null;

            service.Setup(c => c.GetPastRevenueCommissionData(It.IsAny <PastRevenueCommissionQueryOptions>()))
            .Callback((PastRevenueCommissionQueryOptions options) => queryOptions = options)
            .ReturnsAsync(items);

            var controller = new CommissionReportsController(service.Object, authService.Object);

            var companyId = Guid.NewGuid();
            var result    = await controller.GetPastRevenueCommissionData("AmountExcludingVAT", "desc", 15, 2, $"companyId=" + companyId.ToString());

            Assert.Equal(Scope.Branch, queryOptions.Scope.Scope);
            Assert.Equal("AmountExcludingVAT", queryOptions.SortOptions.Column);
            Assert.Equal(SortDirection.Descending, queryOptions.SortOptions.Direction);
            Assert.Equal(15, queryOptions.PageOptions.Size);
            Assert.Equal(2, queryOptions.PageOptions.Number);

            Assert.Equal(companyId, queryOptions.CompanyId.Single());

            var okResult    = Assert.IsType <OkObjectResult>(result);
            var returnValue = Assert.IsType <List <PastRevenueCommissionData> >(okResult.Value);

            Assert.Same(items, returnValue);
        }