public void Is_False_When_ModifiedDate_Is_Late_And_OutOfScope(SectorTypes sector, ScopeStatuses scopeStatus)
        {
            var totalYearOffsets = 4;

            for (var yearOffset = 0; yearOffset < totalYearOffsets; yearOffset++)
            {
                // Arrange
                int      testYear         = VirtualDateTime.Now.Year - yearOffset;
                DateTime snapshotDate     = sector.GetAccountingStartDate(testYear);
                DateTime nextSnapshotDate = snapshotDate.AddYears(1);
                DateTime modifiedDate     = nextSnapshotDate.AddDays(2);

                Organisation testOrganisation = sector == SectorTypes.Private
                    ? OrganisationHelper.GetPrivateOrganisation()
                    : OrganisationHelper.GetPublicOrganisation();

                OrganisationScope testScope = ScopeHelper.CreateScope(scopeStatus, snapshotDate);

                Return testReturn = ReturnHelper.CreateLateReturn(testOrganisation, snapshotDate, modifiedDate, testScope);

                // Act
                bool actual = testReturn.IsLateSubmission;

                // Assert
                Assert.AreEqual(false, actual);
            }
        }
Exemplo n.º 2
0
        public async Task DraftFile_GetDraftFile_Returns_A_Valid_DraftAsync()
        {
            // Arrange
            User         mockedUser         = UserHelper.GetNotAdminUserWithVerifiedEmailAddress();
            Organisation mockedOrganisation = OrganisationHelper.GetPublicOrganisation();

            mockedOrganisation.OrganisationId = new Random().Next(1000, 9999);
            UserOrganisation mockedUserOrganisation = UserOrganisationHelper.LinkUserWithOrganisation(mockedUser, mockedOrganisation);
            Return           mockedReturn           = ReturnHelper.GetSubmittedReturnForOrganisationAndYear(mockedUserOrganisation, ConfigHelpers.SharedOptions.FirstReportingYear);

            OrganisationHelper.LinkOrganisationAndReturn(mockedOrganisation, mockedReturn);

            var testDraftFileBL       = new DraftFileBusinessLogic(null, new SystemFileRepository(new StorageOptions()));
            var sharedBusinessLogic   = UiTestHelper.DIContainer.Resolve <ISharedBusinessLogic>();
            var testSubmissionService = new SubmissionService(sharedBusinessLogic, Mock.Of <ISubmissionBusinessLogic>(), Mock.Of <IScopeBusinessLogic>(), testDraftFileBL);
            var testPresenter         = new SubmissionPresenter(testSubmissionService, ConfigHelpers.SubmissionOptions, null);

            // Act
            Draft actualDraft = await testPresenter.GetDraftFileAsync(
                mockedOrganisation.OrganisationId,
                mockedOrganisation.SectorType.GetAccountingStartDate().Year,
                mockedUser.UserId);

            // Assert
            Assert.NotNull(actualDraft);
            Assert.True(actualDraft.IsUserAllowedAccess);
            Assert.AreEqual(mockedUser.UserId, actualDraft.LastWrittenByUserId);

            // Clean up
            await testDraftFileBL.DiscardDraftAsync(actualDraft);
        }
        public void BeforeEach()
        {
            _testOrganisation = OrganisationHelper.GetPublicOrganisation();

            var mocked2017Return = ReturnHelper.CreateTestReturn(_testOrganisation);

            OrganisationHelper.LinkOrganisationAndReturn(_testOrganisation, mocked2017Return);

            var mocked2018Return = ReturnHelper.CreateTestReturn(_testOrganisation, 2018);

            OrganisationHelper.LinkOrganisationAndReturn(_testOrganisation, mocked2018Return);
        }
