diff --git a/application/CohortManager/src/Functions/Functions.sln b/application/CohortManager/src/Functions/Functions.sln index 4c262c25fb..2dbb44e554 100644 --- a/application/CohortManager/src/Functions/Functions.sln +++ b/application/CohortManager/src/Functions/Functions.sln @@ -220,6 +220,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HttpParserTests", "..\..\.. EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FileNameParserTests", "..\..\..\..\tests\UnitTests\SharedTests\FileNameParserTests\FileNameParserTests.csproj", "{0A68E48A-8249-4A74-B5B7-5921017D07BD}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ValidationHelperTests", "..\..\..\..\tests\UnitTests\SharedTests\ValidationHelperTests\ValidationHelperTests.csproj", "{EDB57691-525A-4693-8562-A5E6F4D0A61F}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -610,6 +612,10 @@ Global {C86FDA63-AA51-4B5F-A69B-DEF0266E268F}.Debug|Any CPU.Build.0 = Debug|Any CPU {C86FDA63-AA51-4B5F-A69B-DEF0266E268F}.Release|Any CPU.ActiveCfg = Release|Any CPU {C86FDA63-AA51-4B5F-A69B-DEF0266E268F}.Release|Any CPU.Build.0 = Release|Any CPU + {EDB57691-525A-4693-8562-A5E6F4D0A61F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EDB57691-525A-4693-8562-A5E6F4D0A61F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EDB57691-525A-4693-8562-A5E6F4D0A61F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EDB57691-525A-4693-8562-A5E6F4D0A61F}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/tests/UnitTests/SharedTests/ValidationHelperTests/ValidationHelperTests.cs b/tests/UnitTests/SharedTests/ValidationHelperTests/ValidationHelperTests.cs new file mode 100644 index 0000000000..e736a3458f --- /dev/null +++ b/tests/UnitTests/SharedTests/ValidationHelperTests/ValidationHelperTests.cs @@ -0,0 +1,78 @@ +namespace NHS.CohortManager.Tests.Shared; + + +using Common; + +[TestClass] +public class ValidationHelperTests +{ + [TestMethod] + [DataRow("20000101")] // yyyymmdd + [DataRow("200001")] // yyyymm + [DataRow("2000-01-01")] // yyyy-mm-dd + [DataRow("01/01/2000 12:00:00")] // dd/mm/yyyy hh:mm:ss + [DataRow("2000")] // yyyy + public void ValidatePastDate_ValidInput_ReturnTrue(string date) + { + //No Arrange + //Act + var actual = ValidationHelper.ValidatePastDate(date); + + //Assert + bool expected = true; + Assert.AreEqual(actual, expected); + } + + [TestMethod] + [DataRow(null)] // null + [DataRow("20300101")] // future date + [DataRow("2000-01-32")] // date doesn't exist + [DataRow("1/13/2000 12:00:00 01")] // d/mm/yyyy hh:mm:ss tt + [DataRow("01/01/2000 25:00:00 01")] // dd/mm/yyyy hh:mm:ss tt + [DataRow("-2000")] // negative year + public void ValidatePastDate_InvalidInput_ReturnFalse(string date) + { + //No Arrange + //Act + var actual = ValidationHelper.ValidatePastDate(date); + + //Assert + bool expected = false; + Assert.AreEqual(actual, expected); + } + + [TestMethod] + [DataRow("8919361401")] // These are random valid NHS numbers created by https://data-gorilla.uk/en/healthcare/nhs-number/ + [DataRow("4539728490")] // This does not contain PII. + [DataRow("1056154497")] + [DataRow("1201484383")] + [DataRow("8325769629")] + public void ValidateNHSNumber_ValidInput_ReturnTrue(string nhsNumber) + { + //No Arrange + //Act + var actual = ValidationHelper.ValidateNHSNumber(nhsNumber); + + //Assert + bool expected = true; + Assert.AreEqual(actual, expected); + } + + [TestMethod] + [DataRow(null)] + [DataRow("1234567890")] + [DataRow("-1234567890")] + [DataRow("1a2b3c4d5e")] + [DataRow("123")] + [DataRow("0000000000")] + public void ValidateNHSNumber_InvalidInput_ReturnFalse(string nhsNumber) + { + //No Arrange + //Act + var actual = ValidationHelper.ValidateNHSNumber(nhsNumber); + + //Assert + bool expected = false; + Assert.AreEqual(actual, expected); + } +} \ No newline at end of file diff --git a/tests/UnitTests/SharedTests/ValidationHelperTests/ValidationHelperTests.csproj b/tests/UnitTests/SharedTests/ValidationHelperTests/ValidationHelperTests.csproj new file mode 100644 index 0000000000..6e5181e471 --- /dev/null +++ b/tests/UnitTests/SharedTests/ValidationHelperTests/ValidationHelperTests.csproj @@ -0,0 +1,27 @@ + + + + net8.0 + enable + enable + + false + true + + + + + + + + + + + + + + + + + +