public async Task Delete()
        {
            var commissionErrorId = Guid.NewGuid();

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

            var result = new Result()
            {
                Success = true
            };

            ScopeOptions options = null;
            Guid         deleted = Guid.Empty;

            service.Setup(c => c.DeleteError(It.IsAny <ScopeOptions>(), It.Is <Guid>(m => m == commissionErrorId)))
            .Callback((ScopeOptions o, Guid d) =>
            {
                deleted = d;
                options = o;
            })
            .ReturnsAsync(result);

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

            var actual = await controller.Delete(commissionErrorId);

            Assert.Equal(commissionErrorId, deleted);
            Assert.Equal(Scope.Branch, options.Scope);

            var okResult    = Assert.IsType <OkObjectResult>(actual);
            var returnValue = Assert.IsType <Result>(okResult.Value);

            Assert.Same(result, returnValue);
        }
        public async Task Index()
        {
            var error = new OneAdvisor.Model.Commission.Model.CommissionError.CommissionError()
            {
                Id = Guid.NewGuid(),
                CommissionStatementId = Guid.NewGuid(),
                CommissionTypeId      = Guid.NewGuid(),
                ClientId = Guid.NewGuid(),
                PolicyId = Guid.NewGuid(),
                Data     = new OneAdvisor.Model.Commission.Model.ImportCommission.ImportCommission()
                {
                    PolicyNumber       = "123",
                    AmountIncludingVAT = "50",
                    VAT = "5"
                },
            };

            var errors = new PagedItems <OneAdvisor.Model.Commission.Model.CommissionError.CommissionError>()
            {
                TotalItems = 1,
                Items      = new List <OneAdvisor.Model.Commission.Model.CommissionError.CommissionError>()
                {
                    error
                }
            };

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

            CommissionErrorQueryOptions options = null;

            service.Setup(c => c.GetErrors(It.IsAny <CommissionErrorQueryOptions>()))
            .Callback((CommissionErrorQueryOptions o) => options = o)
            .ReturnsAsync(errors);

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

            var result = await controller.Index("commissionTypeId", "desc", 15, 2);

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

            var okResult    = Assert.IsType <OkObjectResult>(result);
            var returnValue = Assert.IsType <PagedItems <OneAdvisor.Model.Commission.Model.CommissionError.CommissionError> >(okResult.Value);

            Assert.Same(errors, returnValue);
        }
        public async Task Get()
        {
            var error = new CommissionErrorEdit()
            {
                Id = Guid.NewGuid(),
                CommissionStatementId = Guid.NewGuid(),
                CommissionTypeId      = Guid.NewGuid(),
                ClientId = Guid.NewGuid(),
                PolicyId = Guid.NewGuid(),
                Data     = new OneAdvisor.Model.Commission.Model.ImportCommission.ImportCommission()
                {
                    PolicyNumber       = "123",
                    AmountIncludingVAT = "50",
                    VAT = "5"
                },
            };

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

            ScopeOptions options = null;

            service.Setup(c => c.GetError(It.IsAny <ScopeOptions>(), It.Is <Guid>(m => m == error.Id)))
            .Callback((ScopeOptions scopeOptions, Guid a) => options = scopeOptions)
            .ReturnsAsync(error);

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

            var result = await controller.Get(error.Id);

            Assert.Equal(Scope.Branch, options.Scope);

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

            Assert.Same(error, returnValue);
        }
        public async Task ResolveMappingError()
        {
            var error = new CommissionErrorEdit()
            {
                Id = Guid.NewGuid(),
                CommissionStatementId = Guid.NewGuid(),
                CommissionTypeId      = Guid.NewGuid(),
                ClientId = Guid.NewGuid(),
                PolicyId = Guid.NewGuid(),
                Data     = new OneAdvisor.Model.Commission.Model.ImportCommission.ImportCommission()
                {
                    PolicyNumber       = "123",
                    AmountIncludingVAT = "50",
                    VAT = "5"
                },
            };

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

            var result = new Result()
            {
                Success = true,
                Tag     = new CommissionEdit()
                {
                    CommissionStatementId = error.CommissionStatementId,
                    PolicyId = error.PolicyId
                }
            };

            ScopeOptions        options1 = null;
            CommissionErrorEdit resolved = null;

            service.Setup(c => c.ResolveMappingError(It.IsAny <ScopeOptions>(), It.Is <CommissionErrorEdit>(e => e == error)))
            .Callback((ScopeOptions o, CommissionErrorEdit e) =>
            {
                resolved = e;
                options1 = o;
            })
            .ReturnsAsync(result);

            ScopeOptions options2 = null;

            service.Setup(c => c.AutoResolveMappingErrors(It.IsAny <ScopeOptions>(), It.Is <Guid>(m => m == error.CommissionStatementId), It.Is <Guid>(m => m == error.PolicyId)))
            .Callback((ScopeOptions o, Guid a, Guid b) =>
            {
                options2 = o;
            })
            .Returns(() => Task.CompletedTask);

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

            var actual = await controller.ResolveMappingError(error);

            Assert.Equal(Scope.Branch, options1.Scope);
            Assert.Equal(Scope.Branch, options2.Scope);
            Assert.Same(error, resolved);

            var okResult    = Assert.IsType <OkObjectResult>(actual);
            var returnValue = Assert.IsType <Result>(okResult.Value);

            Assert.Same(result, returnValue);
        }