Exemplo n.º 4
0
        public async Task AdminController_ManualChanges_POST_Delete_Submissions_Works_When_Run_In_Test_Mode_Async()
        {
            // Arrange
            User databaseAdminUser = UserHelper.GetDatabaseAdmin();

            Core.Entities.Organisation publicOrganisationWithSubmissionsToBeDeleted =
                OrganisationHelper.GetPublicOrganisation("EmployerReference05");
            Return mockedReturn = ReturnHelper.CreateTestReturn(
                publicOrganisationWithSubmissionsToBeDeleted,
                VirtualDateTime.Now.AddYears(-1).Year);

            var testController = UiTestHelper.GetController <AdminController>(
                databaseAdminUser.UserId,
                null,
                databaseAdminUser,
                publicOrganisationWithSubmissionsToBeDeleted,
                mockedReturn);

            var manualChangesViewModelMock = Mock.Of <ManualChangesViewModel>();

            manualChangesViewModelMock.Command    = DeleteSubmissionsCommand;
            manualChangesViewModelMock.Parameters =
                $"{publicOrganisationWithSubmissionsToBeDeleted.EmployerReference}={mockedReturn.AccountingDate.Year}";

            // Act
            IActionResult actualManualChangesResult = await testController.ManualChanges(manualChangesViewModelMock);

            // Assert
            Assert.NotNull(actualManualChangesResult, "Expected a Result");

            var manualChangesViewResult = actualManualChangesResult as ViewResult;

            Assert.NotNull(manualChangesViewResult, "Expected ViewResult");

            var actualManualChangesViewModel = manualChangesViewResult.Model as ManualChangesViewModel;

            Assert.NotNull(actualManualChangesViewModel, "Expected ManualChangesViewModel");

            Assert.Multiple(
                () => {
                Assert.AreEqual("SUCCESSFULLY TESTED 'Delete submissions': 1 of 1", actualManualChangesViewModel.SuccessMessage);
                Assert.AreEqual(
                    $"1: EMPLOYERREFERENCE05: Org123 Year='{VirtualDateTime.Now.AddYears(-1).Year}' Status='Submitted' set to 'Deleted'\r\n",
                    actualManualChangesViewModel.Results);
                Assert.AreEqual("Delete submissions", actualManualChangesViewModel.LastTestedCommand);
                Assert.AreEqual(
                    $"EmployerReference05={mockedReturn.AccountingDate.Year}",
                    actualManualChangesViewModel.LastTestedInput);
                Assert.True(actualManualChangesViewModel.Tested, "Must be tested=true as this case is running in TEST mode");
                Assert.IsNull(actualManualChangesViewModel.Comment);
            });
        }
Exemplo n.º 5
0
        public async Task AdminController_ManualChanges_POST_Convert_Public_To_Private_Works_When_Run_In_Test_Mode_Async()
        {
            // Arrange
            Core.Entities.Organisation publicOrganisationToBeChangedToPrivate = OrganisationHelper.GetPublicOrganisation("EmployerReference03");

            #region setting up database and controller

            User notAdminUser    = UserHelper.GetDatabaseAdmin();
            var  adminController = UiTestHelper.GetController <AdminController>(notAdminUser.UserId, null, null);

            Mock <IDataRepository> configurableDataRepository = AutoFacExtensions.ResolveAsMock <IDataRepository>();

            configurableDataRepository
            .Setup(x => x.Get <User>(It.IsAny <long>()))
            .Returns(notAdminUser);

            configurableDataRepository
            .Setup(x => x.GetAll <Core.Entities.Organisation>())
            .Returns(new[] { publicOrganisationToBeChangedToPrivate }.AsQueryable().BuildMock().Object);

            var manualChangesViewModel = new ManualChangesViewModel {
                Command = ConvertPublicToPrivateCommand, Parameters = publicOrganisationToBeChangedToPrivate.EmployerReference
            };

            #endregion

            // Act
            IActionResult manualChangesResult = await adminController.ManualChanges(manualChangesViewModel);

            // Assert
            Assert.NotNull(manualChangesResult, "Expected a Result");

            var manualChangesViewResult = manualChangesResult as ViewResult;
            Assert.NotNull(manualChangesViewResult, "Expected ViewResult");

            var actualManualChangesViewModel = manualChangesViewResult.Model as ManualChangesViewModel;
            Assert.NotNull(actualManualChangesViewModel, "Expected ManualChangesViewModel");

            Assert.Multiple(
                () => {
                Assert.AreEqual("SUCCESSFULLY TESTED 'Convert public to private': 1 of 1", actualManualChangesViewModel.SuccessMessage);
                Assert.AreEqual(
                    "1: EMPLOYERREFERENCE03: Org123 sector Public set to 'Private'\r\n",
                    actualManualChangesViewModel.Results);
                Assert.AreEqual(ConvertPublicToPrivateCommand, actualManualChangesViewModel.LastTestedCommand);
                Assert.AreEqual("EmployerReference03", actualManualChangesViewModel.LastTestedInput);
                Assert.True(actualManualChangesViewModel.Tested, "Must be tested=true as this case is running in TEST mode");
                Assert.IsNull(actualManualChangesViewModel.Comment);
            });
        }
