Esempio n. 1
0
        public async Task AdminController_ManualChanges_POST_ShouldFailWhenEmployerIsNotPublicSector()
        {
            // Arrange
            var    thisTestDbObjects       = new object[] { testUser, testOrgData };
            var    thisTestAdminController = UiTestHelper.GetController <AdminController>(testUser.UserId, null, thisTestDbObjects);
            string thisTestParameters      = string.Join(
                "\r\n",
                "6B2LF57C=1",
                "DR994D7L=2",
                "23TYLBLB=3",
                "SNGNB4BH=4",
                "RWT2TY62=5");

            ManualChangesViewModel thisTestManualChangesVm =
                ManualChangesViewModelHelper.GetMock(SetPublicSectorTypeCommand, thisTestParameters);

            // Act
            var thisManualChangesVr = await thisTestAdminController.ManualChanges(thisTestManualChangesVm) as ViewResult;

            // Assert
            Assert.NotNull(thisManualChangesVr, "Expected ViewResult");

            var actualManualChangesViewModel = thisManualChangesVr.Model as ManualChangesViewModel;

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

            string[] actualResults = actualManualChangesViewModel.Results.Split(new[] { "\r\n", "\n" }, StringSplitOptions.None);
            Assert.AreEqual(6, actualResults.Length);
            Assert.IsFalse(actualResults[0].Contains(IsNotPublicSector), "Expected false when organisation is not public sector");
            Assert.IsTrue(actualResults[1].Contains(IsNotPublicSector), "Expected true when organisation is public sector");
            Assert.IsFalse(actualResults[2].Contains(IsNotPublicSector), "Expected false when organisation is not public sector");
            Assert.IsTrue(actualResults[3].Contains(IsNotPublicSector), "Expected true when organisation is public sector");
            Assert.IsFalse(actualResults[4].Contains(IsNotPublicSector), "Expected false when organisation is not public sector");
        }
Esempio n. 2
0
        public async Task AdminController_ManualChanges_POST_ShouldFailWhenPublicSectorTypeDoesNotExist()
        {
            // Arrange
            var    thisTestDbObjects       = new object[] { testUser, testOrgData, testOrgSecTypesData, testSecTypesData };
            var    thisTestAdminController = UiTestHelper.GetController <AdminController>(testUser.UserId, null, thisTestDbObjects);
            string thisTestParameters      = string.Join(
                "\r\n",
                "6B2LF57C=1412",
                "DR994D7L=2",
                "23TYLBLB=355");

            ManualChangesViewModel thisTestManualChangesVm =
                ManualChangesViewModelHelper.GetMock(SetPublicSectorTypeCommand, thisTestParameters);

            // Act
            var thisManualChangesVr = await thisTestAdminController.ManualChanges(thisTestManualChangesVm) as ViewResult;

            // Assert
            Assert.NotNull(thisManualChangesVr, "Expected ViewResult");

            var actualManualChangesViewModel = thisManualChangesVr.Model as ManualChangesViewModel;

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

            string[] actualResults = actualManualChangesViewModel.Results.Split(new[] { "\r\n", "\n" }, StringSplitOptions.None);
            Assert.AreEqual(4, actualResults.Length);
            Assert.IsTrue(
                actualResults[0].Contains("public sector type 1412 does not exist"),
                "Expected false when public sector type doesn't exist");
            Assert.IsFalse(actualResults[1].Contains("does not exist"), "Expected true when public sector type exists");
            Assert.IsTrue(
                actualResults[2].Contains("public sector type 355 does not exist"),
                "Expected false when public sector type doesn't exist");
        }
Esempio n. 3
0
        public async Task AdminController_ManualChanges_POST_ShouldFailWhenPublicSectorTypeNotInteger()
        {
            // Arrange
            var    thisTestDbObjects       = new object[] { testUser, testOrgData, testOrgSecTypesData, testSecTypesData };
            var    thisTestAdminController = UiTestHelper.GetController <AdminController>(testUser.UserId, null, thisTestDbObjects);
            string thisTestParameters      = string.Join(
                "\r\n",
                "6B2LF57C=TEST",
                "23TYLBLB=ABCD",
                "RWT2TY62=4");

            ManualChangesViewModel thisTestManualChangesVm =
                ManualChangesViewModelHelper.GetMock(SetPublicSectorTypeCommand, thisTestParameters);

            // Act
            var thisManualChangesVr = await thisTestAdminController.ManualChanges(thisTestManualChangesVm) as ViewResult;

            // Assert
            Assert.NotNull(thisManualChangesVr, "Expected ViewResult");

            var actualManualChangesViewModel = thisManualChangesVr.Model as ManualChangesViewModel;

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

            string[] actualResults = actualManualChangesViewModel.Results.Split(new[] { "\r\n", "\n" }, StringSplitOptions.None);
            Assert.AreEqual(4, actualResults.Length);
            Assert.IsTrue(actualResults[0].Contains(PublicSectorTypeMustBeInteger), "Expected to fail when input not an integer");
            Assert.IsTrue(actualResults[1].Contains(PublicSectorTypeMustBeInteger), "Expected to fail when input not an integer");
            Assert.IsFalse(actualResults[2].Contains(PublicSectorTypeMustBeInteger), "Expected to succeed when input is an integer");
        }
