diff --git a/application/CohortManager/src/Functions/ScreeningValidationService/StaticValidation/Breast_Screening_staticRules.json b/application/CohortManager/src/Functions/ScreeningValidationService/StaticValidation/Breast_Screening_staticRules.json index 53d5dc91ab..7e888160ec 100644 --- a/application/CohortManager/src/Functions/ScreeningValidationService/StaticValidation/Breast_Screening_staticRules.json +++ b/application/CohortManager/src/Functions/ScreeningValidationService/StaticValidation/Breast_Screening_staticRules.json @@ -97,7 +97,7 @@ "Rules": [ { "RuleName": "30.Postcode.NBO.NonFatal", - "Expression": "string.IsNullOrEmpty(participant.Postcode) OR ValidationHelper.ValidatePostcode(participant.Postcode)", + "Expression": "string.IsNullOrEmpty(participant.Postcode) OR ValidationHelper.ValidatePostcode(participant.Postcode) OR participant.Postcode == \"ZZZSECUR\"", "Actions": { "OnFailure": { "Name": "OutputExpression", diff --git a/application/CohortManager/src/Functions/Shared/Common/ValidationHelper.cs b/application/CohortManager/src/Functions/Shared/Common/ValidationHelper.cs index 131de111ba..9c71573343 100644 --- a/application/CohortManager/src/Functions/Shared/Common/ValidationHelper.cs +++ b/application/CohortManager/src/Functions/Shared/Common/ValidationHelper.cs @@ -88,14 +88,12 @@ public static bool ValidateNHSNumber(string nhsNumber) public static bool ValidatePostcode(string postcode) { string validPostcodePattern = "^([A-Za-z][A-Ha-hJ-Yj-y]?[0-9][A-Za-z0-9]? ?[0-9][A-Za-z]{2}|[Gg][Ii][Rr] ?0[Aa]{2})$"; - string dummyPostcodePattern1 = "^ZZ99 ?[0-9][A-Z]{2}$"; - string dummyPostcodePattern2 = "^ZZZSECUR$"; + string dummyPostcodePattern = "^ZZ99 ?[0-9][A-Z]{2}$"; Match validPostcodeMatch = Regex.Match(postcode, validPostcodePattern, RegexOptions.IgnoreCase, TimeSpan.FromSeconds(2)); - Match dummyPostcodeMatch1 = Regex.Match(postcode, dummyPostcodePattern1, RegexOptions.IgnoreCase, TimeSpan.FromSeconds(2)); - Match dummyPostcodeMatch2 = Regex.Match(postcode, dummyPostcodePattern2, RegexOptions.IgnoreCase, TimeSpan.FromSeconds(2)); + Match dummyPostcodeMatch = Regex.Match(postcode, dummyPostcodePattern, RegexOptions.IgnoreCase, TimeSpan.FromSeconds(2)); - if (validPostcodeMatch.Success || dummyPostcodeMatch1.Success || dummyPostcodeMatch2.Success) + if (validPostcodeMatch.Success || dummyPostcodeMatch.Success) return true; return false; diff --git a/tests/UnitTests/ScreeningValidationServiceTests/StaticValidation/StaticValidationTests.cs b/tests/UnitTests/ScreeningValidationServiceTests/StaticValidation/StaticValidationTests.cs index 95c022b6df..d05c072da8 100644 --- a/tests/UnitTests/ScreeningValidationServiceTests/StaticValidation/StaticValidationTests.cs +++ b/tests/UnitTests/ScreeningValidationServiceTests/StaticValidation/StaticValidationTests.cs @@ -210,6 +210,7 @@ public async Task Run_DelRecord_DoNotRunCommonRules() [DataRow("ZZ99 9FZ")] [DataRow("ZZ999FZ")] [DataRow("ZZ99 3WZ")] + [DataRow("ZZZSECUR")] public async Task Run_ValidPostcode_ReturnNoContent(string postcode) { // Arrange diff --git a/tests/UnitTests/StaticTests/ValidationHelperTests.cs b/tests/UnitTests/StaticTests/ValidationHelperTests.cs index bf8ccb33db..878c0160cc 100644 --- a/tests/UnitTests/StaticTests/ValidationHelperTests.cs +++ b/tests/UnitTests/StaticTests/ValidationHelperTests.cs @@ -73,4 +73,29 @@ public void ValidatePastDate_InvalidPastDateAlwaysFuture_ReturnsFalse() Assert.IsFalse(result); } + + [TestMethod] + [DataRow("B33 8TH")] // Valid postcode format + [DataRow("SW1A 1AA")] // Valid postcode format + [DataRow("SM1 1AA")] // Valid postcode format + [DataRow("ZZ99 3CZ")] // dummy postcode format + public void ValidatePostcode_ValidPostcode_ReturnsTrue(string postCode) + { + var result = ValidationHelper.ValidatePostcode(postCode); + + Assert.IsTrue(result); + } + + [TestMethod] + [DataRow("A1")] + [DataRow("ABCDE 123")] + [DataRow("123 ABC")] + [DataRow("W1A")] + [DataRow("SW1A1AAA")] + public void ValidatePostcode_InvalidPostcode_ReturnsFalse(string postCode) + { + var result = ValidationHelper.ValidatePostcode(postCode); + + Assert.IsFalse(result); + } }