Exemplo n.º 6
0
        public async Task AdminController_ManualChanges_POST_Delete_Submissions_Fails_When_No_Parameters_Are_Provided_Async(
            string nullOrEmptyParameter)
        {
            // Arrange
            User databaseAdminUser = UserHelper.GetDatabaseAdmin();

            Core.Entities.Organisation publicOrganisationWithSubmissionsToBeDeleted =
                OrganisationHelper.GetPublicOrganisation("EmployerReference05");
            Return mockedReturn = ReturnHelper.CreateTestReturn(
                publicOrganisationWithSubmissionsToBeDeleted,
                VirtualDateTime.Now.AddYears(-1).Year);

            var testController = UiTestHelper.GetController <AdminController>(
                databaseAdminUser.UserId,
                null,
                databaseAdminUser,
                publicOrganisationWithSubmissionsToBeDeleted,
                mockedReturn);

            var manualChangesViewModelMock = Mock.Of <ManualChangesViewModel>();

            manualChangesViewModelMock.Command    = DeleteSubmissionsCommand;
            manualChangesViewModelMock.Parameters = nullOrEmptyParameter;

            // Act
            IActionResult actualManualChangesResult = await testController.ManualChanges(manualChangesViewModelMock);

            // Assert
            Assert.NotNull(actualManualChangesResult, "Expected a Result");

            var manualChangesViewResult = actualManualChangesResult as ViewResult;

            Assert.NotNull(manualChangesViewResult, "Expected ViewResult");

            var actualManualChangesViewModel = manualChangesViewResult.Model as ManualChangesViewModel;

            Assert.NotNull(actualManualChangesViewModel, "Expected ManualChangesViewModel");

            ModelStateEntry modelState    = testController.ModelState[""];
            ModelError      reportedError = modelState.Errors.First();

            Assert.AreEqual("ERROR: You must supply 1 or more input parameters", reportedError.ErrorMessage);
            Assert.IsNull(actualManualChangesViewModel.SuccessMessage);
            Assert.AreEqual("", actualManualChangesViewModel.Results);
            Assert.IsNull(actualManualChangesViewModel.LastTestedCommand);
            Assert.IsNull(actualManualChangesViewModel.LastTestedInput);
            Assert.False(actualManualChangesViewModel.Tested, "Must be false as this case has failed");
        }
Exemplo n.º 7
0
        public async Task AdminController_ManualChanges_POST_Delete_Submissions_Fails_When_Year_Parameter_Is_Not_Valid_Async()
        {
            // Arrange
            User databaseAdminUser = UserHelper.GetDatabaseAdmin();

            Core.Entities.Organisation publicOrganisationWithSubmissions =
                OrganisationHelper.GetPublicOrganisation("EmployerReference656262");
            Return mockedReturn   = ReturnHelper.CreateTestReturn(publicOrganisationWithSubmissions, VirtualDateTime.Now.AddYears(-1).Year);
            var    testController = UiTestHelper.GetController <AdminController>(
                databaseAdminUser.UserId,
                null,
                databaseAdminUser,
                publicOrganisationWithSubmissions,
                mockedReturn);

            var manualChangesViewModelMock = Mock.Of <ManualChangesViewModel>();

            manualChangesViewModelMock.Command    = DeleteSubmissionsCommand;
            manualChangesViewModelMock.Parameters = "EmployerReference656262=Invalid_Year_Parameter";

            // Act
            IActionResult actualManualChangesResult = await testController.ManualChanges(manualChangesViewModelMock);

            // Assert
            Assert.NotNull(actualManualChangesResult, "Expected a Result");

            var manualChangesViewResult = actualManualChangesResult as ViewResult;

            Assert.NotNull(manualChangesViewResult, "Expected ViewResult");

            var actualManualChangesViewModel = manualChangesViewResult.Model as ManualChangesViewModel;

            Assert.NotNull(actualManualChangesViewModel, "Expected ManualChangesViewModel");

            Assert.Multiple(
                () => {
                Assert.AreEqual("SUCCESSFULLY TESTED 'Delete submissions': 0 of 1", actualManualChangesViewModel.SuccessMessage);
                Assert.AreEqual(
                    "<span style=\"color:Red\">1: ERROR: 'EMPLOYERREFERENCE656262' invalid year 'Invalid_Year_Parameter'</span>\r\n",
                    actualManualChangesViewModel.Results);
                Assert.AreEqual("Delete submissions", actualManualChangesViewModel.LastTestedCommand);
                Assert.AreEqual("EmployerReference656262=Invalid_Year_Parameter", actualManualChangesViewModel.LastTestedInput);
                Assert.True(actualManualChangesViewModel.Tested, "Must be tested=true as this case is running in TEST mode");
                Assert.IsNull(actualManualChangesViewModel.Comment);
            });
        }