Esempio n. 4
0
        public async Task ShouldFailWhenMissingAddressEntries()
        {
            // Arrange
            var    thisTestDbObjects       = new object[] { testUser, testOrgData };
            var    thisTestAdminController = UiTestHelper.GetController <AdminController>(testUser.UserId, null, thisTestDbObjects);
            string thisTestParameters      = string.Join(
                "\r\n",
                "6B2LF57C=a1,a2",
                "DR994D7L=a1,a2,a3,t1,c1,c2,pc1",
                "23TYLBLB=1,2,3,4",
                "SNGNB4BH=a1,a2,a3,t1,c1,c2,pc1",
                "RWT2TY62=1,2,3,4,5");

            ManualChangesViewModel thisTestManualChangesVm =
                ManualChangesViewModelHelper.GetMock(SetOrganisationAddressesCommand, thisTestParameters);

            // Act
            var thisManualChangesVr = await thisTestAdminController.ManualChanges(thisTestManualChangesVm) as ViewResult;

            // Assert
            Assert.NotNull(thisManualChangesVr, "Expected ViewResult");

            var actualManualChangesViewModel = thisManualChangesVr.Model as ManualChangesViewModel;

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

            string[] actualResults = actualManualChangesViewModel.Results.Split(new[] { "\r\n", "\n" }, StringSplitOptions.None);
            Assert.AreEqual(6, actualResults.Length);
            Assert.IsTrue(actualResults[0].Contains(IncorrectNumberOfAddressFields), "Expected true when Sic code is not an integer");
            Assert.IsFalse(actualResults[1].Contains(IncorrectNumberOfAddressFields), "Expected false when Sic code is an integer");
            Assert.IsTrue(actualResults[2].Contains(IncorrectNumberOfAddressFields), "Expected true when Sic code is not an integer");
            Assert.IsFalse(actualResults[3].Contains(IncorrectNumberOfAddressFields), "Expected false when Sic code is an integer");
            Assert.IsTrue(actualResults[4].Contains(IncorrectNumberOfAddressFields), "Expected true when Sic code is not an integer");
        }
Esempio n. 5
0
        public async Task AdminController_ManualChanges_POST_ShouldFailWhenNoValueAfterEqualsCharacter()
        {
            // Arrange
            var    thisTestDbObjects       = new object[] { testUser, testOrgData };
            var    thisTestAdminController = UiTestHelper.GetController <AdminController>(testUser.UserId, null, thisTestDbObjects);
            string thisTestParameters      = string.Join(
                "\r\n",
                "6B2LF57C=",
                "23TYLBLB=",
                "RWT2TY62=4");

            ManualChangesViewModel thisTestManualChangesVm =
                ManualChangesViewModelHelper.GetMock(SetPublicSectorTypeCommand, thisTestParameters);

            // Act
            var thisManualChangesVr = await thisTestAdminController.ManualChanges(thisTestManualChangesVm) as ViewResult;

            // Assert
            Assert.NotNull(thisManualChangesVr, "Expected ViewResult");

            var actualManualChangesViewModel = thisManualChangesVr.Model as ManualChangesViewModel;

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

            string[] actualResults = actualManualChangesViewModel.Results.Split(new[] { "\r\n", "\n" }, StringSplitOptions.None);
            Assert.AreEqual(4, actualResults.Length);
            Assert.IsTrue(actualResults[0].Contains(MustContainPublicSectorTypeCode), "Expected true when line contains a value");
            Assert.IsTrue(actualResults[1].Contains(MustContainPublicSectorTypeCode), "Expected true when line contains a value");
            Assert.IsFalse(actualResults[2].Contains(MustContainPublicSectorTypeCode), "Expected true when line contains a value");
        }
Esempio n. 6
0
        public async Task ShouldFailWhenOrganisationIsNotActive()
        {
            // Arrange
            var    thisTestDbObjects       = new object[] { testUser, testOrgData };
            var    thisTestAdminController = UiTestHelper.GetController <AdminController>(testUser.UserId, null, thisTestDbObjects);
            string thisTestParameters      = string.Join(
                "\r\n",
                "TY67R5T6=1311",
                "DR994D7L=1241");

            ManualChangesViewModel thisTestManualChangesVm =
                ManualChangesViewModelHelper.GetMock(SetOrganisationSicCodesCommand, thisTestParameters);

            // Act
            var thisManualChangesVr = await thisTestAdminController.ManualChanges(thisTestManualChangesVm) as ViewResult;

            // Assert
            Assert.NotNull(thisManualChangesVr, "Expected ViewResult");

            var actualManualChangesViewModel = thisManualChangesVr.Model as ManualChangesViewModel;

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

            string[] actualResults = actualManualChangesViewModel.Results.Split(new[] { "\r\n", "\n" }, StringSplitOptions.None);
            Assert.AreEqual(3, actualResults.Length);
            Assert.IsTrue(actualResults[0].Contains(OrganisationMustBeActive), "Expected true when an organisation is not active");
            Assert.IsFalse(actualResults[1].Contains(OrganisationMustBeActive), "Expected false when an organisation is active");
        }
