public BenefitsServiceTests()
        {
            _mockGateway
            .Setup(_ => _.GetBenefits("test"))
            .ReturnsAsync(new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent("test")
            });

            _mockGateway
            .Setup(_ => _.GetBenefits("test-ref"))
            .ReturnsAsync(new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(_mockListBenefitClaimSummary)
            });

            _mockGateway
            .Setup(_ => _.GetBenefitDetails("test-ref", "123", "123"))
            .ReturnsAsync(new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(_mockBenefitsClaim)
            });

            _mockGateway
            .Setup(_ => _.GetDocuments("test-ref"))
            .ReturnsAsync(new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(_mockCouncilTaxDocument)
            });

            _mockGateway
            .Setup(_ => _.GetHousingBenefitPaymentHistory("test-ref"))
            .ReturnsAsync(new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(_mockListCouncilTaxPayments)
            });

            _mockGateway
            .Setup(_ => _.GetCouncilTaxBenefitPaymentHistory("test-ref"))
            .ReturnsAsync(new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(_mockListCouncilTaxPayments)
            });

            _mockGateway
            .Setup(_ => _.GetAccountDetailsForYear("test-ref", "500000000", DateTime.Now.Year))
            .ReturnsAsync(new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(_mockReceivedYearTotal)
            });

            _service = new BenefitsService(_mockGateway.Object, _cache.Object);
        }
        public void Employee_SetHelthPlan_Success()
        {
            #region Arrange
            var employee = _employeeTestFixture.CreateValidEmployee();

            /* Mocking the objects
             * Interface is a more real way to get closer to reality than implementation */
            var employeeRepository = new Mock <IEmployeeRepository>();
            var mediator           = new Mock <IMediator>();

            // Using mock objects to instantiate a service
            var benefitsService = new BenefitsService(employeeRepository.Object, mediator.Object);
            #endregion

            // Act
            benefitsService.ChooseHealthPlan(employee, Lib.HealthPlan.Plan123);

            #region  Assert
            // Check if method update from EmployeeRepository is called just one time
            employeeRepository.Verify(method => method.Update(employee), times: Times.Once);
            // Check if mediator throw once any notification inheriting of INotification
            mediator.Verify(method =>
                            method.Publish(It.IsAny <INotification>(), CancellationToken.None), times: Times.Once);
            #endregion
        }
Example #3
0
        public void Test_GetEmployeeCostPerYearZeroBenefitsCost()
        {
            decimal benefitsCost = 0.00m;

            BenefitsService benefitsService = new BenefitsService();
            var             result          = benefitsService.GetEmployeeCostPerYear(benefitsCost);

            Assert.That(result, Is.EqualTo(52000.00m));
        }
Example #4
0
        public void Test_GetEmployeeCostPerPayPeriodUsingHighCost()
        {
            decimal benefitsCost = 8000.00m;

            BenefitsService benefitsService = new BenefitsService();
            var             result          = benefitsService.GetEmployeeCostPerPayPeriod(benefitsCost);

            Assert.That(result, Is.EqualTo(2000.00m));
        }
Example #5
0
        public void Test_GetBenefitsCostForEmployeeOnlyWithDiscount()
        {
            EmployeeData employeeData = new EmployeeData("Aaron", "Smith");

            BenefitsService benefitsService = new BenefitsService();
            var             result          = benefitsService.GetTotalBenefitsCostsForEmployee(employeeData);

            Assert.That(result, Is.EqualTo(900.00m));

            return;
        }
Example #6
0
        public void Test_GetBenefitsCostForEmployeeOnly()
        {
            EmployeeData employeeData = new EmployeeData("John", "Doe");

            BenefitsService benefitsService = new BenefitsService();
            var             result          = benefitsService.GetTotalBenefitsCostsForEmployee(employeeData);

            Assert.That(result, Is.EqualTo(1000.00m));

            return;
        }