Exemplo n.º 8
0
        public async Task AdminController_ManualChanges_POST_Delete_Submissions_Fails_When_Return_Is_Not_On_The_Database_Async()
        {
            // Arrange
            int  yearToTest        = VirtualDateTime.Now.AddYears(-1).Year;
            User databaseAdminUser = UserHelper.GetDatabaseAdmin();

            Core.Entities.Organisation publicOrganisationWithSubmissionsToBeDeleted =
                OrganisationHelper.GetPublicOrganisation("EmployerReference99778");

            var testController = UiTestHelper.GetController <AdminController>(
                databaseAdminUser.UserId,
                null,
                databaseAdminUser,
                publicOrganisationWithSubmissionsToBeDeleted);

            var manualChangesViewModelMock = Mock.Of <ManualChangesViewModel>();

            manualChangesViewModelMock.Command    = DeleteSubmissionsCommand;
            manualChangesViewModelMock.Parameters = $"{publicOrganisationWithSubmissionsToBeDeleted.EmployerReference}={yearToTest}";

            // Act
            IActionResult actualManualChangesResult = await testController.ManualChanges(manualChangesViewModelMock);

            // Assert
            Assert.NotNull(actualManualChangesResult, "Expected a Result");

            var manualChangesViewResult = actualManualChangesResult as ViewResult;

            Assert.NotNull(manualChangesViewResult, "Expected ViewResult");

            var actualManualChangesViewModel = manualChangesViewResult.Model as ManualChangesViewModel;

            Assert.NotNull(actualManualChangesViewModel, "Expected ManualChangesViewModel");

            Assert.AreEqual("SUCCESSFULLY TESTED 'Delete submissions': 0 of 1", actualManualChangesViewModel.SuccessMessage);
            Assert.AreEqual(
                $"<span style=\"color:Orange\">1: WARNING: 'EMPLOYERREFERENCE99778' Cannot find submitted data for year {yearToTest}</span>\r\n",
                actualManualChangesViewModel.Results);
            Assert.AreEqual("Delete submissions", actualManualChangesViewModel.LastTestedCommand);
            Assert.AreEqual($"EmployerReference99778={yearToTest}", actualManualChangesViewModel.LastTestedInput);
            Assert.True(actualManualChangesViewModel.Tested, "Must be tested=true as this case is running in TEST mode");
            Assert.IsNull(actualManualChangesViewModel.Comment);
        }