Esempio n. 7
0
        public async Task ShouldFailWhenSicCodesDontExist()
        {
            // Arrange
            var    thisTestDbObjects       = new object[] { testUser, testOrgData, testSicCodeData };
            var    thisTestAdminController = UiTestHelper.GetController <AdminController>(testUser.UserId, null, thisTestDbObjects);
            string thisTestParameters      = string.Join(
                "\r\n",
                "6B2LF57C=1111",
                "DR994D7L=2",
                "23TYLBLB=3333",
                "SNGNB4BH=4",
                "RWT2TY62=5555");

            ManualChangesViewModel thisTestManualChangesVm =
                ManualChangesViewModelHelper.GetMock(SetOrganisationSicCodesCommand, thisTestParameters);

            // Act
            var thisManualChangesVr = await thisTestAdminController.ManualChanges(thisTestManualChangesVm) as ViewResult;

            // Assert
            Assert.NotNull(thisManualChangesVr, "Expected ViewResult");

            var actualManualChangesViewModel = thisManualChangesVr.Model as ManualChangesViewModel;

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

            string[] actualResults = actualManualChangesViewModel.Results.Split(new[] { "\r\n", "\n" }, StringSplitOptions.None);
            Assert.AreEqual(6, actualResults.Length);
            Assert.IsFalse(actualResults[0].Contains(SicCodeDoesntExist), "Expected false when sic code exists");
            Assert.IsFalse(actualResults[1].Contains(SicCodeDoesntExist), "Expected true when sic code does not exist");
            Assert.IsFalse(actualResults[2].Contains(SicCodeDoesntExist), "Expected false when sic code exists");
            Assert.IsFalse(actualResults[3].Contains(SicCodeDoesntExist), "Expected true when sic code does not exist");
            Assert.IsFalse(actualResults[4].Contains(SicCodeDoesntExist), "Expected false when sic code exists");
        }
Esempio n. 8
0
        public async Task ShouldFailEachLineMissingEqualsCharacter()
        {
            // Arrange
            var    thisTestDbObjects       = new object[] { testUser };
            var    thisTestAdminController = UiTestHelper.GetController <AdminController>(testUser.UserId, null, thisTestDbObjects);
            string thisTestParameters      = string.Join(
                "\r\n",
                "test=passed",
                "this line should fail",
                "red=passed",
                "this line should fail also");

            ManualChangesViewModel thisTestManualChangesVm =
                ManualChangesViewModelHelper.GetMock(SetOrganisationSicCodesCommand, thisTestParameters);

            // Act
            var thisManualChangesVr = await thisTestAdminController.ManualChanges(thisTestManualChangesVm) as ViewResult;

            // Assert
            Assert.NotNull(thisManualChangesVr, "Expected ViewResult");

            var actualManualChangesViewModel = thisManualChangesVr.Model as ManualChangesViewModel;

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

            string[] actualResults = actualManualChangesViewModel.Results.Split(new[] { "\r\n", "\n" }, StringSplitOptions.None);

            Assert.AreEqual(5, actualResults.Length);
            Assert.IsFalse(actualResults[0].Contains(DoesNotContainEquals), "Expected false when line contains '='");
            Assert.IsTrue(actualResults[1].Contains(DoesNotContainEquals), "Expected true when line does not contain '='");
            Assert.IsFalse(actualResults[2].Contains(DoesNotContainEquals), "Expected false when line contains '='");
            Assert.IsTrue(actualResults[3].Contains(DoesNotContainEquals), "Expected true when line does not contain '='");
        }