Example #7
0
        public void Test_GetTotalEmployeeCostDataNoDependentsWithDiscount()
        {
            var employeeData = new EmployeeData("emily", "apple");

            BenefitsService benefitsService = new BenefitsService();
            var             result          = benefitsService.GetEmployeeCost(employeeData);

            Assert.That(result.BenefitCostForEmployeeOnly, Is.EqualTo(900.00m));
            Assert.That(result.BenefitCostForDependentsOnly, Is.EqualTo(0.00m));
            Assert.That(result.TotalBenefitsCostPerYear, Is.EqualTo(900.00m));
            Assert.That(result.TotalEmployeeCostPerPayPeriod, Is.EqualTo(2034.62m));
            Assert.That(result.TotalEmployeeCostPerYear, Is.EqualTo(52900.00m));
            Assert.That(result.ErrorDetails, Is.Null);
            Assert.That(result.EmployeeData, !Is.Null);
        }
Example #8
0
        public void Test_GetTotalEmployeeCostDataNoDependentsNoDiscount()
        {
            var employeeData = new EmployeeData("joe", "person");

            BenefitsService benefitsService = new BenefitsService();
            var             result          = benefitsService.GetEmployeeCost(employeeData);

            Assert.That(result.BenefitCostForEmployeeOnly, Is.EqualTo(1000.00m));
            Assert.That(result.BenefitCostForDependentsOnly, Is.EqualTo(0.00m));
            Assert.That(result.TotalBenefitsCostPerYear, Is.EqualTo(1000.00m));
            Assert.That(result.TotalEmployeeCostPerPayPeriod, Is.EqualTo(2038.46m));
            Assert.That(result.TotalEmployeeCostPerYear, Is.EqualTo(53000.00m));
            Assert.That(result.ErrorDetails, Is.Null);
            Assert.That(result.EmployeeData, !Is.Null);
        }
Example #9
0
        public void Test_GetBenefitsCostForEmployeeWithOneDependentBothDiscounts()
        {
            EmployeeData employeeData = new EmployeeData("Anna", "Waters")
            {
                Dependents = new List <Person>
                {
                    new Person("Andy", "Kirk")
                }
            };

            BenefitsService benefitsService = new BenefitsService();
            var             result          = benefitsService.GetTotalBenefitsCostsForEmployee(employeeData);

            Assert.That(result, Is.EqualTo(1350.00m));

            return;
        }
Example #10
0
        public void Test_GetBenefitsCostForEmployeeWithOneDependentNoDiscount()
        {
            EmployeeData employeeData = new EmployeeData("Sarah", "Lee")
            {
                Dependents = new List <Person>
                {
                    new Person("Bill", "Jones")
                }
            };

            BenefitsService benefitsService = new BenefitsService();
            var             result          = benefitsService.GetTotalBenefitsCostsForEmployee(employeeData);

            Assert.That(result, Is.EqualTo(1500.00m));

            return;
        }
Example #11
0
        public void Test_GetBenefitsCostForEmployeeWithFiveDependentsNoDiscounts()
        {
            EmployeeData employeeData = new EmployeeData("George", "Wright")
            {
                Dependents = new List <Person>
                {
                    new Person("Bob", "Wright"),
                    new Person("Billy", "Wright"),
                    new Person("Susan", "Wright"),
                    new Person("Mary", "Wright"),
                    new Person("Frank", "Wright")
                }
            };

            BenefitsService benefitsService = new BenefitsService();
            var             result          = benefitsService.GetTotalBenefitsCostsForEmployee(employeeData);

            Assert.That(result, Is.EqualTo(3500.00m));

            return;
        }
