Index: Core/Gui/src/Core.Gui/Commands/StorageCommandHandler.cs
===================================================================
diff -u -r8b7e959df30173881f81b817c4f6226546807f31 -ra2083c5d161b2769dcde539d41f2afdf3df90f41
--- Core/Gui/src/Core.Gui/Commands/StorageCommandHandler.cs (.../StorageCommandHandler.cs) (revision 8b7e959df30173881f81b817c4f6226546807f31)
+++ Core/Gui/src/Core.Gui/Commands/StorageCommandHandler.cs (.../StorageCommandHandler.cs) (revision a2083c5d161b2769dcde539d41f2afdf3df90f41)
@@ -119,7 +119,8 @@
}
catch (ProjectFactoryException e)
{
- log.Error(e);
+ log.Error(e.Message);
+ log.Info(Resources.StorageCommandHandler_NewProject_Creating_new_project_failed);
return;
}
Index: Core/Gui/src/Core.Gui/Properties/Resources.Designer.cs
===================================================================
diff -u -rb41da4f0fb44af1cd286c3d77668280497ec8199 -ra2083c5d161b2769dcde539d41f2afdf3df90f41
--- Core/Gui/src/Core.Gui/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision b41da4f0fb44af1cd286c3d77668280497ec8199)
+++ Core/Gui/src/Core.Gui/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision a2083c5d161b2769dcde539d41f2afdf3df90f41)
@@ -2597,6 +2597,15 @@
}
///
+ /// Looks up a localized string similar to Nieuw project aanmaken is mislukt..
+ ///
+ public static string StorageCommandHandler_NewProject_Creating_new_project_failed {
+ get {
+ return ResourceManager.GetString("StorageCommandHandler_NewProject_Creating_new_project_failed", resourceCulture);
+ }
+ }
+
+ ///
/// Looks up a localized string similar to Sla wijzigingen in het project op: {0}?.
///
public static string StorageCommandHandler_OpenSaveOrDiscardProjectDialog_SaveChangesToProject_0 {
Index: Core/Gui/src/Core.Gui/Properties/Resources.resx
===================================================================
diff -u -rb41da4f0fb44af1cd286c3d77668280497ec8199 -ra2083c5d161b2769dcde539d41f2afdf3df90f41
--- Core/Gui/src/Core.Gui/Properties/Resources.resx (.../Resources.resx) (revision b41da4f0fb44af1cd286c3d77668280497ec8199)
+++ Core/Gui/src/Core.Gui/Properties/Resources.resx (.../Resources.resx) (revision a2083c5d161b2769dcde539d41f2afdf3df90f41)
@@ -469,6 +469,9 @@
Nieuw project aanmaken is geannuleerd.
+
+ Nieuw project aanmaken is mislukt.
+
Fout
Index: Core/Gui/test/Core.Gui.Test/Commands/StorageCommandHandlerTest.cs
===================================================================
diff -u -r2bb78c041989c4970c56a3d74f0afa82083625ae -ra2083c5d161b2769dcde539d41f2afdf3df90f41
--- Core/Gui/test/Core.Gui.Test/Commands/StorageCommandHandlerTest.cs (.../StorageCommandHandlerTest.cs) (revision 2bb78c041989c4970c56a3d74f0afa82083625ae)
+++ Core/Gui/test/Core.Gui.Test/Commands/StorageCommandHandlerTest.cs (.../StorageCommandHandlerTest.cs) (revision a2083c5d161b2769dcde539d41f2afdf3df90f41)
@@ -58,7 +58,8 @@
projectOwner.Stub(po => po.ProjectFilePath).Return(savedProjectPath);
var projectFactory = mocks.Stub();
- projectFactory.Stub(pf => pf.CreateNewProject(OnCreateNewProjectFunc)).Return(newProject);
+ projectFactory.Stub(pf => pf.CreateNewProject(OnCreateNewProjectFunc))
+ .Return(newProject);
projectOwner.Expect(po => po.SetProject(newProject, null));
var inquiryHelper = mocks.Stub();
@@ -89,6 +90,90 @@
}
[Test]
+ public void CreateNewProject_ProjectFactoryReturnsNull_LogsMessage()
+ {
+ // Setup
+ object OnCreateNewProjectFunc() => null;
+
+ var projectStorage = mocks.Stub();
+ var projectMigrator = mocks.Stub();
+ var projectOwner = mocks.Stub();
+
+ var projectFactory = mocks.StrictMock();
+ projectFactory.Stub(pf => pf.CreateNewProject(OnCreateNewProjectFunc))
+ .Return(null);
+
+ var inquiryHelper = mocks.Stub();
+ var mainWindowController = mocks.Stub();
+
+ mocks.ReplayAll();
+
+ var storageCommandHandler = new StorageCommandHandler(
+ projectStorage,
+ projectMigrator,
+ projectFactory,
+ projectOwner,
+ inquiryHelper,
+ mainWindowController);
+
+ // Call
+ void Call() => storageCommandHandler.CreateNewProject(OnCreateNewProjectFunc);
+
+ // Assert
+ Tuple[] expectedMessages =
+ {
+ Tuple.Create("Nieuw project aanmaken is gestart.", LogLevelConstant.Info),
+ Tuple.Create("Nieuw project aanmaken is geannuleerd.", LogLevelConstant.Info)
+ };
+ TestHelper.AssertLogMessagesWithLevelAreGenerated(Call, expectedMessages, 2);
+
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void CreateNewProject_ProjectFactoryThrowsProjectFactoryException_LogsMessage()
+ {
+ // Setup
+ const string expectedExceptionMessage = "Error message";
+ object OnCreateNewProjectFunc() => null;
+
+ var projectStorage = mocks.Stub();
+ var projectMigrator = mocks.Stub();
+ var projectOwner = mocks.Stub();
+
+ var projectFactory = mocks.StrictMock();
+ projectFactory.Stub(pf => pf.CreateNewProject(OnCreateNewProjectFunc))
+ .Throw(new ProjectFactoryException(expectedExceptionMessage));
+
+ var inquiryHelper = mocks.Stub();
+ var mainWindowController = mocks.Stub();
+
+ mocks.ReplayAll();
+
+ var storageCommandHandler = new StorageCommandHandler(
+ projectStorage,
+ projectMigrator,
+ projectFactory,
+ projectOwner,
+ inquiryHelper,
+ mainWindowController);
+
+ // Call
+ void Call() => storageCommandHandler.CreateNewProject(OnCreateNewProjectFunc);
+
+ // Assert
+ Tuple[] expectedMessages =
+ {
+ Tuple.Create("Nieuw project aanmaken is gestart.", LogLevelConstant.Info),
+ Tuple.Create(expectedExceptionMessage, LogLevelConstant.Error),
+ Tuple.Create("Nieuw project aanmaken is mislukt.", LogLevelConstant.Info)
+ };
+ TestHelper.AssertLogMessagesWithLevelAreGenerated(Call, expectedMessages, 3);
+
+ mocks.VerifyAll();
+ }
+
+ [Test]
public void SaveProject_SavingProjectThrowsStorageException_AbortSaveAndReturnFalse()
{
// Setup