Esempio n. 9
0
        public async Task ShouldFailDuplicateEmployers()
        {
            // Arrange
            var    thisTestDbObjects       = new object[] { testUser };
            var    thisTestAdminController = UiTestHelper.GetController <AdminController>(testUser.UserId, null, thisTestDbObjects);
            string thisTestParameters      = "  ="
                                             + Environment.NewLine
                                             + string.Join(Environment.NewLine, "EMP1=1", "EMP2=2", "EMP3=3", "EMP2=4", "EMP4=4");

            ManualChangesViewModel thisTestManualChangesVm =
                ManualChangesViewModelHelper.GetMock(SetOrganisationSicCodesCommand, thisTestParameters);

            // Act
            var thisManualChangesVr = await thisTestAdminController.ManualChanges(thisTestManualChangesVm) as ViewResult;

            // Assert
            Assert.NotNull(thisManualChangesVr, "Expected ViewResult");

            var actualManualChangesViewModel = thisManualChangesVr.Model as ManualChangesViewModel;

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

            string[] actualResults = actualManualChangesViewModel.Results.Split(new[] { "\r\n", "\n" }, StringSplitOptions.None);

            Assert.AreEqual(6, actualResults.Length);
            Assert.IsFalse(actualResults[0].Contains(DuplicateOrganisation), "Expected false when employer is not duplicate");
            Assert.IsFalse(actualResults[1].Contains(DuplicateOrganisation), "Expected false when employer is not duplicate");
            Assert.IsFalse(actualResults[2].Contains(DuplicateOrganisation), "Expected false when employer is not duplicate");
            Assert.IsTrue(actualResults[3].Contains(DuplicateOrganisation), "Expected true when employer is a duplicate");
            Assert.IsFalse(actualResults[4].Contains(DuplicateOrganisation), "Expected false when employer is not duplicate");
        }
Esempio n. 10
0
        public async Task ShouldFailWhenEmployerHasCompanyNumber()
        {
            // Arrange
            var    thisTestDbObjects       = new object[] { testUser, testOrgData };
            var    thisTestAdminController = UiTestHelper.GetController <AdminController>(testUser.UserId, null, thisTestDbObjects);
            string thisTestParameters      = string.Join(
                "\r\n",
                "6B2LF57C=address",
                "DR994D7L=address",
                "23TYLBLB=address",
                "SNGNB4BH=address",
                "RWT2TY62=address");

            ManualChangesViewModel thisTestManualChangesVm =
                ManualChangesViewModelHelper.GetMock(SetOrganisationAddressesCommand, thisTestParameters);

            // Act
            var thisManualChangesVr = await thisTestAdminController.ManualChanges(thisTestManualChangesVm) as ViewResult;

            // Assert
            Assert.NotNull(thisManualChangesVr, "Expected ViewResult");

            var actualManualChangesViewModel = thisManualChangesVr.Model as ManualChangesViewModel;

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

            string[] actualResults = actualManualChangesViewModel.Results.Split(new[] { "\r\n", "\n" }, StringSplitOptions.None);
            Assert.AreEqual(6, actualResults.Length);
            Assert.IsFalse(actualResults[0].Contains(HasCompanyNumber), "Expected false when organisation doesnt have a company number");
            Assert.IsTrue(actualResults[1].Contains(HasCompanyNumber), "Expected true when organisation has a company number");
            Assert.IsFalse(actualResults[2].Contains(HasCompanyNumber), "Expected false when organisation doesnt have a company number");
            Assert.IsTrue(actualResults[3].Contains(HasCompanyNumber), "Expected true when organisation has a company number");
            Assert.IsFalse(actualResults[4].Contains(HasCompanyNumber), "Expected false when organisation doesnt have a company number");
        }
Esempio n. 11
0
        public async Task ShouldFailWhenRequiredFieldIsMissing()
        {
            // Arrange
            var    thisTestDbObjects       = new object[] { testUser, testOrgData };
            var    thisTestAdminController = UiTestHelper.GetController <AdminController>(testUser.UserId, null, thisTestDbObjects);
            string thisTestParameters      = string.Join(
                "\r\n",
                "6B2LF57C=,a2,a3,t1,c1,c2,pc1",
                "23TYLBLB=a1,a2,a3,,c1,c2,pc1",
                "RWT2TY62=a1,a2,a3,t1,c1,c2,");

            ManualChangesViewModel thisTestManualChangesVm =
                ManualChangesViewModelHelper.GetMock(SetOrganisationAddressesCommand, thisTestParameters);

            // Act
            var thisManualChangesVr = await thisTestAdminController.ManualChanges(thisTestManualChangesVm) as ViewResult;

            // Assert
            Assert.NotNull(thisManualChangesVr, "Expected ViewResult");

            var actualManualChangesViewModel = thisManualChangesVr.Model as ManualChangesViewModel;

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

            string[] actualResults = actualManualChangesViewModel.Results.Split(new[] { "\r\n", "\n" }, StringSplitOptions.None);
            Assert.AreEqual(4, actualResults.Length);
            Assert.IsTrue(actualResults[0].Contains(Address1IsRequired), "Expected true when address1 is missing");
            Assert.IsTrue(actualResults[1].Contains(TownCityIsRequired), "Expected true when town\\city is missing");
            Assert.IsTrue(actualResults[2].Contains(PostcodeIsRequired), "Expected true when postcode is missing");
        }