Example #12
0
        public void Test_GetTotalEmployeeCostDataOneDependentsWithDependentDiscount()
        {
            var employeeData = new EmployeeData("bob", "orange")
            {
                Dependents = new List <Person>
                {
                    new Person("alice", "apple")
                }
            };

            BenefitsService benefitsService = new BenefitsService();
            var             result          = benefitsService.GetEmployeeCost(employeeData);

            Assert.That(result.BenefitCostForEmployeeOnly, Is.EqualTo(1000.00m));
            Assert.That(result.BenefitCostForDependentsOnly, Is.EqualTo(450.00m));
            Assert.That(result.TotalBenefitsCostPerYear, Is.EqualTo(1450.00m));
            Assert.That(result.TotalEmployeeCostPerPayPeriod, Is.EqualTo(2055.77m));
            Assert.That(result.TotalEmployeeCostPerYear, Is.EqualTo(53450.00m));
            Assert.That(result.ErrorDetails, Is.Null);
            Assert.That(result.EmployeeData, !Is.Null);
        }
Example #13
0
        public void Test_GetTotalEmployeeCostDataEmployeeAndDependentsWithSpecialCharacters()
        {
            var employeeData = new EmployeeData("#$%2223%%^", "9!!~~~~%^^&*()")
            {
                Dependents = new List <Person>
                {
                    new Person("@#$%^*(", "2342334&&*&%$"),
                    new Person("*^&(^&^$%%#$222", "333$%$^%")
                }
            };

            BenefitsService benefitsService = new BenefitsService();
            var             result          = benefitsService.GetEmployeeCost(employeeData);

            Assert.That(result.BenefitCostForEmployeeOnly, Is.EqualTo(1000.00m));
            Assert.That(result.BenefitCostForDependentsOnly, Is.EqualTo(1000.00m));
            Assert.That(result.TotalBenefitsCostPerYear, Is.EqualTo(2000.00m));
            Assert.That(result.TotalEmployeeCostPerPayPeriod, Is.EqualTo(2076.92m));
            Assert.That(result.TotalEmployeeCostPerYear, Is.EqualTo(54000.00m));
            Assert.That(result.ErrorDetails, Is.Null);
            Assert.That(result.EmployeeData, !Is.Null);
        }
Example #14
0
        public void Test_GetTotalEmployeeCostDataTwoDependentsWithEmployeeAndOneDependentDiscount()
        {
            var employeeData = new EmployeeData("test", "apple")
            {
                Dependents = new List <Person>
                {
                    new Person("apple", "blue"),
                    new Person("jill", "jackson")
                }
            };

            BenefitsService benefitsService = new BenefitsService();
            var             result          = benefitsService.GetEmployeeCost(employeeData);

            Assert.That(result.BenefitCostForEmployeeOnly, Is.EqualTo(900.00m));
            Assert.That(result.BenefitCostForDependentsOnly, Is.EqualTo(950.00m));
            Assert.That(result.TotalBenefitsCostPerYear, Is.EqualTo(1850.00m));
            Assert.That(result.TotalEmployeeCostPerPayPeriod, Is.EqualTo(2071.15m));
            Assert.That(result.TotalEmployeeCostPerYear, Is.EqualTo(53850.00m));
            Assert.That(result.ErrorDetails, Is.Null);
            Assert.That(result.EmployeeData, !Is.Null);
        }
Example #15
0
        public void Test_GetTotalEmployeeCostDataThreeDependentsNoDiscount()
        {
            var employeeData = new EmployeeData("sam", "person")
            {
                Dependents = new List <Person>
                {
                    new Person("george", "dependent"),
                    new Person("four", "three"),
                    new Person("james", "brown")
                }
            };

            BenefitsService benefitsService = new BenefitsService();
            var             result          = benefitsService.GetEmployeeCost(employeeData);

            Assert.That(result.BenefitCostForEmployeeOnly, Is.EqualTo(1000.00m));
            Assert.That(result.BenefitCostForDependentsOnly, Is.EqualTo(1500.00m));
            Assert.That(result.TotalBenefitsCostPerYear, Is.EqualTo(2500.00m));
            Assert.That(result.TotalEmployeeCostPerPayPeriod, Is.EqualTo(2096.15m));
            Assert.That(result.TotalEmployeeCostPerYear, Is.EqualTo(54500.00m));
            Assert.That(result.ErrorDetails, Is.Null);
            Assert.That(result.EmployeeData, !Is.Null);
        }