Index: Core/Gui/test/Core.Gui.Test/Commands/StorageCommandHandlerTest.cs =================================================================== diff -u -r8b7e959df30173881f81b817c4f6226546807f31 -r2bb78c041989c4970c56a3d74f0afa82083625ae --- Core/Gui/test/Core.Gui.Test/Commands/StorageCommandHandlerTest.cs (.../StorageCommandHandlerTest.cs) (revision 8b7e959df30173881f81b817c4f6226546807f31) +++ Core/Gui/test/Core.Gui.Test/Commands/StorageCommandHandlerTest.cs (.../StorageCommandHandlerTest.cs) (revision 2bb78c041989c4970c56a3d74f0afa82083625ae) @@ -397,7 +397,7 @@ } [Test] - public void OpenExistingProject_ShouldMigrateYesAndDetermineMigrationLocationThrowsArgumentException_LogFailureAndCreateNewProjectAndReturnsFalse() + public void OpenExistingProject_ShouldMigrateYesAndDetermineMigrationLocationThrowsArgumentException_LogFailureAndReturnsFalse() { // Setup const string errorMessage = "I am an error message."; @@ -413,14 +413,8 @@ .Throw(new ArgumentException(errorMessage)); } - var project = mocks.Stub(); var projectFactory = mocks.StrictMock(); - projectFactory.Expect(pf => pf.CreateNewProject(null)) - .IgnoreArguments().Return(project); - var projectOwner = mocks.StrictMock(); - projectOwner.Stub(po => po.Project).Return(project); - projectOwner.Expect(po => po.SetProject(project, null)); var inquiryHelper = mocks.Stub(); var mainWindowController = mocks.Stub(); @@ -445,7 +439,7 @@ } [Test] - public void OpenExistingProject_ShouldMigrateTrueAndMigrateThrowsArgumentException_LogFailureAndCreateNewProjectAndReturnsFalse() + public void OpenExistingProject_ShouldMigrateTrueAndMigrateThrowsArgumentException_LogFailureAndReturnsFalse() { // Setup const string errorMessage = "I am an error message."; @@ -466,14 +460,8 @@ .Throw(new ArgumentException(errorMessage)); } - var project = mocks.Stub(); var projectFactory = mocks.StrictMock(); - projectFactory.Expect(pf => pf.CreateNewProject(null)) - .IgnoreArguments().Return(project); - var projectOwner = mocks.StrictMock(); - projectOwner.Stub(po => po.Project).Return(project); - projectOwner.Expect(po => po.SetProject(project, null)); var inquiryHelper = mocks.Stub(); mocks.ReplayAll(); Index: Core/Gui/test/Core.Gui.Test/GuiCoreTest.cs =================================================================== diff -u -re426893bd2c1d93c5d054e505957ab6d20f02b2f -r2bb78c041989c4970c56a3d74f0afa82083625ae --- Core/Gui/test/Core.Gui.Test/GuiCoreTest.cs (.../GuiCoreTest.cs) (revision e426893bd2c1d93c5d054e505957ab6d20f02b2f) +++ Core/Gui/test/Core.Gui.Test/GuiCoreTest.cs (.../GuiCoreTest.cs) (revision 2bb78c041989c4970c56a3d74f0afa82083625ae) @@ -692,7 +692,7 @@ [Test] [Apartment(ApartmentState.STA)] - public void Run_LoadingFromOutdatedAndShouldMigrateThrowsArgumentException_LogErrorAndLoadDefaultProjectInstead() + public void Run_LoadingFromOutdatedAndShouldMigrateThrowsArgumentException_LogErrorAndShowStartScreen() { // Setup const string fileName = "SomeFile"; @@ -706,21 +706,10 @@ var projectMigrator = mocks.Stub(); projectMigrator.Stub(pm => pm.ShouldMigrate(testFile)) .Throw(new ArgumentException(expectedErrorMessage)); - - const string expectedProjectName = "Project"; - var project = mocks.Stub(); - project.Name = expectedProjectName; var projectFactory = mocks.Stub(); - projectFactory.Stub(pf => pf.CreateNewProject(null)) - .IgnoreArguments() - .Return(project); - mocks.ReplayAll(); - var fixedSettings = new GuiCoreSettings - { - ApplicationName = "
" - }; + var fixedSettings = new GuiCoreSettings(); using (var mainWindow = new MainWindow()) using (var gui = new GuiCore(mainWindow, projectStore, projectMigrator, projectFactory, fixedSettings)) @@ -734,16 +723,16 @@ TestHelper.AssertLogMessageWithLevelIsGenerated(Call, Tuple.Create(expectedErrorMessage, LogLevelConstant.Error)); Assert.IsNull(gui.ProjectFilePath); - string expectedTitle = $"{expectedProjectName} - {fixedSettings.ApplicationName} {SettingsHelper.Instance.ApplicationVersion}"; - Assert.AreEqual(expectedTitle, mainWindow.Title); + Assert.IsNull(gui.Project); + Assert.IsInstanceOf(gui.ActiveParentWindow); } mocks.VerifyAll(); } [Test] [Apartment(ApartmentState.STA)] - public void Run_LoadingFromOutdatedAndMigrateThrowsArgumentException_LogErrorAndLoadDefaultProjectInstead() + public void Run_LoadingFromOutdatedAndMigrateThrowsArgumentException_LogErrorAndShowStartScreen() { // Setup const string fileName = "SomeFile"; @@ -760,21 +749,10 @@ projectMigrator.Stub(pm => pm.DetermineMigrationLocation(testFile)).Return(targetFile); projectMigrator.Stub(pm => pm.Migrate(testFile, targetFile)) .Throw(new ArgumentException(expectedErrorMessage)); - - const string expectedProjectName = "Project"; - var project = mocks.Stub(); - project.Name = expectedProjectName; var projectFactory = mocks.Stub(); - projectFactory.Stub(pf => pf.CreateNewProject(null)) - .IgnoreArguments() - .Return(project); - mocks.ReplayAll(); - var fixedSettings = new GuiCoreSettings - { - ApplicationName = "
" - }; + var fixedSettings = new GuiCoreSettings(); using (var mainWindow = new MainWindow()) using (var gui = new GuiCore(mainWindow, projectStore, projectMigrator, projectFactory, fixedSettings)) @@ -794,16 +772,16 @@ TestHelper.AssertLogMessagesWithLevelAreGenerated(Call, expectedMessages); Assert.IsNull(gui.ProjectFilePath); - var expectedTitle = $"{expectedProjectName} - {fixedSettings.ApplicationName} {SettingsHelper.Instance.ApplicationVersion}"; - Assert.AreEqual(expectedTitle, mainWindow.Title); + Assert.IsNull(gui.Project); + Assert.IsInstanceOf(gui.ActiveParentWindow); } mocks.VerifyAll(); } [Test] [Apartment(ApartmentState.STA)] - public void Run_LoadingFromFileThrowsStorageException_LogErrorAndLoadDefaultProjectInstead() + public void Run_LoadingFromFileThrowsStorageException_LogErrorAndShowStartScreen() { // Setup const string fileName = "SomeFile"; @@ -816,20 +794,10 @@ var projectMigrator = mocks.Stub(); projectMigrator.Stub(m => m.ShouldMigrate(testFile)).Return(MigrationRequired.No); projectStore.Expect(ps => ps.LoadProject(testFile)).Throw(new StorageException(storageExceptionText)); - const string expectedProjectName = "Project"; - var project = mocks.Stub(); - project.Name = expectedProjectName; var projectFactory = mocks.Stub(); - projectFactory.Stub(pf => pf.CreateNewProject(null)) - .IgnoreArguments() - .Return(project); - mocks.ReplayAll(); - var fixedSettings = new GuiCoreSettings - { - ApplicationName = "
" - }; + var fixedSettings = new GuiCoreSettings(); using (var mainWindow = new MainWindow()) using (var gui = new GuiCore(mainWindow, projectStore, projectMigrator, projectFactory, fixedSettings)) @@ -849,8 +817,8 @@ TestHelper.AssertLogMessagesWithLevelAreGenerated(Call, expectedMessages); Assert.IsNull(gui.ProjectFilePath); - var expectedTitle = $"{expectedProjectName} - {fixedSettings.ApplicationName} {SettingsHelper.Instance.ApplicationVersion}"; - Assert.AreEqual(expectedTitle, mainWindow.Title); + Assert.IsNull(gui.Project); + Assert.IsInstanceOf(gui.ActiveParentWindow); } mocks.VerifyAll(); Index: Core/Gui/test/Core.Gui.Test/OpenProjectActivityTest.cs =================================================================== diff -u -re426893bd2c1d93c5d054e505957ab6d20f02b2f -r2bb78c041989c4970c56a3d74f0afa82083625ae --- Core/Gui/test/Core.Gui.Test/OpenProjectActivityTest.cs (.../OpenProjectActivityTest.cs) (revision e426893bd2c1d93c5d054e505957ab6d20f02b2f) +++ Core/Gui/test/Core.Gui.Test/OpenProjectActivityTest.cs (.../OpenProjectActivityTest.cs) (revision 2bb78c041989c4970c56a3d74f0afa82083625ae) @@ -710,7 +710,7 @@ } [Test] - public void GivenOpenProjectActivityAndFailedDueToNoProject_WhenFinishingOpenProjectActivity_ThenProjectOwnerHasNewEmptyProjectWithLogMessage() + public void GivenOpenProjectActivityAndFailedDueToNoProject_WhenFinishingOpenProjectActivity_ThenMessageLogged() { // Given const string someFilePath = @"c:\\folder\someFilePath.rtd"; @@ -720,14 +720,8 @@ projectStorage.Stub(ps => ps.LoadProject(someFilePath)) .Return(null); - var project = mocks.Stub(); - var projectFactory = mocks.Stub(); - projectFactory.Expect(pf => pf.CreateNewProject(null)) - .IgnoreArguments() - .Return(project); var projectOwner = mocks.Stub(); - projectOwner.Expect(po => po.SetProject(project, null)); mocks.ReplayAll(); var openProjectProperties = new OpenProjectActivity.OpenProjectConstructionProperties @@ -774,14 +768,8 @@ projectStorage.Stub(ps => ps.LoadProject(someFilePath)) .Throw(exceptionToThrow); - var project = mocks.Stub(); - - var projectFactory = mocks.Stub(); - projectFactory.Expect(pf => pf.CreateNewProject(null)) - .IgnoreArguments() - .Return(project); - var projectOwner = mocks.Stub(); - projectOwner.Expect(po => po.SetProject(project, null)); + var projectFactory = mocks.StrictMock(); + var projectOwner = mocks.StrictMock(); mocks.ReplayAll(); var openProjectProperties = new OpenProjectActivity.OpenProjectConstructionProperties @@ -807,8 +795,8 @@ }; // Then - Tuple expectedMessage = Tuple.Create("Openen van project is mislukt.", - LogLevelConstant.Error); + var expectedMessage = Tuple.Create("Openen van project is mislukt.", + LogLevelConstant.Error); TestHelper.AssertLogMessageWithLevelIsGenerated(call, expectedMessage, 1); Assert.AreEqual(ActivityState.Failed, activity.State); @@ -977,111 +965,6 @@ } [Test] - public void Finish_ProjectMigrationFailed_ExpectedProgressText() - { - // Setup - var mocks = new MockRepository(); - var projectFactory = mocks.Stub(); - var projectOwner = mocks.Stub(); - var storeProject = mocks.Stub(); - var migrateProject = mocks.Stub(); - migrateProject.Stub(pm => pm.Migrate(null, null)) - .IgnoreArguments() - .Throw(new ArgumentException()); - mocks.ReplayAll(); - - var openProjectProperties = new OpenProjectActivity.OpenProjectConstructionProperties - { - FilePath = "", - ProjectFactory = projectFactory, - ProjectOwner = projectOwner, - ProjectStorage = storeProject - }; - var migrateProjectProperties = new OpenProjectActivity.ProjectMigrationConstructionProperties - { - MigrationFilePath = "", - Migrator = migrateProject - }; - - var activity = new OpenProjectActivity(openProjectProperties, - migrateProjectProperties); - activity.Run(); - - // Precondition - Assert.AreEqual(ActivityState.Failed, activity.State); - - var progressMessages = new List(); - activity.ProgressChanged += (sender, args) => - { - Assert.AreSame(activity, sender); - Assert.AreEqual(EventArgs.Empty, args); - - progressMessages.Add(activity.ProgressText); - }; - - // Call - activity.Finish(); - - // Assert - var expectedProgressMessages = new[] - { - "Stap 3 van 3 | Initialiseren van leeg project" - }; - CollectionAssert.AreEqual(expectedProgressMessages, progressMessages); - - mocks.VerifyAll(); - } - - [Test] - public void Finish_OnlyProjectOpenFailed_ExpectedProgressText() - { - // Setup - var mocks = new MockRepository(); - var projectFactory = mocks.Stub(); - var projectOwner = mocks.Stub(); - var storeProject = mocks.Stub(); - storeProject.Stub(s => s.LoadProject(null)) - .IgnoreArguments() - .Throw(new StorageException()); - mocks.ReplayAll(); - - var openProjectProperties = new OpenProjectActivity.OpenProjectConstructionProperties - { - FilePath = "", - ProjectFactory = projectFactory, - ProjectOwner = projectOwner, - ProjectStorage = storeProject - }; - - var activity = new OpenProjectActivity(openProjectProperties); - activity.Run(); - - // Precondition - Assert.AreEqual(ActivityState.Failed, activity.State); - - var progressMessages = new List(); - activity.ProgressChanged += (sender, args) => - { - Assert.AreSame(activity, sender); - Assert.AreEqual(EventArgs.Empty, args); - - progressMessages.Add(activity.ProgressText); - }; - - // Call - activity.Finish(); - - // Assert - var expectedProgressMessages = new[] - { - "Stap 2 van 2 | Initialiseren van leeg project" - }; - CollectionAssert.AreEqual(expectedProgressMessages, progressMessages); - - mocks.VerifyAll(); - } - - [Test] [TestCase(true)] [TestCase(false)] public void GivenActivityMigratingAndOpeningProject_WhenCancellingDuringMigration_DoNotLoadProject(bool migrationSuccessful) Index: Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/RiskeerProjectFactoryTest.cs =================================================================== diff -u -r7f397d62e5fd14b5202c620c2aed09b79f8f94c8 -r2bb78c041989c4970c56a3d74f0afa82083625ae --- Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/RiskeerProjectFactoryTest.cs (.../RiskeerProjectFactoryTest.cs) (revision 7f397d62e5fd14b5202c620c2aed09b79f8f94c8) +++ Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/RiskeerProjectFactoryTest.cs (.../RiskeerProjectFactoryTest.cs) (revision 2bb78c041989c4970c56a3d74f0afa82083625ae) @@ -21,8 +21,10 @@ using System; using Core.Common.Base.Data; +using Core.Common.Base.IO; using NUnit.Framework; using Riskeer.Common.Data.AssessmentSection; +using Riskeer.Common.IO.Exceptions; using Riskeer.Integration.Data; namespace Riskeer.Integration.Plugin.Test @@ -77,7 +79,7 @@ } [Test] - public void CreateNewProject_WithOnCreateNewProjectFuncThrowsException_ThrowsProjectFactoryException() + public void CreateNewProject_WithOnCreateNewProjectFuncThrowsException_ThrowsException() { // Setup var projectFactory = new RiskeerProjectFactory(); @@ -87,9 +89,40 @@ void Call() => projectFactory.CreateNewProject(() => throw new Exception(expectedMessage)); // Assert + var exception = Assert.Throws(Call); + Assert.AreEqual(expectedMessage, exception.Message); + } + + [Test] + public void CreateNewProject_WithOnCreateNewProjectFuncThrowsCriticalFileReadException_ThrowsProjectFactoryException() + { + // Setup + var projectFactory = new RiskeerProjectFactory(); + const string expectedMessage = "Exception message test"; + + // Call + void Call() => projectFactory.CreateNewProject(() => throw new CriticalFileReadException(expectedMessage)); + + // Assert var exception = Assert.Throws(Call); Assert.AreEqual(expectedMessage, exception.Message); Assert.IsInstanceOf(exception.InnerException); } + + [Test] + public void CreateNewProject_WithOnCreateNewProjectFuncThrowsCriticalFileValidationException_ThrowsProjectFactoryException() + { + // Setup + var projectFactory = new RiskeerProjectFactory(); + const string expectedMessage = "Exception message test"; + + // Call + void Call() => projectFactory.CreateNewProject(() => throw new CriticalFileValidationException(expectedMessage)); + + // Assert + var exception = Assert.Throws(Call); + Assert.AreEqual(expectedMessage, exception.Message); + Assert.IsInstanceOf(exception.InnerException); + } } } \ No newline at end of file