Esempio n. 12
0
        public async Task ShouldFailWhenNoLinesSupplied()
        {
            // Arrange
            var thisTestDbObjects       = new object[] { testUser };
            var thisTestAdminController = UiTestHelper.GetController <AdminController>(testUser.UserId, null, thisTestDbObjects);
            var thisTestParameters      = "";
            ManualChangesViewModel testManualChangesVm =
                ManualChangesViewModelHelper.GetMock(SetOrganisationSicCodesCommand, thisTestParameters);

            // Act
            IActionResult result = await thisTestAdminController.ManualChanges(testManualChangesVm);

            // Assert
            Assert.AreEqual(MustSupplyOneOrMore, thisTestAdminController.ModelState[""].Errors[0].ErrorMessage);
        }
Esempio n. 13
0
        public async Task ShouldPassWhenLinesAreSupplied()
        {
            // Arrange
            var thisTestDbObjects       = new object[] { testUser };
            var thisTestAdminController = UiTestHelper.GetController <AdminController>(testUser.UserId, null, thisTestDbObjects);
            var thisTestParameters      = "SOMETHING";
            ManualChangesViewModel testManualChangesVm =
                ManualChangesViewModelHelper.GetMock(SetOrganisationSicCodesCommand, thisTestParameters);

            // Act
            var manualChangesViewResult = await thisTestAdminController.ManualChanges(testManualChangesVm) as ViewResult;

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

            var actualManualChangesViewModel = manualChangesViewResult.Model as ManualChangesViewModel;

            Assert.NotNull(actualManualChangesViewModel, "Expected ManualChangesViewModel");
        }
Esempio n. 14
0
        public async Task ShouldReplaceEmployerAddress()
        {
            // Arrange
            var    thisTestDbObjects       = new object[] { testUser, testOrgData };
            var    thisTestAdminController = UiTestHelper.GetController <AdminController>(testUser.UserId, null, thisTestDbObjects);
            string thisTestParameters      = string.Join(
                "\r\n",
                "6B2LF57C=Some House,1 Some Street,,Some Town,,,PC1 11RT",
                "D43TYU76=PO BOX 12,,,Another Town,,,PC2 55RT");

            ManualChangesViewModel thisTestManualChangesVm =
                ManualChangesViewModelHelper.GetMock(SetOrganisationAddressesCommand, thisTestParameters);

            thisTestManualChangesVm.LastTestedCommand = SetOrganisationAddressesCommand;
            thisTestManualChangesVm.LastTestedInput   = thisTestParameters.ReplaceI(Environment.NewLine, ";");

            // Act
            var thisManualChangesVr = await thisTestAdminController.ManualChanges(thisTestManualChangesVm) as ViewResult;

            // Assert
            Assert.NotNull(thisManualChangesVr, "Expected ViewResult");

            var actualManualChangesViewModel = thisManualChangesVr.Model as ManualChangesViewModel;

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

            string[] actualResults = actualManualChangesViewModel.Results.Split(new[] { "\r\n", "\n" }, StringSplitOptions.None);
            Assert.AreEqual(3, actualResults.Length);

            Core.Entities.Organisation org1 = thisTestAdminController.SharedBusinessLogic.DataRepository.GetAll <Core.Entities.Organisation>()
                                              .SingleOrDefault(x => x.EmployerReference == "6B2LF57C");
            Assert.AreEqual("Some House, 1 Some Street, Some Town, PC1 11RT", org1.LatestAddress.GetAddressString());
            Assert.AreEqual(
                "1: 6B2LF57C: Address=No previous address has been set to Some House,1 Some Street,,Some Town,,,PC1 11RT",
                actualResults[0]);

            Core.Entities.Organisation org2 = thisTestAdminController.SharedBusinessLogic.DataRepository.GetAll <Core.Entities.Organisation>()
                                              .SingleOrDefault(x => x.EmployerReference == "D43TYU76");
            Assert.AreEqual("PO BOX 12, Another Town, PC2 55RT", org2.LatestAddress.GetAddressString());
            Assert.AreEqual(
                "2: D43TYU76: Address=No previous address has been set to PO BOX 12,,,Another Town,,,PC2 55RT",
                actualResults[1]);
        }