Exemplo n.º 9
0
        public void OrganisationController_Manageorganisations_GET_When_Creates_New_Model()
        {
            // ARRANGE
            User mockUser = UserHelper.GetNotAdminUserWithVerifiedEmailAddress();

            mockUser.UserSettings = new[] { new UserSetting(UserSettingKeys.AcceptedPrivacyStatement, VirtualDateTime.Now.ToString()) };

            Core.Entities.Organisation mockOrg  = OrganisationHelper.GetPublicOrganisation();
            Core.Entities.Organisation mockOrg2 = OrganisationHelper.GetPublicOrganisation();
            Core.Entities.Organisation mockOrg3 = OrganisationHelper.GetPublicOrganisation();

            UserOrganisation mockUserOrg1 = UserOrganisationHelper.LinkUserWithOrganisation(mockUser, mockOrg);
            UserOrganisation mockUserOrg2 = UserOrganisationHelper.LinkUserWithOrganisation(mockUser, mockOrg2);
            UserOrganisation mockUserOrg3 = UserOrganisationHelper.LinkUserWithOrganisation(mockUser, mockOrg3);

            // route data
            var routeData = new RouteData();

            routeData.Values.Add("action", "ManageOrganisations");
            routeData.Values.Add("Controller", "Registrations");

            var controller = UiTestHelper.GetController <ManageOrganisationsController>(
                -1,
                routeData,
                mockUser,
                mockOrg,
                mockOrg2,
                mockOrg3,
                mockUserOrg1,
                mockUserOrg2,
                mockUserOrg3);

            // Acts
            var result = controller.Home() as ViewResult;

            object actualUserOrganisationViewModel = result.Model;

            // Assert
            Assert.NotNull(result);
            Assert.NotNull(actualUserOrganisationViewModel);
            Assert.AreEqual(result.ViewName, "ManageOrganisations");
        }
Exemplo n.º 10
0
        public void Is_True_When_ModifiedDate_Is_Late_And_InScope(SectorTypes sector, ScopeStatuses scopeStatus)
        {
            // Arrange
            int      testYear     = GetRandomReportingYear(ignoreYearsExcludedFromLateFlagEnforcement: true);
            DateTime snapshotDate = sector.GetAccountingStartDate(testYear);
            DateTime modifiedDate = ReportingYearsHelper.GetDeadlineForAccountingDate(snapshotDate).AddDays(2);

            Organisation testOrganisation = sector == SectorTypes.Private
                ? OrganisationHelper.GetPrivateOrganisation()
                : OrganisationHelper.GetPublicOrganisation();

            OrganisationScope testScope = ScopeHelper.CreateScope(scopeStatus, snapshotDate);

            Return testReturn = ReturnHelper.CreateLateReturn(testOrganisation, snapshotDate, modifiedDate, testScope);

            // Act
            bool actual = testReturn.IsLateSubmission;

            // Assert
            Assert.AreEqual(true, actual);
        }
        public void IsFalseWhenNotVoluntary(SectorTypes testSector, int testOrgSize, ScopeStatuses testScopeStatus)
        {
            // Arrange
            var testOrganisation = testSector == SectorTypes.Private
                ? OrganisationHelper.GetPrivateOrganisation()
                : OrganisationHelper.GetPublicOrganisation();

            var snapshotDate = testSector.GetAccountingStartDate(VirtualDateTime.Now.Year);
            var testScope    = ScopeHelper.CreateScope(testScopeStatus, snapshotDate);
            var testReturn   = ReturnHelper.CreateTestReturn(testOrganisation, snapshotDate.Year);

            testReturn.MaxEmployees = testOrgSize;

            OrganisationHelper.LinkOrganisationAndReturn(testOrganisation, testReturn);
            OrganisationHelper.LinkOrganisationAndScope(testOrganisation, testScope, true);

            // Act
            var actual = testReturn.IsVoluntarySubmission();

            // Assert
            Assert.IsFalse((bool)actual);
        }
Exemplo n.º 12
0
        public async Task RegistrationController_ConfirmOrganisation_Get_SuccessAsync()
        {
            // Arrange
            User mockUser = UserHelper.GetNotAdminUserWithVerifiedEmailAddress();

            Core.Entities.Organisation mockOrg     = OrganisationHelper.GetPublicOrganisation();
            UserOrganisation           mockUserOrg = UserOrganisationHelper.LinkUserWithOrganisation(mockUser, mockOrg);

            Return mockReturn = ReturnHelper.GetNewReturnForOrganisationAndYear(mockUserOrg, ConfigHelpers.SharedOptions.FirstReportingYear);

            OrganisationHelper.LinkOrganisationAndReturn(mockOrg, mockReturn);

            var mockRouteData = new RouteData();

            mockRouteData.Values.Add("Action", "ServiceActivated");
            mockRouteData.Values.Add("Controller", "Registration");

            var controller = UiTestHelper.GetController <RegistrationController>(-1, mockRouteData, mockUser, mockOrg, mockUserOrg, mockReturn);

            controller.ReportingOrganisationId = mockOrg.OrganisationId;

            controller.StashModel(new OrganisationViewModel());

            var testUri = new Uri("https://localhost/register/activate-service");

            controller.AddMockUriHelper(testUri.ToString(), "ActivateService");

            //Mock the Referrer
            controller.Request.Headers["Referer"] = testUri.ToString();

            var result = await controller.ConfirmOrganisation() as ViewResult;

            Assert.NotNull(result);

            Assert.AreEqual("ConfirmOrganisation", result.ViewName);
        }
