public async Task GetUserCompanyMonthlyCommissionData()
        {
            var data = new UserCompanyMonthlyCommissionData()
            {
                AmountExcludingVAT = 100,
                CompanyId          = Guid.NewGuid(),
            };

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

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

            UserCompanyMonthlyCommissionQueryOptions queryOptions = null;

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

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

            var companyId = Guid.NewGuid();
            var result    = await controller.GetUserCompanyMonthlyCommissionData("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 <UserCompanyMonthlyCommissionData> >(okResult.Value);

            Assert.Same(items, returnValue);
        }