Esempio n. 15
0
        public async Task AdminController_ManualChanges_POST_ShouldUpdateOrganisationPublicSectorType()
        {
            // Arrange
            var    thisTestDbObjects       = new object[] { testUser, testOrgData, testSecTypesData, testOrgSecTypesData };
            var    thisTestAdminController = UiTestHelper.GetController <AdminController>(testUser.UserId, null, thisTestDbObjects);
            string thisTestParameters      = string.Join(
                "\r\n",
                "6B2LF57C=1",
                "D43TYU76=2");

            ManualChangesViewModel thisTestManualChangesVm =
                ManualChangesViewModelHelper.GetMock(SetPublicSectorTypeCommand, thisTestParameters);

            thisTestManualChangesVm.LastTestedCommand = SetPublicSectorTypeCommand;
            thisTestManualChangesVm.LastTestedInput   = thisTestParameters.ReplaceI(Environment.NewLine, ";");

            // Act
            var thisManualChangesVr = await thisTestAdminController.ManualChanges(thisTestManualChangesVm) as ViewResult;

            // Assert
            Assert.NotNull(thisManualChangesVr, "Expected ViewResult");

            var actualManualChangesViewModel = thisManualChangesVr.Model as ManualChangesViewModel;

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

            string[] actualResults = actualManualChangesViewModel.Results.Split(new[] { "\r\n", "\n" }, StringSplitOptions.None);
            Assert.AreEqual(3, actualResults.Length);

            Core.Entities.Organisation org1 = thisTestAdminController.SharedBusinessLogic.DataRepository.GetAll <Core.Entities.Organisation>()
                                              .SingleOrDefault(x => x.EmployerReference == "6B2LF57C");
            Assert.AreEqual(1, org1.LatestPublicSectorType.PublicSectorTypeId);
            Assert.AreEqual(
                "1: 6B2LF57C:org 1 public sector type=No previous public sector type has been set to public sector type 1",
                actualResults[0]);

            Core.Entities.Organisation org2 = thisTestAdminController.SharedBusinessLogic.DataRepository.GetAll <Core.Entities.Organisation>()
                                              .SingleOrDefault(x => x.EmployerReference == "D43TYU76");
            Assert.AreEqual(2, org2.LatestPublicSectorType.PublicSectorTypeId);
            Assert.AreEqual(
                "2: D43TYU76:org 9 public sector type=No previous public sector type has been set to public sector type 2",
                actualResults[1]);
        }
Esempio n. 16
0
        public async Task ShouldReplaceEmployerSicCodes()
        {
            // Arrange
            var    thisTestDbObjects       = new object[] { testUser, testOrgData, testSicCodeData, testOrgSicCodeData };
            var    thisTestAdminController = UiTestHelper.GetController <AdminController>(testUser.UserId, null, thisTestDbObjects);
            string thisTestParameters      = string.Join(
                "\r\n",
                "6B2LF57C=1111",
                "23TYLBLB=3333");

            ManualChangesViewModel thisTestManualChangesVm =
                ManualChangesViewModelHelper.GetMock(SetOrganisationSicCodesCommand, thisTestParameters);

            thisTestManualChangesVm.LastTestedCommand = SetOrganisationSicCodesCommand;
            thisTestManualChangesVm.LastTestedInput   = thisTestParameters.ReplaceI(Environment.NewLine, ";");

            // Act
            var thisManualChangesVr = await thisTestAdminController.ManualChanges(thisTestManualChangesVm) as ViewResult;

            // Assert
            Assert.NotNull(thisManualChangesVr, "Expected ViewResult");

            var actualManualChangesViewModel = thisManualChangesVr.Model as ManualChangesViewModel;

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

            string[] actualResults = actualManualChangesViewModel.Results.Split(new[] { "\r\n", "\n" }, StringSplitOptions.None);
            Assert.AreEqual(3, actualResults.Length);

            Core.Entities.Organisation org1 = thisTestAdminController.SharedBusinessLogic.DataRepository.GetAll <Core.Entities.Organisation>()
                                              .SingleOrDefault(x => x.EmployerReference == "6B2LF57C");
            Assert.AreEqual("1111", org1.GetSicCodeIdsString());
            Assert.AreEqual("1: 6B2LF57C: SIC codes=1 has been set to 1111", actualResults[0]);

            Core.Entities.Organisation org2 = thisTestAdminController.SharedBusinessLogic.DataRepository.GetAll <Core.Entities.Organisation>()
                                              .SingleOrDefault(x => x.EmployerReference == "23TYLBLB");
            Assert.AreEqual("3333", org2.GetSicCodeIdsString());
            Assert.AreEqual("2: 23TYLBLB: SIC codes=3 has been set to 3333", actualResults[1]);
        }