Exemplo n.º 13
0
        public void CreateDraftSubmissionFromViewModel_Converts_View_Model_to_Return()
        {
            Organisation mockedOrganisation = OrganisationHelper.GetPublicOrganisation();
            var          testModel          = new ReturnViewModel
            {
                AccountingDate              = new DateTime(1999, 4, 5),
                CompanyLinkToGPGInfo        = "https://CompanyLinkToGPGInfo",
                DiffMeanBonusPercent        = 100,
                DiffMeanHourlyPayPercent    = 99,
                DiffMedianBonusPercent      = 98,
                DiffMedianHourlyPercent     = 97,
                FemaleLowerPayBand          = 96,
                FemaleMedianBonusPayPercent = 95,
                FemaleMiddlePayBand         = 94,
                FemaleUpperPayBand          = 93,
                FemaleUpperQuartilePayBand  = 92,
                FirstName                 = "Test",
                LastName                  = "User",
                JobTitle                  = "QA",
                MaleLowerPayBand          = 91,
                MaleMedianBonusPayPercent = 90,
                MaleUpperQuartilePayBand  = 89,
                MaleMiddlePayBand         = 88,
                MaleUpperPayBand          = 87,
                OrganisationId            = mockedOrganisation.OrganisationId,
                OrganisationSize          = OrganisationSizes.Employees250To499,
                LateReason                = "A LateReason"
            };

            // Mocks
            var testService = new SubmissionService(
                mockDataRepo.Object,
                mockScopeBL.Object,
                _mockDraftFileBL.Object);

            mockDataRepo.Setup(x => x.Get <Organisation>(It.IsAny <long>())).Returns(mockedOrganisation);

            // Assert
            Return testReturn = testService.CreateDraftSubmissionFromViewModel(testModel);

            var testOrgSizeRange = testModel.OrganisationSize.GetAttribute <RangeAttribute>();

            Expect(testReturn.AccountingDate == testModel.AccountingDate);
            Expect(testReturn.CompanyLinkToGPGInfo == testModel.CompanyLinkToGPGInfo);
            Expect(testReturn.DiffMeanBonusPercent == testModel.DiffMeanBonusPercent.Value);
            Expect(testReturn.DiffMeanHourlyPayPercent == testModel.DiffMeanHourlyPayPercent.Value);
            Expect(testReturn.DiffMedianBonusPercent == testModel.DiffMedianBonusPercent.Value);
            Expect(testReturn.DiffMedianHourlyPercent == testModel.DiffMedianHourlyPercent.Value);
            Expect(testReturn.FemaleLowerPayBand == testModel.FemaleLowerPayBand.Value);
            Expect(testReturn.FemaleMedianBonusPayPercent == testModel.FemaleMedianBonusPayPercent.Value);
            Expect(testReturn.FemaleMiddlePayBand == testModel.FemaleMiddlePayBand.Value);
            Expect(testReturn.FemaleUpperPayBand == testModel.FemaleUpperPayBand.Value);
            Expect(testReturn.FemaleUpperQuartilePayBand == testModel.FemaleUpperQuartilePayBand.Value);
            Expect(testReturn.FirstName == testModel.FirstName);
            Expect(testReturn.LastName == testModel.LastName);
            Expect(testReturn.JobTitle == testModel.JobTitle);
            Expect(testReturn.MaleLowerPayBand == testModel.MaleLowerPayBand.Value);
            Expect(testReturn.MaleMedianBonusPayPercent == testModel.MaleMedianBonusPayPercent.Value);
            Expect(testReturn.MaleUpperQuartilePayBand == testModel.MaleUpperQuartilePayBand.Value);
            Expect(testReturn.MaleMiddlePayBand == testModel.MaleMiddlePayBand.Value);
            Expect(testReturn.MaleUpperPayBand == testModel.MaleUpperPayBand.Value);
            Expect(testReturn.Status == ReturnStatuses.Draft);
            Expect(testReturn.OrganisationId == testModel.OrganisationId);
            Expect(testReturn.MinEmployees == (int)testOrgSizeRange.Minimum);
            Expect(testReturn.MaxEmployees == (int)testOrgSizeRange.Maximum);
            Expect(testReturn.LateReason == testModel.LateReason);
        }
