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); }
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); }
public async Task PerformCalculationAsync_ForWhenThereIsDeceasedDate() { var request = CompensatoryNoticePayControllerTestsDataGenerator.GetRequestWithDeceasedDate(); var response = await _service.PerformCompensatoryNoticePayCalculationAsync(request, _options); response.CompensationEndDate.Should().Be(new DateTime(2018, 6, 11)); response.DaysInClaim.Should().Be(4); 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, 8, 24)); response.WeeklyResults.Count.Should().Be(2); response.WeeklyResults[0].BenefitsDeducted.Should().Be(0m); response.WeeklyResults[0].EmployerEntitlement.Should().Be(198.15m); response.WeeklyResults[0].GrossEntitlement.Should().Be(198.15m); response.WeeklyResults[0].IsTaxable.Should().BeTrue(); response.WeeklyResults[0].NIDeducted.Should().Be(1.82m); response.WeeklyResults[0].NetEntitlement.Should().Be(156.70m); 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(39.63m); 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(0m); response.WeeklyResults[1].EmployerEntitlement.Should().Be(66.05m); response.WeeklyResults[1].GrossEntitlement.Should().Be(66.05m); response.WeeklyResults[1].NIDeducted.Should().Be(0m); response.WeeklyResults[1].NetEntitlement.Should().Be(52.84m); response.WeeklyResults[1].NewEmploymentDeducted.Should().Be(0m); response.WeeklyResults[1].NotionalBenefitDeducted.Should().Be(0m); response.WeeklyResults[1].NotionalTaxDeducted.Should().Be(0m); response.WeeklyResults[1].TaxDeducted.Should().Be(13.21m); 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); }