Beispiel #1
0
        public async Task PostAsync_ReturnsOkResult_When_RequestData_HasBothCNPandNWNPData()
        {
            //Arrange
            var controller = new NoticeController(_service.Object, _mockLogger.Object, _confOptions);
            var data       = new NoticePayCompositeCalculationRequestModel()
            {
                Cnp  = CompensatoryNoticePayControllerTestsDataGenerator.GetValidRequest(),
                Nwnp = new List <NoticeWorkedNotPaidCalculationRequestModel>()
                {
                    NoticeWorkedNotPaidControllerTestsDataGenerator.GetValidRP1Request(),
                NoticeWorkedNotPaidControllerTestsDataGenerator.GetValidRP14aRequest()
                }
            };
            var response = new NoticePayCompositeCalculationResponseDTO();

            _service.Setup(s => s.PerformNoticePayCompositeCalculationAsync(data, _confOptions))
            .ReturnsAsync(It.IsAny <NoticePayCompositeCalculationResponseDTO>());

            //Act

            var result = await controller.PostAsync(data);

            //Assert
            var okRequestObjectRequest = result.Should().BeOfType <OkObjectResult>().Subject;

            _mockLogger.Verify(x => x.Log(
                                   LogLevel.Information,
                                   It.IsAny <EventId>(),
                                   It.Is <object>(v =>
                                                  v.ToString().Contains("Calculation performed successfully for the request data provided")),
                                   null,
                                   It.IsAny <Func <object, Exception, string> >()
                                   ));
            okRequestObjectRequest.StatusCode.Should().Be((int)System.Net.HttpStatusCode.OK);
        }
Beispiel #2
0
        public async Task PerformCalculationAsync_ForAfter5thApril2018()
        {
            var request = CompensatoryNoticePayControllerTestsDataGenerator.GetValidRequest();

            var response = await _service.PerformCompensatoryNoticePayCalculationAsync(request, _options);


            response.CompensationEndDate.Should().Be(new DateTime(2018, 6, 15));
            response.DaysInClaim.Should().Be(8);
            response.NoticeStartDate.Should().Be(new DateTime(2018, 6, 2));
            response.NoticeWeeksDue.Should().Be(2);
            response.MaxCNPEntitlement.Should().Be(660.5m);
            response.StatutoryMax.Should().Be(508m);
            response.ProjectedNoticeDate.Should().Be(new DateTime(2018, 6, 15));
            response.WeeklyResults.Count.Should().Be(2);

            response.WeeklyResults[0].BenefitsDeducted.Should().Be(61.72m);
            response.WeeklyResults[0].EmployerEntitlement.Should().Be(198.15m);
            response.WeeklyResults[0].GrossEntitlement.Should().Be(136.42m);
            response.WeeklyResults[0].IsTaxable.Should().BeTrue();
            response.WeeklyResults[0].NIDeducted.Should().Be(0m);
            response.WeeklyResults[0].NetEntitlement.Should().Be(109.14m);
            response.WeeklyResults[0].NewEmploymentDeducted.Should().Be(0m);
            response.WeeklyResults[0].NotionalBenefitDeducted.Should().Be(0m);
            response.WeeklyResults[0].NotionalTaxDeducted.Should().Be(0m);
            response.WeeklyResults[0].TaxDeducted.Should().Be(27.28m);
            response.WeeklyResults[0].WageIncreaseDeducted.Should().Be(0m);
            response.WeeklyResults[0].PreferentialClaim.Should().Be(0m);
            response.WeeklyResults[0].NonPreferentialClaim.Should().Be(response.WeeklyResults[0].GrossEntitlement);
            response.WeeklyResults[0].WeekNumber.Should().Be(1);

            response.WeeklyResults[1].BenefitsDeducted.Should().Be(41.150m);
            response.WeeklyResults[1].EmployerEntitlement.Should().Be(330.25m);
            response.WeeklyResults[1].GrossEntitlement.Should().Be(203.39m);
            response.WeeklyResults[1].NIDeducted.Should().Be(2.45m);
            response.WeeklyResults[1].NetEntitlement.Should().Be(160.26m);
            response.WeeklyResults[1].NewEmploymentDeducted.Should().Be(85.71m);
            response.WeeklyResults[1].NotionalBenefitDeducted.Should().Be(0m);
            response.WeeklyResults[1].NotionalTaxDeducted.Should().Be(0m);
            response.WeeklyResults[1].TaxDeducted.Should().Be(40.68m);
            response.WeeklyResults[1].WageIncreaseDeducted.Should().Be(0m);
            response.WeeklyResults[1].PreferentialClaim.Should().Be(0m);
            response.WeeklyResults[1].NonPreferentialClaim.Should().Be(response.WeeklyResults[1].GrossEntitlement);
            response.WeeklyResults[1].WeekNumber.Should().Be(2);
        }