Exemplo n.º 14
0
        public async Task AdminController_ManualChanges_POST_Delete_Submissions_Succeeds_Changing_Submitted_To_Deleted_Many_Returns_Async()
        {
            // Arrange
            User databaseAdminUser = UserHelper.GetDatabaseAdmin();

            Core.Entities.Organisation publicOrganisationWithSubmissionsToBeDeleted =
                OrganisationHelper.GetPublicOrganisation("EmployerReference549549");
            Return mockedReturn = ReturnHelper.CreateTestReturn(
                publicOrganisationWithSubmissionsToBeDeleted,
                VirtualDateTime.Now.AddYears(-1).Year);

            mockedReturn.ReturnId = new Random().Next(10000, 99999);
            publicOrganisationWithSubmissionsToBeDeleted.LatestReturn = mockedReturn;
            publicOrganisationWithSubmissionsToBeDeleted.Returns.Add(mockedReturn);
            mockedReturn.Organisation = publicOrganisationWithSubmissionsToBeDeleted;

            Return additionalMockedReturn = ReturnHelper.CreateTestReturn(
                publicOrganisationWithSubmissionsToBeDeleted,
                VirtualDateTime.Now.AddYears(-1).Year);

            additionalMockedReturn.ReturnId   = new Random().Next(10000, 99999);
            additionalMockedReturn.StatusDate = additionalMockedReturn.StatusDate.AddDays(-3);
            publicOrganisationWithSubmissionsToBeDeleted.Returns.Add(additionalMockedReturn); // This will be found by search on line 1051

            var testController = UiTestHelper.GetController <AdminController>(
                databaseAdminUser.UserId,
                null,
                databaseAdminUser,
                publicOrganisationWithSubmissionsToBeDeleted,
                mockedReturn,
                additionalMockedReturn);

            var manualChangesViewModelMock = Mock.Of <ManualChangesViewModel>();

            manualChangesViewModelMock.Command    = DeleteSubmissionsCommand;
            manualChangesViewModelMock.Parameters =
                $"{publicOrganisationWithSubmissionsToBeDeleted.EmployerReference}={mockedReturn.AccountingDate.Year}";

            // Act
            IActionResult actualManualChangesResult = await testController.ManualChanges(manualChangesViewModelMock);

            // Assert
            Assert.NotNull(actualManualChangesResult, "Expected a Result");

            var manualChangesViewResult = actualManualChangesResult as ViewResult;

            Assert.NotNull(manualChangesViewResult, "Expected ViewResult");

            var actualManualChangesViewModel = manualChangesViewResult.Model as ManualChangesViewModel;

            Assert.NotNull(actualManualChangesViewModel, "Expected ManualChangesViewModel");

            Assert.AreEqual("SUCCESSFULLY TESTED 'Delete submissions': 1 of 1", actualManualChangesViewModel.SuccessMessage);
            Assert.AreEqual(
                $"1: EMPLOYERREFERENCE549549: Org123 Year='{mockedReturn.AccountingDate.Year}' Status='Submitted' set to 'Deleted'\r\n",
                actualManualChangesViewModel.Results);
            Assert.AreEqual("Delete submissions", actualManualChangesViewModel.LastTestedCommand);
            Assert.AreEqual($"EmployerReference549549={mockedReturn.AccountingDate.Year}", actualManualChangesViewModel.LastTestedInput);
            Assert.True(actualManualChangesViewModel.Tested, "Must be tested=true as this case is running in TEST mode");
            Assert.IsNull(actualManualChangesViewModel.Comment);
        }