Esempio n. 17
0
        public async Task ShouldFailWhenAddressFieldLongerThan100()
        {
            // Arrange
            var    thisTestDbObjects       = new object[] { testUser, testOrgData };
            var    thisTestAdminController = UiTestHelper.GetController <AdminController>(testUser.UserId, null, thisTestDbObjects);
            string thisTestParameters      = string.Join(
                "\r\n",
                $"6B2LF57C={"".PadLeft(101, 'z')},a2,a3,t1,c1,c2,pc1",
                $"23TYLBLB=a1,{"".PadLeft(101, 'z')},a3,t1,c1,c2,pc1",
                $"RWT2TY62=a1,a2,{"".PadLeft(101, 'z')},t1,c1,c2,pc1",
                $"ADCE324T=a1,a2,a3,{"".PadLeft(101, 'z')},c1,c2,pc1",
                $"GR2H67UI=a1,a2,a3,t1,{"".PadLeft(101, 'z')},c2,pc1",
                $"FG34RT65=a1,a2,a3,t1,c1,{"".PadLeft(101, 'z')},pc1",
                $"D43TYU76=a1,a2,a3,t1,c1,c2,{"".PadLeft(101, 'z')}");

            ManualChangesViewModel thisTestManualChangesVm =
                ManualChangesViewModelHelper.GetMock(SetOrganisationAddressesCommand, thisTestParameters);

            // Act
            var thisManualChangesVr = await thisTestAdminController.ManualChanges(thisTestManualChangesVm) as ViewResult;

            // Assert
            Assert.NotNull(thisManualChangesVr, "Expected ViewResult");

            var actualManualChangesViewModel = thisManualChangesVr.Model as ManualChangesViewModel;

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

            string[] actualResults = actualManualChangesViewModel.Results.Split(new[] { "\r\n", "\n" }, StringSplitOptions.None);
            Assert.AreEqual(8, actualResults.Length);
            Assert.IsTrue(actualResults[0].Contains(Address1IsGreaterThan100), "Expected true when address1 is greater 100 chars");
            Assert.IsTrue(actualResults[1].Contains(Address2IsGreaterThan100), "Expected true when address2 is greater 100 chars");
            Assert.IsTrue(actualResults[2].Contains(Address3IsGreaterThan100), "Expected true when address3 is greater 100 chars");
            Assert.IsTrue(actualResults[3].Contains(TownCityIsGreaterThan100), "Expected true when town\\city is greater 100 chars");
            Assert.IsTrue(actualResults[4].Contains(CountyIsGreaterThan100), "Expected true when county is greater 100 chars");
            Assert.IsTrue(actualResults[5].Contains(CountryIsGreaterThan100), "Expected true when country is greater 100 chars");
            Assert.IsTrue(actualResults[6].Contains(PostcodeIsGreaterThan100), "Expected true when postcode is greater 100 chars");
        }
        public async Task AdminController_ManualChanges_POST_When_Command_Was_Not_Implemented_Returns_Error_Async()
        {
            // Arrange
            User notAdminUser    = UserHelper.GetDatabaseAdmin();
            var  adminController = UiTestHelper.GetController <AdminController>(notAdminUser.UserId, null, notAdminUser);

            ManualChangesViewModel manualChangesViewModelMockObject =
                ManualChangesViewModelHelper.GetMock("Some undefined command", string.Empty);

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

            Assert.NotNull(manualChangesResult);

            var manualChangesViewResult = manualChangesResult as ViewResult;

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

            var actualManualChangesViewModel = manualChangesViewResult.Model as ManualChangesViewModel;

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

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

            // Assert
            Assert.Multiple(
                () => {
                Assert.AreEqual("ERROR: The command 'Some undefined command' has not yet been implemented", reportedError.ErrorMessage);
                Assert.IsNull(actualManualChangesViewModel.SuccessMessage);
                Assert.AreEqual("", actualManualChangesViewModel.Results);
                Assert.IsNull(actualManualChangesViewModel.LastTestedCommand);
                Assert.IsNull(actualManualChangesViewModel.LastTestedInput);
                Assert.IsFalse(actualManualChangesViewModel.Tested);
                Assert.IsNull(actualManualChangesViewModel.Comment);
            });
        }
