Esempio n. 1
0
        public async Task PostAsync_Succeeds_WithNoAPData()
        {
            //Arrange
            var request = new NoticePayCompositeCalculationRequestModel
            {
                Cnp = new CompensatoryNoticePayCalculationRequestModel
                {
                    InsolvencyEmploymentStartDate = new DateTime(2016, 02, 01),
                    InsolvencyDate  = new DateTime(2018, 6, 1),
                    DismissalDate   = new DateTime(2018, 06, 05),
                    DateNoticeGiven = new DateTime(2018, 06, 01),
                    WeeklyWage      = 330.25m,
                    ShiftPattern    = new List <string> {
                        "1", "2", "3", "4", "5"
                    },
                    IsTaxable    = true,
                    DateOfBirth  = new DateTime(1990, 1, 1),
                    DeceasedDate = null
                },
                Nwnp = new List <NoticeWorkedNotPaidCalculationRequestModel>(),
            };
            var response = new NoticePayCompositeCalculationResponseDTO();

            _service.Setup(m => m.PerformNoticePayCompositeCalculationAsync(request, _confOptions)).ReturnsAsync(response);
            var controller = new NoticeController(_service.Object, _mockLogger.Object, _confOptions);

            //Act
            var result = await controller.PostAsync(request);

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

            okObjectRequest.StatusCode.Should().Be((int)System.Net.HttpStatusCode.OK);
        }
Esempio n. 2
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);
        }
Esempio n. 3
0
        public async Task PostAsync_ReturnsBadRequest_When_RequestData_HaveInvalidCNPData(CompensatoryNoticePayCalculationRequestModel request, string expectedErrorMessage)
        {
            //Arrange
            var controller = new NoticeController(_service.Object, _mockLogger.Object, _confOptions);
            var data       = new NoticePayCompositeCalculationRequestModel()
            {
                Cnp  = request,
                Nwnp = null
            };

            //Act

            var result = await controller.PostAsync(data);

            //Assert
            var badRequestObjectRequest = result.Should().BeOfType <BadRequestObjectResult>().Subject;

            badRequestObjectRequest.StatusCode.Should().Be((int)System.Net.HttpStatusCode.BadRequest);
            _mockLogger.Verify(x => x.Log(
                                   LogLevel.Error,
                                   It.IsAny <EventId>(),
                                   It.Is <object>(v =>
                                                  v.ToString().Contains(expectedErrorMessage)),
                                   null,
                                   It.IsAny <Func <object, Exception, string> >()
                                   ));
        }
Esempio n. 4
0
        public async Task PostAsync_SucceedsWithOverlappingPeriodsInDifferentInputSources()
        {
            //Arrange
            var request = new NoticePayCompositeCalculationRequestModel()
            {
                Cnp  = null,
                Nwnp = new List <NoticeWorkedNotPaidCalculationRequestModel>()
                {
                    new NoticeWorkedNotPaidCalculationRequestModel()
                    {
                        InputSource         = InputSource.Rp1,
                        EmploymentStartDate = new DateTime(2015, 8, 2),
                        InsolvencyDate      = new DateTime(2018, 7, 20),
                        DateNoticeGiven     = new DateTime(2018, 7, 20),
                        DismissalDate       = new DateTime(2018, 7, 20),
                        UnpaidPeriodFrom    = new DateTime(2018, 7, 1),
                        UnpaidPeriodTo      = new DateTime(2018, 7, 8),
                        WeeklyWage          = 320,
                        ShiftPattern        = new List <string> {
                            "1", "2", "3", "4", "5"
                        },
                        PayDay    = 6,
                        IsTaxable = true
                    },
                    new NoticeWorkedNotPaidCalculationRequestModel()
                    {
                        InputSource         = InputSource.Rp14a,
                        EmploymentStartDate = new DateTime(2015, 8, 2),
                        InsolvencyDate      = new DateTime(2018, 7, 20),
                        DateNoticeGiven     = new DateTime(2018, 7, 20),
                        DismissalDate       = new DateTime(2018, 7, 20),
                        UnpaidPeriodFrom    = new DateTime(2018, 7, 8),
                        UnpaidPeriodTo      = new DateTime(2018, 7, 10),
                        WeeklyWage          = 320,
                        ShiftPattern        = new List <string> {
                            "1", "2", "3", "4", "5"
                        },
                        PayDay    = 6,
                        IsTaxable = true
                    }
                }
            };

            var response = NoticeControllerTestsDataGenerator.GetValidResponseData();

            _service.Setup(m => m.PerformNoticePayCompositeCalculationAsync(request, _confOptions)).ReturnsAsync(response);
            var controller = new NoticeController(_service.Object, _mockLogger.Object, _confOptions);

            //Act
            var result = await controller.PostAsync(request);

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

            okObjectRequest.StatusCode.Should().Be((int)System.Net.HttpStatusCode.OK);
        }
Esempio n. 5
0
        public async Task PostAsync_Succeeds()
        {
            //Arrange
            var request  = NoticeControllerTestsDataGenerator.GetValidRequestData();
            var response = NoticeControllerTestsDataGenerator.GetValidResponseData();

            _service.Setup(m => m.PerformNoticePayCompositeCalculationAsync(request, _confOptions)).ReturnsAsync(response);
            var controller = new NoticeController(_service.Object, _mockLogger.Object, _confOptions);

            //Act
            var result = await controller.PostAsync(request);

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

            okObjectRequest.StatusCode.Should().Be((int)System.Net.HttpStatusCode.OK);
        }
Esempio n. 6
0
        public async Task PostAsync_FailsWithBadRequest_WhenThereIsAValidationError(NoticePayCompositeCalculationRequestModel request, string expectedErrorMessage)
        {
            //Arrange
            var controller = new NoticeController(_service.Object, _mockLogger.Object, _confOptions);

            //Act
            var result = await controller.PostAsync(request);

            //Assert
            var badRequestObjectRequest = result.Should().BeOfType <BadRequestObjectResult>().Subject;

            badRequestObjectRequest.StatusCode.Should().Be((int)System.Net.HttpStatusCode.BadRequest);

            _mockLogger.Verify(x => x.Log(
                                   LogLevel.Error,
                                   It.IsAny <EventId>(),
                                   It.Is <object>(v => v.ToString().Contains(expectedErrorMessage)),
                                   null,
                                   It.IsAny <Func <object, Exception, string> >()
                                   ));
        }