public async Task Index() { var commission = new OneAdvisor.Model.Commission.Model.Commission.Commission() { Id = Guid.NewGuid(), AmountIncludingVAT = 100, VAT = 20, CommissionStatementId = Guid.NewGuid(), CommissionTypeId = Guid.NewGuid(), PolicyId = Guid.NewGuid(), PolicyNumber = "123456", UserId = Guid.NewGuid() }; var pagedItems = new PagedCommissions() { TotalItems = 1, SumAmountIncludingVAT = 300, SumVAT = 400, Items = new List <OneAdvisor.Model.Commission.Model.Commission.Commission>() { commission } }; var service = new Mock <ICommissionService>(); var authService = TestHelper.MockAuthenticationService(Scope.Branch); CommissionQueryOptions queryOptions = null; service.Setup(c => c.GetCommissions(It.IsAny <CommissionQueryOptions>())) .Callback((CommissionQueryOptions options) => queryOptions = options) .ReturnsAsync(pagedItems); var controller = new CommissionsController(service.Object, authService.Object); var result = await controller.Index("policyNumber", "desc", 15, 2, $"commissionTypeId={commission.CommissionTypeId}"); Assert.Equal(Scope.Branch, queryOptions.Scope.Scope); Assert.Equal("policyNumber", queryOptions.SortOptions.Column); Assert.Equal(SortDirection.Descending, queryOptions.SortOptions.Direction); Assert.Equal(15, queryOptions.PageOptions.Size); Assert.Equal(2, queryOptions.PageOptions.Number); Assert.Equal(commission.CommissionTypeId, queryOptions.CommissionTypeId.Single()); var okResult = Assert.IsType <OkObjectResult>(result); var returnValue = Assert.IsType <PagedCommissions>(okResult.Value); Assert.Same(pagedItems, returnValue); }