Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/StorageSqLiteTest.cs =================================================================== diff -u -r2af16641280bfec489b54f50f4d32cb29260e0b8 -r9d058b17ead065c9c63d8d11a2bd3d0938355b40 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/StorageSqLiteTest.cs (.../StorageSqLiteTest.cs) (revision 2af16641280bfec489b54f50f4d32cb29260e0b8) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/StorageSqLiteTest.cs (.../StorageSqLiteTest.cs) (revision 9d058b17ead065c9c63d8d11a2bd3d0938355b40) @@ -37,8 +37,7 @@ [TestFixture] public class StorageSqLiteTest { - private readonly string testDataPath = TestHelper.GetTestDataPath(TestDataPath.Application.Ringtoets.Storage, "DatabaseFiles"); - private readonly string tempRingtoetsFile = Path.Combine(TestHelper.GetTestDataPath(TestDataPath.Application.Ringtoets.Storage, "DatabaseFiles"), "tempProjectFile.rtd"); + private readonly string testPath = TestHelper.GetTestDataPath(TestDataPath.Application.Ringtoets.Storage, "DatabaseFiles"); [Test] public void DefaultConstructor_ExpectedValues() @@ -57,54 +56,53 @@ [TestCase(" ")] public void LoadProject_InvalidPath_ThrowsArgumentException(string invalidPath) { - // Setup - string expectedMessage = $"Fout bij het lezen van bestand '{invalidPath}': {"bestandspad mag niet leeg of ongedefinieerd zijn."}"; - // Call TestDelegate test = () => new StorageSqLite().LoadProject(invalidPath); // Assert ArgumentException exception = Assert.Throws(test); Assert.IsInstanceOf(exception); - Assert.AreEqual(expectedMessage, exception.Message); + Assert.AreEqual($"Fout bij het lezen van bestand '{invalidPath}': bestandspad mag niet leeg of ongedefinieerd zijn.", + exception.Message); } [Test] public void LoadProject_NonExistingPath_ThrowsStorageExceptionAndCouldNotConnectException() { // Setup string nonExistingPath = "fileDoesNotExist"; - string expectedMessage = $@"Fout bij het lezen van bestand '{nonExistingPath}': {"het bestand bestaat niet."}"; // Call TestDelegate test = () => new StorageSqLite().LoadProject(nonExistingPath); // Assert StorageException exception = Assert.Throws(test); - Assert.AreEqual(expectedMessage, exception.Message); + Assert.AreEqual($@"Fout bij het lezen van bestand '{nonExistingPath}': {"het bestand bestaat niet."}", + exception.Message); } [Test] public void LoadProject_RingtoetsFileWithoutSchema_ThrowsStorageExceptionAndStorageValidationException() { // Setup string validPath = "empty.rtd"; - var tempFile = Path.Combine(testDataPath, validPath); - string expectedMessage = $@"Fout bij het lezen van bestand '{tempFile}': {"het bestand is geen geldig Ringtoets bestand."}"; + var tempFile = Path.Combine(testPath, validPath); // Call TestDelegate test = () => new StorageSqLite().LoadProject(tempFile); // Assert StorageException exception = Assert.Throws(test); - Assert.AreEqual(expectedMessage, exception.Message); + Assert.AreEqual($@"Fout bij het lezen van bestand '{tempFile}': het bestand is geen geldig Ringtoets bestand.", + exception.Message); } [Test] public void LoadProject_RingtoetsFileWithTwoProjects_ThrowsStorageExceptionAndStorageValidationException() { // Setup + string tempRingtoetsFile = Path.Combine(testPath, Path.GetRandomFileName()); FileDisposeHelper fileDisposeHelper = new FileDisposeHelper(tempRingtoetsFile); try { @@ -115,7 +113,7 @@ TestDelegate test = () => new StorageSqLite().LoadProject(tempRingtoetsFile); // Assert - var expectedMessage = $@"Fout bij het lezen van bestand '{tempRingtoetsFile}': {"het bestand is geen geldig Ringtoets bestand."}"; + var expectedMessage = $@"Fout bij het lezen van bestand '{tempRingtoetsFile}': het bestand is geen geldig Ringtoets bestand."; StorageException exception = Assert.Throws(test); Assert.IsInstanceOf(exception); @@ -132,11 +130,7 @@ public void LoadProject_CorruptRingtoetsFileThatPassesValidation_ThrowsStorageExceptionWithFullStackTrace() { // Setup - string expectedMessage = $@"Fout bij het lezen van bestand '{tempRingtoetsFile}': {"het bestand is geen geldig Ringtoets bestand."}"; - var expectedInnerExceptionMessage = "An error occurred while executing the command definition. See the inner exception for details."; - var expectedInnerExceptionInnerExceptionMessage = "SQL logic error or missing database" + Environment.NewLine + - "no such table: ProjectEntity"; - + string tempRingtoetsFile = Path.Combine(testPath, Path.GetRandomFileName()); FileDisposeHelper fileDisposeHelper = new FileDisposeHelper(tempRingtoetsFile); try { @@ -149,13 +143,16 @@ // Assert StorageException exception = Assert.Throws(test); Assert.IsInstanceOf(exception); - Assert.AreEqual(expectedMessage, exception.Message); + Assert.AreEqual($@"Fout bij het lezen van bestand '{tempRingtoetsFile}': het bestand is geen geldig Ringtoets bestand.", + exception.Message); Assert.IsInstanceOf(exception.InnerException); - Assert.AreEqual(expectedInnerExceptionMessage, exception.InnerException.Message); + Assert.AreEqual("An error occurred while executing the command definition. See the inner exception for details.", + exception.InnerException.Message); Assert.IsInstanceOf(exception.InnerException.InnerException); - Assert.AreEqual(expectedInnerExceptionInnerExceptionMessage, exception.InnerException.InnerException.Message); + Assert.AreEqual("SQL logic error or missing database" + Environment.NewLine + + "no such table: ProjectEntity", exception.InnerException.InnerException.Message); } finally { @@ -168,8 +165,7 @@ public void LoadProject_DatabaseWithoutVersionEntities_ThrowStorageValidationException() { // Setup - string expectedMessage = $@"Fout bij het lezen van bestand '{tempRingtoetsFile}': {"database moet één rij in de VersionEntity tabel hebben."}"; - + string tempRingtoetsFile = Path.Combine(testPath, Path.GetRandomFileName()); FileDisposeHelper fileDisposeHelper = new FileDisposeHelper(tempRingtoetsFile); try { @@ -182,7 +178,8 @@ // Assert StorageException exception = Assert.Throws(test); Assert.IsInstanceOf(exception); - Assert.AreEqual(expectedMessage, exception.Message); + Assert.AreEqual($@"Fout bij het lezen van bestand '{tempRingtoetsFile}': database moet één rij in de VersionEntity tabel hebben.", + exception.Message); Assert.IsInstanceOf(exception.InnerException); } finally @@ -196,7 +193,7 @@ public void LoadProject_DatabaseWithMultipleVersionEntities_ThrowStorageValidationException() { // Setup - string expectedMessage = $@"Fout bij het lezen van bestand '{tempRingtoetsFile}': {"database moet één rij in de VersionEntity tabel hebben."}"; + string tempRingtoetsFile = Path.Combine(testPath, Path.GetRandomFileName()); string currentDatabaseVersion = RingtoetsVersionHelper.GetCurrentDatabaseVersion(); FileDisposeHelper fileDisposeHelper = new FileDisposeHelper(tempRingtoetsFile); try @@ -215,7 +212,8 @@ // Assert StorageException exception = Assert.Throws(test); Assert.IsInstanceOf(exception); - Assert.AreEqual(expectedMessage, exception.Message); + Assert.AreEqual($@"Fout bij het lezen van bestand '{tempRingtoetsFile}': database moet één rij in de VersionEntity tabel hebben.", + exception.Message); Assert.IsInstanceOf(exception.InnerException); } finally @@ -231,10 +229,9 @@ public void LoadProject_DatabaseFromFutureVersion_ThrowStorageValidationException(int additionalVersionNumber) { // Setup + string tempRingtoetsFile = Path.Combine(testPath, Path.GetRandomFileName()); string currentDatabaseVersion = RingtoetsVersionHelper.GetCurrentDatabaseVersion(); var versionCode = additionalVersionNumber + currentDatabaseVersion; - string subMessage = $"ringtoets bestand versie '{versionCode}' is hoger dan de huidig ondersteunde versie ('{currentDatabaseVersion}'). Update Ringtoets naar een nieuwere versie."; - string expectedMessage = $@"Fout bij het lezen van bestand '{tempRingtoetsFile}': {subMessage}"; FileDisposeHelper fileDisposeHelper = new FileDisposeHelper(tempRingtoetsFile); try @@ -252,7 +249,10 @@ // Assert StorageException exception = Assert.Throws(test); Assert.IsInstanceOf(exception); - Assert.AreEqual(expectedMessage, exception.Message); + Assert.AreEqual($@"Fout bij het lezen van bestand '{tempRingtoetsFile}': ringtoets " + + $"bestand versie '{versionCode}' is hoger dan de huidig ondersteunde versie " + + $"('{currentDatabaseVersion}'). Update Ringtoets naar een nieuwere versie.", + exception.Message); } finally { @@ -267,8 +267,7 @@ public void LoadProject_DatabaseWithInvalidVersionCode_ThrowStorageValidationException(string versionCode) { // Setup - string subMessage = $"ringtoets bestand versie '{versionCode}' is niet valide. Ringtoets bestand versie dient '16.4' of hoger te zijn."; - string expectedMessage = $@"Fout bij het lezen van bestand '{tempRingtoetsFile}': {subMessage}"; + string tempRingtoetsFile = Path.Combine(testPath, Path.GetRandomFileName()); FileDisposeHelper fileDisposeHelper = new FileDisposeHelper(tempRingtoetsFile); try @@ -286,7 +285,9 @@ // Assert StorageException exception = Assert.Throws(test); Assert.IsInstanceOf(exception); - Assert.AreEqual(expectedMessage, exception.Message); + Assert.AreEqual($@"Fout bij het lezen van bestand '{tempRingtoetsFile}': ringtoets " + + $"bestand versie '{versionCode}' is niet valide. Ringtoets bestand " + + "versie dient '16.4' of hoger te zijn.", exception.Message); } finally { @@ -299,6 +300,7 @@ public void LoadProject_ValidDatabase_ReturnsProject() { // Setup + string tempRingtoetsFile = Path.Combine(testPath, Path.GetRandomFileName()); var projectName = Path.GetFileNameWithoutExtension(tempRingtoetsFile); var storage = new StorageSqLite(); var mockRepository = new MockRepository(); @@ -347,7 +349,6 @@ { // Setup RingtoetsProject project = new RingtoetsProject(); - var expectedMessage = $"Fout bij het lezen van bestand '{invalidPath}': {"bestandspad mag niet leeg of ongedefinieerd zijn."}"; var storage = new StorageSqLite(); storage.StageProject(project); @@ -357,13 +358,15 @@ // Assert ArgumentException exception = Assert.Throws(test); - Assert.AreEqual(expectedMessage, exception.Message); + Assert.AreEqual($"Fout bij het lezen van bestand '{invalidPath}': bestandspad mag niet " + + " leeg of ongedefinieerd zijn.", exception.Message); } [Test] public void SaveProjectAs_ValidPathToNonExistingFile_DoesNotThrowException() { // Setup + string tempRingtoetsFile = Path.Combine(testPath, Path.GetRandomFileName()); var project = new RingtoetsProject(); var storage = new StorageSqLite(); storage.StageProject(project); @@ -390,6 +393,7 @@ public void SaveProjectAs_ValidPathToExistingFile_DoesNotThrowException() { // Setup + string tempRingtoetsFile = Path.Combine(testPath, Path.GetRandomFileName()); var project = new RingtoetsProject(); var storage = new StorageSqLite(); storage.StageProject(project); @@ -417,7 +421,7 @@ public void SaveProjectAs_ValidPathToLockedFile_ThrowsUpdateStorageException() { // Setup - var expectedMessage = $@"Kan geen tijdelijk bestand maken van het originele bestand ({tempRingtoetsFile})."; + string tempRingtoetsFile = Path.Combine(testPath, Path.GetRandomFileName()); var project = new RingtoetsProject(); var storage = new StorageSqLite(); storage.StageProject(project); @@ -438,7 +442,8 @@ Assert.IsInstanceOf(exception); Assert.IsInstanceOf(exception.InnerException); Assert.IsInstanceOf(exception); - Assert.AreEqual(expectedMessage, exception.Message); + Assert.AreEqual($@"Kan geen tijdelijk bestand maken van het originele bestand ({tempRingtoetsFile}).", + exception.Message); } finally { @@ -451,6 +456,7 @@ public void SaveProjectAs_NoStagedProject_ThrowInvalidOperationException() { // Setup + string tempRingtoetsFile = Path.Combine(testPath, Path.GetRandomFileName()); var storage = new StorageSqLite(); // Precondition @@ -471,7 +477,7 @@ var storage = new StorageSqLite(); storage.StageProject(new RingtoetsProject()); - string path = Path.Combine(testDataPath, "ValidCharacteristics.csv"); + string path = Path.Combine(testPath, "ValidCharacteristics.csv"); char[] invalidCharacters = Path.GetInvalidPathChars(); string corruptPath = path.Replace('V', invalidCharacters[0]); @@ -519,6 +525,7 @@ // Setup StorageSqLite storageSqLite = new StorageSqLite(); RingtoetsProject storedProject = new RingtoetsProject(); + string tempRingtoetsFile = Path.Combine(testPath, Path.GetRandomFileName()); FileDisposeHelper fileDisposeHelper = new FileDisposeHelper(tempRingtoetsFile); try @@ -547,6 +554,7 @@ StorageSqLite storageSqLite = new StorageSqLite(); RingtoetsProject storedProject = new RingtoetsProject(); var changedName = "some name"; + string tempRingtoetsFile = Path.Combine(testPath, Path.GetRandomFileName()); FileDisposeHelper fileDisposeHelper = new FileDisposeHelper(tempRingtoetsFile); try @@ -576,6 +584,7 @@ StorageSqLite storageSqLite = new StorageSqLite(); RingtoetsProject storedProject = RingtoetsProjectTestHelper.GetFullTestProject(); var changedDescription = "some description"; + string tempRingtoetsFile = Path.Combine(testPath, Path.GetRandomFileName()); FileDisposeHelper fileDisposeHelper = new FileDisposeHelper(tempRingtoetsFile); try @@ -607,6 +616,7 @@ var projectMock = mockRepository.StrictMock(); mockRepository.ReplayAll(); var storage = new StorageSqLite(); + string tempRingtoetsFile = Path.Combine(testPath, Path.GetRandomFileName()); FileDisposeHelper fileDisposeHelper = new FileDisposeHelper(tempRingtoetsFile); try