public async Task GetCommissionSplitRulePolicy()
        {
            var options = TestHelper.GetDbContext("GetCommissionSplitRulePolicy");

            var user1   = TestHelper.InsertUserDetailed(options);
            var client1 = TestHelper.InsertClient(options, user1.Organisation);

            var user2 = TestHelper.InsertUserDetailed(options);

            var policy1 = new PolicyEntity
            {
                Id        = Guid.NewGuid(),
                CompanyId = Guid.NewGuid(),
                ClientId  = client1.Client.Id,
                UserId    = user1.User.Id,
                Number    = "123465",
            };

            var csr1 = new CommissionSplitRulePolicyEntity
            {
                Id       = Guid.NewGuid(),
                PolicyId = policy1.Id,
                CommissionSplitRuleId = Guid.NewGuid()
            };

            using (var context = new DataContext(options))
            {
                context.Policy.Add(policy1);

                context.CommissionSplitRulePolicy.Add(csr1);

                context.SaveChanges();
            }

            using (var context = new DataContext(options))
            {
                var auditService           = new AuditServiceMock();
                var commissionSplitService = new CommissionSplitService(context, auditService);
                var service = new CommissionSplitRulePolicyService(context, commissionSplitService, auditService);

                //When
                var scope  = TestHelper.GetScopeOptions(user1);
                var actual = await service.GetCommissionSplitRulePolicy(scope, csr1.PolicyId);

                //Then
                Assert.Equal(csr1.Id, actual.Id);
                Assert.Equal(csr1.PolicyId, actual.PolicyId);
                Assert.Equal(csr1.CommissionSplitRuleId, actual.CommissionSplitRuleId);

                //Check scope
                scope  = TestHelper.GetScopeOptions(user2);
                actual = await service.GetCommissionSplitRulePolicy(scope, csr1.PolicyId);

                Assert.Null(actual.CommissionSplitRuleId);
            }
        }
Exemple #2
0
        public async Task <IActionResult> Get(Guid policyId)
        {
            var scope = AuthenticationService.GetScope(User);

            var model = await CommissionSplitRulePolicyService.GetCommissionSplitRulePolicy(scope, policyId);

            if (model == null)
            {
                return(NotFound());
            }

            return(Ok(model));
        }
        public async Task GetCommissionSplitRulePolicy_UseDefault()
        {
            var options = TestHelper.GetDbContext("GetCommissionSplitRulePolicy_UseDefault");

            var user1   = TestHelper.InsertUserDetailed(options);
            var client1 = TestHelper.InsertClient(options, user1.Organisation);

            var policy1 = new PolicyEntity
            {
                Id        = Guid.NewGuid(),
                CompanyId = Guid.NewGuid(),
                ClientId  = client1.Client.Id,
                UserId    = user1.User.Id,
                Number    = "123465",
            };

            var csr1 = new CommissionSplitRuleEntity
            {
                Id        = Guid.NewGuid(),
                UserId    = user1.User.Id,
                Name      = "Com Split Rule 1",
                IsDefault = true,
                Split     = new List <CommissionSplit>()
                {
                    new CommissionSplit()
                    {
                        UserId     = user1.User.Id,
                        Percentage = 100
                    }
                }
            };

            var csr2 = new CommissionSplitRuleEntity
            {
                Id        = Guid.NewGuid(),
                UserId    = user1.User.Id,
                Name      = "Com Split Rule 2",
                IsDefault = false,
                Split     = new List <CommissionSplit>()
                {
                    new CommissionSplit()
                    {
                        UserId     = user1.User.Id,
                        Percentage = 100
                    }
                }
            };

            using (var context = new DataContext(options))
            {
                context.Policy.Add(policy1);

                context.CommissionSplitRule.Add(csr2);
                context.CommissionSplitRule.Add(csr1);

                context.SaveChanges();
            }

            using (var context = new DataContext(options))
            {
                var auditService           = new AuditServiceMock();
                var commissionSplitService = new CommissionSplitService(context, auditService);
                var service = new CommissionSplitRulePolicyService(context, commissionSplitService, auditService);

                //When
                var scope  = TestHelper.GetScopeOptions(user1);
                var actual = await service.GetCommissionSplitRulePolicy(scope, policy1.Id);

                //Then
                Assert.Null(actual.Id);
                Assert.Equal(policy1.Id, actual.PolicyId);
                Assert.Equal(csr1.Id, actual.CommissionSplitRuleId);
            }
        }