Esempio n. 19
0
        public async Task AdminController_ManualChanges_POST_ShouldFailWhenMoreThanOnePublicSectorTypeEntered()
        {
            // Arrange
            var    thisTestDbObjects       = new object[] { testUser, testOrgData, testOrgSecTypesData, testSecTypesData };
            var    thisTestAdminController = UiTestHelper.GetController <AdminController>(testUser.UserId, null, thisTestDbObjects);
            string thisTestParameters      = string.Join(
                "\r\n",
                "6B2LF57C=1,2",
                "23TYLBLB=1",
                "RWT2TY62=4,8,6");

            ManualChangesViewModel thisTestManualChangesVm =
                ManualChangesViewModelHelper.GetMock(SetPublicSectorTypeCommand, thisTestParameters);

            // Act
            var thisManualChangesVr = await thisTestAdminController.ManualChanges(thisTestManualChangesVm) as ViewResult;

            // Assert
            Assert.NotNull(thisManualChangesVr, "Expected ViewResult");

            var actualManualChangesViewModel = thisManualChangesVr.Model as ManualChangesViewModel;

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

            string[] actualResults = actualManualChangesViewModel.Results.Split(new[] { "\r\n", "\n" }, StringSplitOptions.None);
            Assert.AreEqual(4, actualResults.Length);
            Assert.IsTrue(
                actualResults[0].Contains(CanOnlyAssignOneSectorType),
                "Expected to fail when multiple public sector types are given");
            Assert.IsFalse(
                actualResults[1].Contains(CanOnlyAssignOneSectorType),
                "Expected to succeed when single public sector type is given");
            Assert.IsTrue(
                actualResults[2].Contains(CanOnlyAssignOneSectorType),
                "Expected to fail when multiple public sector types are given");
        }
        public async Task AdminController_ManualChanges_POST_When_A_Generic_Exception_Happens_It_Is_Reported_Async()
        {
            // Arrange
            var deepestLevelExceptionMessage = "Deepest level exception 'Crash'";
            var deepestException             = new Exception(deepestLevelExceptionMessage);

            var lowestLevelExceptionMessage = "'Boom' lowest level";
            var lowestLevelException        = new Exception(lowestLevelExceptionMessage, deepestException);

            var midLevelExceptionMessage = "Mid level 'Bang'";
            var midLevelException        = new Exception(midLevelExceptionMessage, lowestLevelException);

            var topGenericExceptionMessage = "Top level Agregate 'Roxette'";
            var topGenericException        = new Exception(topGenericExceptionMessage, midLevelException);

            #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 <OrganisationName>())
            .Throws(topGenericException);

            ManualChangesViewModel manualChangesViewModelMockObject =
                ManualChangesViewModelHelper.GetMock("Fix organisation names", string.Empty);

            #endregion

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

            Assert.NotNull(manualChangesResult);

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

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

            ModelStateEntry modelState = adminController.ModelState[""];

            // Assert
            int actualNumberOfErrors = modelState.Errors.Count;
            Assert.AreEqual(1, actualNumberOfErrors, "This test must return only one error");

            ModelError actualMidLevelError = modelState.Errors.FirstOrDefault();
            Assert.Multiple(
                () => {
                Assert.AreEqual(deepestLevelExceptionMessage, actualMidLevelError.ErrorMessage);     // only reports 'deepest level' error
                Assert.IsNull(actualManualChangesViewModel.SuccessMessage);
                Assert.AreEqual("", actualManualChangesViewModel.Results);
                Assert.IsNull(actualManualChangesViewModel.LastTestedCommand);
                Assert.IsNull(actualManualChangesViewModel.LastTestedInput);
                Assert.IsFalse(actualManualChangesViewModel.Tested);
                Assert.IsNull(actualManualChangesViewModel.Comment);
            });
        }
        public async Task AdminController_ManualChanges_POST_When_An_Aggregate_Exception_Happens_It_Is_Reported_Async()
        {
            // Arrange
            var nestedExceptionMessage       = "Nested exception 'smash'";
            var midLevelExceptionMessage     = "Mid level 'Badaboom'";
            var deepestLevelExceptionMessage = "Deepest level exception 'Blam'";

            var nestedException = new Exception(nestedExceptionMessage);

            var arrayOfInnerExceptions = new List <Exception> {
                new Exception(midLevelExceptionMessage),
                new Exception("'Kaboom' lowest level", nestedException), // Message 'Kaboom' WILL NOT be showing
                new Exception(deepestLevelExceptionMessage)
            };

            var topAggregateException = new AggregateException("Top level Agregate 'Boom'", arrayOfInnerExceptions);

            #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 <OrganisationName>())
            .Throws(topAggregateException);

            ManualChangesViewModel manualChangesViewModelMockObject =
                ManualChangesViewModelHelper.GetMock("Fix organisation names", string.Empty);

            #endregion

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

            Assert.NotNull(manualChangesResult);

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

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

            ModelStateEntry modelState = adminController.ModelState[""];

            // Assert
            int actualNumberOfErrors = modelState.Errors.Count;
            Assert.AreEqual(3, actualNumberOfErrors, "This test must return three errors");

            ModelError actualNestedError = modelState.Errors.First(x => x.ErrorMessage == nestedExceptionMessage);
            Assert.NotNull(actualNestedError, $"List of errors was expected to contain nested error message [{nestedExceptionMessage}]");

            ModelError actualMidLevelError = modelState.Errors.First(x => x.ErrorMessage == midLevelExceptionMessage);
            Assert.NotNull(
                actualMidLevelError,
                $"List of errors was expected to contain mid level error message [{midLevelExceptionMessage}]");

            ModelError actualDeepestError = modelState.Errors.First(x => x.ErrorMessage == deepestLevelExceptionMessage);
            Assert.NotNull(
                actualNestedError,
                $"List of errors was expected to contain deepest error message [{deepestLevelExceptionMessage}]");

            Assert.Multiple(
                () => {
                Assert.AreEqual(midLevelExceptionMessage, actualMidLevelError.ErrorMessage);     // only reports 'mid level' error
                Assert.IsNull(actualManualChangesViewModel.SuccessMessage);
                Assert.AreEqual("", actualManualChangesViewModel.Results);
                Assert.IsNull(actualManualChangesViewModel.LastTestedCommand);
                Assert.IsNull(actualManualChangesViewModel.LastTestedInput);
                Assert.IsFalse(actualManualChangesViewModel.Tested);
                Assert.IsNull(actualManualChangesViewModel.Comment);
            });
        }