Index: Core/Common/src/Core.Common.Gui/Commands/ApplicationFeatureCommandHandler.cs
===================================================================
diff -u -ref1c61d94f2aec3b4ff32fcf03253d7ad386c8e5 -rb78b6d08e4be8dfe938718d5e65085aa8bd72dcc
--- Core/Common/src/Core.Common.Gui/Commands/ApplicationFeatureCommandHandler.cs (.../ApplicationFeatureCommandHandler.cs) (revision ef1c61d94f2aec3b4ff32fcf03253d7ad386c8e5)
+++ Core/Common/src/Core.Common.Gui/Commands/ApplicationFeatureCommandHandler.cs (.../ApplicationFeatureCommandHandler.cs) (revision b78b6d08e4be8dfe938718d5e65085aa8bd72dcc)
@@ -29,7 +29,6 @@
using Core.Common.Gui.Forms.MainWindow;
using Core.Common.Gui.Forms.PropertyGridView;
using Core.Common.Gui.Properties;
-using Core.Common.Gui.Selection;
using Core.Common.Gui.Settings;
using log4net;
@@ -44,26 +43,22 @@
{
private readonly IPropertyResolver propertyResolver;
private readonly IMainWindow mainWindow;
- private readonly IApplicationSelection applicationSelection;
///
/// Initializes a new instance of the class.
///
/// The object responsible for finding the object properties
/// for a given data object.
/// The main user interface of the application.
- /// The application's selection mechanism.
- public ApplicationFeatureCommandHandler(IPropertyResolver propertyResolver, IMainWindow mainWindow, IApplicationSelection applicationSelection)
+ public ApplicationFeatureCommandHandler(IPropertyResolver propertyResolver, IMainWindow mainWindow)
{
this.propertyResolver = propertyResolver;
this.mainWindow = mainWindow;
- this.applicationSelection = applicationSelection;
}
public void ShowPropertiesFor(object obj)
{
mainWindow.InitPropertiesWindowAndActivate();
- applicationSelection.Selection = obj;
}
public bool CanShowPropertiesFor(object obj)
Index: Core/Common/src/Core.Common.Gui/Commands/IStorageCommands.cs
===================================================================
diff -u -r58846a8af268aab642a28805373d6fb234341f70 -rb78b6d08e4be8dfe938718d5e65085aa8bd72dcc
--- Core/Common/src/Core.Common.Gui/Commands/IStorageCommands.cs (.../IStorageCommands.cs) (revision 58846a8af268aab642a28805373d6fb234341f70)
+++ Core/Common/src/Core.Common.Gui/Commands/IStorageCommands.cs (.../IStorageCommands.cs) (revision b78b6d08e4be8dfe938718d5e65085aa8bd72dcc)
@@ -28,7 +28,7 @@
///
/// Interface for exposing commands/methods related to saving/loading a .
///
- public interface IStorageCommands : IDisposable
+ public interface IStorageCommands
{
///
/// Closes the current project and creates a new one.
Index: Core/Common/src/Core.Common.Gui/Commands/ProjectCommandHandler.cs
===================================================================
diff -u -r223b2a4edc4ac816051c7eeecb735c34a6246574 -rb78b6d08e4be8dfe938718d5e65085aa8bd72dcc
--- Core/Common/src/Core.Common.Gui/Commands/ProjectCommandHandler.cs (.../ProjectCommandHandler.cs) (revision 223b2a4edc4ac816051c7eeecb735c34a6246574)
+++ Core/Common/src/Core.Common.Gui/Commands/ProjectCommandHandler.cs (.../ProjectCommandHandler.cs) (revision b78b6d08e4be8dfe938718d5e65085aa8bd72dcc)
@@ -78,8 +78,6 @@
if (newItem != null)
{
AddItemToProject(newItem);
-
- applicationSelection.Selection = newItem;
viewController.DocumentViewController.OpenViewForData(applicationSelection.Selection);
}
}
Index: Core/Common/src/Core.Common.Gui/Commands/StorageCommandHandler.cs
===================================================================
diff -u -r7a542dea56b0bcfbbd4dd6f2c6abcafcfaa5f753 -rb78b6d08e4be8dfe938718d5e65085aa8bd72dcc
--- Core/Common/src/Core.Common.Gui/Commands/StorageCommandHandler.cs (.../StorageCommandHandler.cs) (revision 7a542dea56b0bcfbbd4dd6f2c6abcafcfaa5f753)
+++ Core/Common/src/Core.Common.Gui/Commands/StorageCommandHandler.cs (.../StorageCommandHandler.cs) (revision b78b6d08e4be8dfe938718d5e65085aa8bd72dcc)
@@ -20,51 +20,37 @@
// All rights reserved.
using System;
-using System.Collections.Specialized;
using System.IO;
using System.Windows.Forms;
-using Core.Common.Base;
using Core.Common.Base.Data;
using Core.Common.Base.Storage;
using Core.Common.Gui.Properties;
-using Core.Common.Gui.Selection;
using log4net;
namespace Core.Common.Gui.Commands
{
///
/// Class responsible for persistency of .
///
- public class StorageCommandHandler : IStorageCommands, IObserver
+ public class StorageCommandHandler : IStorageCommands
{
private static readonly ILog log = LogManager.GetLogger(typeof(StorageCommandHandler));
- private readonly IViewCommands viewCommands;
- private readonly IMainWindowController mainWindowController;
+ private readonly IWin32Window dialogParent;
private readonly IProjectOwner projectOwner;
private readonly IStoreProject projectPersistor;
- private readonly IApplicationSelection applicationSelection;
///
/// Initializes a new instance of the class.
///
/// Class responsible to storing and loading the application project.
/// The class owning the application project.
- /// Class managing the application selection.
- /// Controller for UI.
- /// The view command handler.
- public StorageCommandHandler(IStoreProject projectStorage, IProjectOwner projectOwner,
- IApplicationSelection applicationSelection, IMainWindowController mainWindowController,
- IViewCommands viewCommands)
+ /// Controller for UI.
+ public StorageCommandHandler(IStoreProject projectStorage, IProjectOwner projectOwner, IWin32Window dialogParent)
{
- this.viewCommands = viewCommands;
- this.mainWindowController = mainWindowController;
+ this.dialogParent = dialogParent;
this.projectOwner = projectOwner;
projectPersistor = projectStorage;
- this.applicationSelection = applicationSelection;
-
- this.projectOwner.ProjectOpened += ApplicationProjectOpened;
- this.projectOwner.ProjectClosing += ApplicationProjectClosing;
}
///
@@ -81,11 +67,6 @@
return OpenSaveOrDiscardProjectDialog();
}
- public void UpdateObserver()
- {
- mainWindowController.RefreshGui();
- }
-
public void CreateNewProject()
{
if (!ContinueIfHasChanges())
@@ -99,8 +80,6 @@
projectOwner.Project = new Project();
projectOwner.ProjectFilePath = "";
log.Info(Resources.StorageCommandHandler_NewProject_Created_new_project_succesful);
-
- mainWindowController.RefreshGui();
}
public bool OpenExistingProject()
@@ -112,7 +91,7 @@
RestoreDirectory = true
})
{
- if (openFileDialog.ShowDialog(mainWindowController.MainWindow) != DialogResult.Cancel && ContinueIfHasChanges())
+ if (openFileDialog.ShowDialog(dialogParent) != DialogResult.Cancel && ContinueIfHasChanges())
{
return OpenExistingProject(openFileDialog.FileName);
}
@@ -143,8 +122,6 @@
}
projectOwner.Project = newProject;
- projectOwner.Project.NotifyObservers();
- mainWindowController.RefreshGui();
return isOpenProjectSuccessful;
}
@@ -154,14 +131,9 @@
{
return;
}
-
- viewCommands.RemoveAllViewsForItem(projectOwner.Project);
-
projectOwner.Project = null;
projectOwner.ProjectFilePath = "";
projectPersistor.CloseProject();
-
- mainWindowController.RefreshGui();
}
public bool SaveProjectAs()
@@ -187,7 +159,6 @@
projectOwner.ProjectFilePath = filePath;
project.Name = Path.GetFileNameWithoutExtension(filePath);
project.NotifyObservers();
- mainWindowController.RefreshGui();
log.Info(String.Format(Resources.StorageCommandHandler_SaveProject_Succesfully_saved_project_0_, project.Name));
return true;
}
@@ -218,8 +189,6 @@
public void Dispose()
{
- projectOwner.ProjectOpened -= ApplicationProjectOpened;
- projectOwner.ProjectClosing -= ApplicationProjectClosing;
}
private bool OpenSaveOrDiscardProjectDialog()
@@ -318,30 +287,5 @@
return false;
}
}
-
- private void ApplicationProjectClosing(Project project)
- {
- viewCommands.RemoveAllViewsForItem(project);
-
- project.Detach(this);
- }
-
- private void ApplicationProjectOpened(Project project)
- {
- applicationSelection.Selection = project;
-
- project.Attach(this);
- }
-
- private void AddProjectToMruList()
- {
- var mruList = (StringCollection) Properties.Settings.Default["mruList"];
- if (mruList.Contains(projectOwner.ProjectFilePath))
- {
- mruList.Remove(projectOwner.ProjectFilePath);
- }
-
- mruList.Insert(0, projectOwner.ProjectFilePath);
- }
}
}
\ No newline at end of file
Index: Core/Common/src/Core.Common.Gui/GuiCore.cs
===================================================================
diff -u -r3fdd2bee85bdf8b556c52d6706ed887c2b70bed4 -rb78b6d08e4be8dfe938718d5e65085aa8bd72dcc
--- Core/Common/src/Core.Common.Gui/GuiCore.cs (.../GuiCore.cs) (revision 3fdd2bee85bdf8b556c52d6706ed887c2b70bed4)
+++ Core/Common/src/Core.Common.Gui/GuiCore.cs (.../GuiCore.cs) (revision b78b6d08e4be8dfe938718d5e65085aa8bd72dcc)
@@ -29,6 +29,7 @@
using System.Linq;
using System.Reflection;
using System.Windows;
+using Core.Common.Base;
using Core.Common.Base.Data;
using Core.Common.Base.Storage;
using Core.Common.Controls.TreeView;
@@ -99,7 +100,6 @@
throw new ArgumentNullException("fixedSettings");
}
MainWindow = mainWindow;
- Storage = projectStore;
FixedSettings = fixedSettings;
isAlreadyRunningInstanceOfIGui = true;
@@ -110,7 +110,7 @@
UserSettings = Properties.Settings.Default;
viewCommandHandler = new ViewCommandHandler(this, this, this);
- storageCommandHandler = new StorageCommandHandler(projectStore, this, this, this, viewCommandHandler);
+ storageCommandHandler = new StorageCommandHandler(projectStore, this, MainWindow);
exportImportCommandHandler = new ExportImportCommandHandler(MainWindow,
Plugins.SelectMany(p => p.GetFileImporters()),
Plugins.SelectMany(p => p.GetFileExporters()));
@@ -120,12 +120,11 @@
ViewPropertyEditor.ViewCommands = ViewCommands;
ProjectOpened += ApplicationProjectOpened;
+ projectObserver = new Observer(UpdateTitle);
}
public IPropertyResolver PropertyResolver { get; private set; }
- public IStoreProject Storage { get; private set; }
-
public void Dispose()
{
Dispose(true);
@@ -204,7 +203,7 @@
#endregion
- protected virtual void Dispose(bool disposing)
+ private void Dispose(bool disposing)
{
if (disposing)
{
@@ -224,7 +223,6 @@
}
Selection = null;
-
Project = null;
if (ViewHost != null)
@@ -500,7 +498,7 @@
DocumentViewController = new DocumentViewController(ViewHost, Plugins.SelectMany(p => p.GetViewInfos()), mainWindow);
PropertyResolver = new PropertyResolver(Plugins.SelectMany(p => p.GetPropertyInfos()));
- applicationFeatureCommands = new ApplicationFeatureCommandHandler(PropertyResolver, mainWindow, this);
+ applicationFeatureCommands = new ApplicationFeatureCommandHandler(PropertyResolver, mainWindow);
mainWindow.InitializeToolWindows();
@@ -595,9 +593,9 @@
#region Implementation: IProjectOwner
private Project project;
+ private readonly Observer projectObserver;
public event Action ProjectOpened;
- public event Action ProjectClosing;
public string ProjectFilePath { get; set; }
@@ -611,13 +609,12 @@
{
if (project != null)
{
- if (ProjectClosing != null)
- {
- ProjectClosing(project);
- }
+ ViewCommands.RemoveAllViewsForItem(project);
}
project = value;
+ projectObserver.Observable = project;
+ UpdateTitle();
if (project != null)
{
@@ -811,15 +808,6 @@
}
}
- public void RefreshGui()
- {
- // Set the gui selection to the current project
- Selection = Project;
-
- // Update the window title
- UpdateTitle();
- }
-
private void UpdateTitle()
{
if (mainWindow != null)
Index: Core/Common/src/Core.Common.Gui/IGui.cs
===================================================================
diff -u -rce792554075b8bfb2723bbdab4b3bdcb6cc58d6f -rb78b6d08e4be8dfe938718d5e65085aa8bd72dcc
--- Core/Common/src/Core.Common.Gui/IGui.cs (.../IGui.cs) (revision ce792554075b8bfb2723bbdab4b3bdcb6cc58d6f)
+++ Core/Common/src/Core.Common.Gui/IGui.cs (.../IGui.cs) (revision b78b6d08e4be8dfe938718d5e65085aa8bd72dcc)
@@ -20,7 +20,6 @@
// All rights reserved.
using System;
-using Core.Common.Base.Storage;
using Core.Common.Gui.Commands;
using Core.Common.Gui.ContextMenu;
using Core.Common.Gui.Forms.PropertyGridView;
@@ -44,11 +43,6 @@
IPropertyResolver PropertyResolver { get; }
///
- /// Gets the current project storage.
- ///
- IStoreProject Storage { get; }
-
- ///
/// Runs the user interface, causing all user interface components to initialize,
/// loading plugins and displaying the main window.
///
Index: Core/Common/src/Core.Common.Gui/IMainWindowController.cs
===================================================================
diff -u -r223b2a4edc4ac816051c7eeecb735c34a6246574 -rb78b6d08e4be8dfe938718d5e65085aa8bd72dcc
--- Core/Common/src/Core.Common.Gui/IMainWindowController.cs (.../IMainWindowController.cs) (revision 223b2a4edc4ac816051c7eeecb735c34a6246574)
+++ Core/Common/src/Core.Common.Gui/IMainWindowController.cs (.../IMainWindowController.cs) (revision b78b6d08e4be8dfe938718d5e65085aa8bd72dcc)
@@ -33,10 +33,5 @@
/// Gets main window of the graphical user interface.
///
IMainWindow MainWindow { get; }
-
- ///
- /// Fully refreshes the user interface.
- ///
- void RefreshGui();
}
}
\ No newline at end of file
Index: Core/Common/src/Core.Common.Gui/IProjectOwner.cs
===================================================================
diff -u -r0ae715fe2b16306e4147fed9749bae67ce186168 -rb78b6d08e4be8dfe938718d5e65085aa8bd72dcc
--- Core/Common/src/Core.Common.Gui/IProjectOwner.cs (.../IProjectOwner.cs) (revision 0ae715fe2b16306e4147fed9749bae67ce186168)
+++ Core/Common/src/Core.Common.Gui/IProjectOwner.cs (.../IProjectOwner.cs) (revision b78b6d08e4be8dfe938718d5e65085aa8bd72dcc)
@@ -36,11 +36,6 @@
event Action ProjectOpened;
///
- /// Occurs when the instance available at is removed.
- ///
- event Action ProjectClosing;
-
- ///
/// Gets or sets the project of the application.
///
Project Project { get; set; }
Index: Core/Common/test/Core.Common.Gui.Test/Commands/ApplicationFeatureCommandHandlerTest.cs
===================================================================
diff -u -r151bab16a7ebc1bffc0621ab56c6dc219db1e90f -rb78b6d08e4be8dfe938718d5e65085aa8bd72dcc
--- Core/Common/test/Core.Common.Gui.Test/Commands/ApplicationFeatureCommandHandlerTest.cs (.../ApplicationFeatureCommandHandlerTest.cs) (revision 151bab16a7ebc1bffc0621ab56c6dc219db1e90f)
+++ Core/Common/test/Core.Common.Gui.Test/Commands/ApplicationFeatureCommandHandlerTest.cs (.../ApplicationFeatureCommandHandlerTest.cs) (revision b78b6d08e4be8dfe938718d5e65085aa8bd72dcc)
@@ -35,7 +35,7 @@
public class ApplicationFeatureCommandHandlerTest
{
[Test]
- public void ShowPropertiesFor_InitializeAndShowPropertyGridAndUpdateSelection()
+ public void ShowPropertiesFor_InitializeAndShowPropertyGrid()
{
// Setup
var target = new object();
@@ -47,13 +47,12 @@
var applicationSelection = mocks.Stub();
mocks.ReplayAll();
- var commandHandler = new ApplicationFeatureCommandHandler(propertyResolver, mainWindow, applicationSelection);
+ var commandHandler = new ApplicationFeatureCommandHandler(propertyResolver, mainWindow);
// Call
commandHandler.ShowPropertiesFor(target);
// Assert
- Assert.AreSame(target, applicationSelection.Selection);
mocks.VerifyAll();
}
@@ -71,7 +70,7 @@
var applicationSelection = mocks.Stub();
mocks.ReplayAll();
- var commandHandler = new ApplicationFeatureCommandHandler(propertyResolver, mainWindow, applicationSelection);
+ var commandHandler = new ApplicationFeatureCommandHandler(propertyResolver, mainWindow);
// Call
var result = commandHandler.CanShowPropertiesFor(target);
@@ -95,7 +94,7 @@
var applicationSelection = mocks.Stub();
mocks.ReplayAll();
- var commandHandler = new ApplicationFeatureCommandHandler(propertyResolver, mainWindow, applicationSelection);
+ var commandHandler = new ApplicationFeatureCommandHandler(propertyResolver, mainWindow);
// Call
var result = commandHandler.CanShowPropertiesFor(target);
Index: Core/Common/test/Core.Common.Gui.Test/Commands/StorageCommandHandlerTest.cs
===================================================================
diff -u -r223b2a4edc4ac816051c7eeecb735c34a6246574 -rb78b6d08e4be8dfe938718d5e65085aa8bd72dcc
--- Core/Common/test/Core.Common.Gui.Test/Commands/StorageCommandHandlerTest.cs (.../StorageCommandHandlerTest.cs) (revision 223b2a4edc4ac816051c7eeecb735c34a6246574)
+++ Core/Common/test/Core.Common.Gui.Test/Commands/StorageCommandHandlerTest.cs (.../StorageCommandHandlerTest.cs) (revision b78b6d08e4be8dfe938718d5e65085aa8bd72dcc)
@@ -20,7 +20,7 @@
// All rights reserved.
using System;
-using Core.Common.Base;
+using System.Windows.Forms;
using Core.Common.Base.Data;
using Core.Common.Base.Storage;
using Core.Common.Gui.Commands;
@@ -48,40 +48,32 @@
public void CreateNewProject_NoProjectSet_NewProjectIsSet()
{
// Setup
- var viewCommands = mocks.StrictMock();
-
var projectStorage = mocks.Stub();
var projectOwner = mocks.Stub();
- projectOwner.Stub(g => g.ProjectOpened += null).IgnoreArguments();
- projectOwner.Stub(g => g.ProjectClosing += null).IgnoreArguments();
- projectOwner.Stub(g => g.ProjectOpened -= null).IgnoreArguments();
- projectOwner.Stub(g => g.ProjectClosing -= null).IgnoreArguments();
- var applicationSelection = mocks.Stub();
+ var mainWindowController = mocks.Stub();
- var mainWindowController = mocks.Stub();
- mainWindowController.Expect(c => c.RefreshGui());
-
mocks.ReplayAll();
- using (var storageCommandHandler = new StorageCommandHandler(projectStorage, projectOwner, applicationSelection,
- mainWindowController, viewCommands))
- {
- // Call
- Action call = () => storageCommandHandler.CreateNewProject();
+ var storageCommandHandler = new StorageCommandHandler(
+ projectStorage,
+ projectOwner,
+ mainWindowController);
- // Assert
- var expectedMessages = new[]
- {
- "Openen van nieuw Ringtoetsproject.",
- "Nieuw Ringtoetsproject succesvol geopend."
- };
- TestHelper.AssertLogMessagesAreGenerated(call, expectedMessages, 2);
+ // Call
+ Action call = () => storageCommandHandler.CreateNewProject();
- Assert.IsInstanceOf(projectOwner.Project);
- Assert.AreEqual("", projectOwner.ProjectFilePath);
- }
+ // Assert
+ var expectedMessages = new[]
+ {
+ "Openen van nieuw Ringtoetsproject.",
+ "Nieuw Ringtoetsproject succesvol geopend."
+ };
+ TestHelper.AssertLogMessagesAreGenerated(call, expectedMessages, 2);
+
+ Assert.IsInstanceOf(projectOwner.Project);
+ Assert.AreEqual("", projectOwner.ProjectFilePath);
mocks.VerifyAll();
}
@@ -95,46 +87,38 @@
projectMock.Name = "test";
projectMock.StorageId = 1234L;
- var viewCommands = mocks.StrictMock();
- viewCommands.Expect(g => g.RemoveAllViewsForItem(projectMock)).IgnoreArguments();
-
var projectStorage = mocks.Stub();
var projectOwner = mocks.Stub();
projectOwner.Project = projectMock;
projectOwner.ProjectFilePath = savedProjectPath;
- projectOwner.Stub(g => g.ProjectOpened += null).IgnoreArguments();
- projectOwner.Stub(g => g.ProjectClosing += null).IgnoreArguments();
- projectOwner.Stub(g => g.ProjectOpened -= null).IgnoreArguments();
- projectOwner.Stub(g => g.ProjectClosing -= null).IgnoreArguments();
- var applicationSelection = mocks.Stub();
+ var mainWindowController = mocks.Stub();
- var mainWindowController = mocks.Stub();
- mainWindowController.Expect(c => c.RefreshGui()).Repeat.AtLeastOnce();
-
mocks.ReplayAll();
- using (var storageCommandHandler = new StorageCommandHandler(projectStorage, projectOwner, applicationSelection,
- mainWindowController, viewCommands))
+ var storageCommandHandler = new StorageCommandHandler(
+ projectStorage,
+ projectOwner,
+ mainWindowController);
+
+ // Call
+ Action call = () => storageCommandHandler.CreateNewProject();
+
+ // Assert
+ var expectedMessages = new[]
{
- // Call
- Action call = () => storageCommandHandler.CreateNewProject();
+ "Openen van nieuw Ringtoetsproject.",
+ "Nieuw Ringtoetsproject succesvol geopend."
+ };
+ TestHelper.AssertLogMessagesAreGenerated(call, expectedMessages, 2);
- // Assert
- var expectedMessages = new[]
- {
- "Openen van nieuw Ringtoetsproject.",
- "Nieuw Ringtoetsproject succesvol geopend."
- };
- TestHelper.AssertLogMessagesAreGenerated(call, expectedMessages, 2);
+ Assert.IsInstanceOf(projectOwner.Project);
+ Assert.AreNotEqual(projectMock, projectOwner.Project);
+ Assert.AreNotEqual(projectMock.StorageId, projectOwner.Project.StorageId);
+ Assert.AreNotEqual(savedProjectPath, projectOwner.ProjectFilePath);
+ Assert.AreEqual("", projectOwner.ProjectFilePath);
- Assert.IsInstanceOf(projectOwner.Project);
- Assert.AreNotEqual(projectMock, projectOwner.Project);
- Assert.AreNotEqual(projectMock.StorageId, projectOwner.Project.StorageId);
- Assert.AreNotEqual(savedProjectPath, projectOwner.ProjectFilePath);
- Assert.AreEqual("", projectOwner.ProjectFilePath);
- }
mocks.VerifyAll();
}
@@ -143,26 +127,22 @@
{
// Setup
var projectStorage = mocks.StrictMock();
- var applicationSelection = mocks.StrictMock();
- var mainWindowController = mocks.StrictMock();
- var viewCommands = mocks.StrictMock();
+ var mainWindowController = mocks.StrictMock();
var projectOwner = mocks.StrictMock();
projectOwner.Expect(po => po.Project).Return(null);
- projectOwner.Stub(po => po.ProjectOpened += null).IgnoreArguments();
- projectOwner.Stub(po => po.ProjectClosing += null).IgnoreArguments();
- projectOwner.Stub(po => po.ProjectOpened -= null).IgnoreArguments();
- projectOwner.Stub(po => po.ProjectClosing -= null).IgnoreArguments();
mocks.ReplayAll();
- using (var commandHandler = new StorageCommandHandler(projectStorage, projectOwner, applicationSelection,
- mainWindowController, viewCommands))
- {
- // Call
- var result = commandHandler.SaveProject();
+ var storageCommandHandler = new StorageCommandHandler(
+ projectStorage,
+ projectOwner,
+ mainWindowController);
- // Assert
- Assert.IsFalse(result);
- }
+ // Call
+ var result = storageCommandHandler.SaveProject();
+
+ // Assert
+ Assert.IsFalse(result);
+
mocks.VerifyAll();
}
@@ -178,34 +158,30 @@
var projectStorage = mocks.StrictMock();
projectStorage.Expect(ps => ps.SaveProject(someValidFilePath, project)).
Throw(new StorageException(exceptionMessage, new Exception("l33t h4xor!")));
- var applicationSelection = mocks.StrictMock();
- var mainWindowController = mocks.StrictMock();
- var viewCommands = mocks.StrictMock();
+ var mainWindowController = mocks.StrictMock();
var projectOwner = mocks.Stub();
projectOwner.Project = project;
projectOwner.ProjectFilePath = someValidFilePath;
- projectOwner.Stub(po => po.ProjectOpened += null).IgnoreArguments();
- projectOwner.Stub(po => po.ProjectClosing += null).IgnoreArguments();
- projectOwner.Stub(po => po.ProjectOpened -= null).IgnoreArguments();
- projectOwner.Stub(po => po.ProjectClosing -= null).IgnoreArguments();
mocks.ReplayAll();
- using (var commandHandler = new StorageCommandHandler(projectStorage, projectOwner, applicationSelection,
- mainWindowController, viewCommands))
+ var storageCommandHandler = new StorageCommandHandler(
+ projectStorage,
+ projectOwner,
+ mainWindowController);
+
+ // Call
+ bool result = true;
+ Action call = () => result = storageCommandHandler.SaveProject();
+
+ // Assert
+ var expectedMessages = new[]
{
- // Call
- bool result = true;
- Action call = () => result = commandHandler.SaveProject();
+ exceptionMessage,
+ "Het is niet gelukt om het Ringtoetsproject op te slaan."
+ };
+ TestHelper.AssertLogMessagesAreGenerated(call, expectedMessages, 2);
+ Assert.IsFalse(result);
- // Assert
- var expectedMessages = new[]
- {
- exceptionMessage,
- "Het is niet gelukt om het Ringtoetsproject op te slaan."
- };
- TestHelper.AssertLogMessagesAreGenerated(call, expectedMessages, 2);
- Assert.IsFalse(result);
- }
mocks.VerifyAll();
}
@@ -219,31 +195,27 @@
var projectStorage = mocks.Stub();
projectStorage.Expect(ps => ps.SaveProject(someValidFilePath, project))
.Return(42);
- var applicationSelection = mocks.StrictMock();
- var mainWindowController = mocks.StrictMock();
- var viewCommands = mocks.StrictMock();
+ var mainWindowController = mocks.StrictMock();
var projectOwner = mocks.Stub();
projectOwner.Project = project;
projectOwner.ProjectFilePath = someValidFilePath;
- projectOwner.Stub(po => po.ProjectOpened += null).IgnoreArguments();
- projectOwner.Stub(po => po.ProjectClosing += null).IgnoreArguments();
- projectOwner.Stub(po => po.ProjectOpened -= null).IgnoreArguments();
- projectOwner.Stub(po => po.ProjectClosing -= null).IgnoreArguments();
mocks.ReplayAll();
- using (var commandHandler = new StorageCommandHandler(projectStorage, projectOwner, applicationSelection,
- mainWindowController, viewCommands))
- {
- // Call
- bool result = false;
- Action call = () => result = commandHandler.SaveProject();
+ var storageCommandHandler = new StorageCommandHandler(
+ projectStorage,
+ projectOwner,
+ mainWindowController);
- // Assert
- var expectedMessage = string.Format("Het Ringtoetsproject '{0}' is succesvol opgeslagen.",
- project.Name);
- TestHelper.AssertLogMessageIsGenerated(call, expectedMessage, 1);
- Assert.IsTrue(result);
- }
+ // Call
+ bool result = false;
+ Action call = () => result = storageCommandHandler.SaveProject();
+
+ // Assert
+ var expectedMessage = string.Format("Het Ringtoetsproject '{0}' is succesvol opgeslagen.",
+ project.Name);
+ TestHelper.AssertLogMessageIsGenerated(call, expectedMessage, 1);
+ Assert.IsTrue(result);
+
mocks.VerifyAll();
}
@@ -257,29 +229,29 @@
var projectStorage = mocks.Stub();
projectStorage.Stub(ps => ps.LoadProject(pathToSomeInvalidFile))
.Throw(new StorageException(goodErrorMessageText, new Exception("H@X!")));
- var applicationSelection = mocks.Stub();
- var mainWindowController = mocks.Stub();
- var viewCommands = mocks.Stub();
+ var mainWindowController = mocks.Stub();
var projectOwner = mocks.Stub();
mocks.ReplayAll();
- using (var commandHandler = new StorageCommandHandler(projectStorage, projectOwner, applicationSelection,
- mainWindowController, viewCommands))
+ var storageCommandHandler = new StorageCommandHandler(
+ projectStorage,
+ projectOwner,
+ mainWindowController);
+
+ // Call
+ bool result = true;
+ Action call = () => result = storageCommandHandler.OpenExistingProject(pathToSomeInvalidFile);
+
+ // Assert
+ var expectedMessages = new[]
{
- // Call
- bool result = true;
- Action call = () => result = commandHandler.OpenExistingProject(pathToSomeInvalidFile);
+ "Openen van bestaand Ringtoetsproject.",
+ goodErrorMessageText,
+ "Het is niet gelukt om het Ringtoetsproject te laden."
+ };
+ TestHelper.AssertLogMessagesAreGenerated(call, expectedMessages, 3);
+ Assert.IsFalse(result);
- // Assert
- var expectedMessages = new[]
- {
- "Openen van bestaand Ringtoetsproject.",
- goodErrorMessageText,
- "Het is niet gelukt om het Ringtoetsproject te laden."
- };
- TestHelper.AssertLogMessagesAreGenerated(call, expectedMessages, 3);
- Assert.IsFalse(result);
- }
mocks.VerifyAll();
}
@@ -292,28 +264,28 @@
var projectStorage = mocks.Stub();
projectStorage.Stub(ps => ps.LoadProject(pathToSomeInvalidFile))
.Return(null);
- var applicationSelection = mocks.Stub();
- var mainWindowController = mocks.Stub();
- var viewCommands = mocks.Stub();
+ var mainWindowController = mocks.Stub();
var projectOwner = mocks.Stub();
mocks.ReplayAll();
- using (var commandHandler = new StorageCommandHandler(projectStorage, projectOwner, applicationSelection,
- mainWindowController, viewCommands))
+ var storageCommandHandler = new StorageCommandHandler(
+ projectStorage,
+ projectOwner,
+ mainWindowController);
+
+ // Call
+ bool result = true;
+ Action call = () => result = storageCommandHandler.OpenExistingProject(pathToSomeInvalidFile);
+
+ // Assert
+ var expectedMessages = new[]
{
- // Call
- bool result = true;
- Action call = () => result = commandHandler.OpenExistingProject(pathToSomeInvalidFile);
+ "Openen van bestaand Ringtoetsproject.",
+ "Het is niet gelukt om het Ringtoetsproject te laden."
+ };
+ TestHelper.AssertLogMessagesAreGenerated(call, expectedMessages, 2);
+ Assert.IsFalse(result);
- // Assert
- var expectedMessages = new[]
- {
- "Openen van bestaand Ringtoetsproject.",
- "Het is niet gelukt om het Ringtoetsproject te laden."
- };
- TestHelper.AssertLogMessagesAreGenerated(call, expectedMessages, 2);
- Assert.IsFalse(result);
- }
mocks.VerifyAll();
}
@@ -326,43 +298,33 @@
fileName);
var loadedProject = new Project();
- var observer = mocks.Stub();
- observer.Expect(o => o.UpdateObserver());
-
var projectStorage = mocks.Stub();
projectStorage.Stub(ps => ps.LoadProject(pathToSomeInvalidFile))
.Return(loadedProject);
- var applicationSelection = mocks.StrictMock();
- var mainWindowController = mocks.Stub();
- mainWindowController.Expect(c => c.RefreshGui());
+ var mainWindowController = mocks.Stub();
- var viewCommands = mocks.StrictMock();
var projectOwner = mocks.Stub();
- projectOwner.Stub(po => po.ProjectOpened += null).IgnoreArguments();
- projectOwner.Stub(po => po.ProjectClosing += null).IgnoreArguments();
- projectOwner.Stub(po => po.ProjectOpened -= null).IgnoreArguments();
- projectOwner.Stub(po => po.ProjectClosing -= null).IgnoreArguments();
mocks.ReplayAll();
- loadedProject.Attach(observer);
+ var storageCommandHandler = new StorageCommandHandler(
+ projectStorage,
+ projectOwner,
+ mainWindowController);
- using (var commandHandler = new StorageCommandHandler(projectStorage, projectOwner, applicationSelection,
- mainWindowController, viewCommands))
+ // Call
+ bool result = false;
+ Action call = () => result = storageCommandHandler.OpenExistingProject(pathToSomeInvalidFile);
+
+ // Assert
+ var expectedMessages = new[]
{
- // Call
- bool result = false;
- Action call = () => result = commandHandler.OpenExistingProject(pathToSomeInvalidFile);
+ "Openen van bestaand Ringtoetsproject.",
+ "Bestaand Ringtoetsproject succesvol geopend."
+ };
+ TestHelper.AssertLogMessagesAreGenerated(call, expectedMessages, 2);
+ Assert.IsTrue(result);
- // Assert
- var expectedMessages = new[]
- {
- "Openen van bestaand Ringtoetsproject.",
- "Bestaand Ringtoetsproject succesvol geopend."
- };
- TestHelper.AssertLogMessagesAreGenerated(call, expectedMessages, 2);
- Assert.IsTrue(result);
- }
Assert.IsInstanceOf(projectOwner.Project);
Assert.AreEqual(pathToSomeInvalidFile, projectOwner.ProjectFilePath);
Assert.AreEqual(fileName, projectOwner.Project.Name);
@@ -375,53 +337,42 @@
// Setup
const string fileName = "newProject";
string pathToSomeValidFile = string.Format("C://folder/directory/{0}.rtd",
- fileName);
+ fileName);
var loadedProject = new Project();
var originalProject = new Project("Original");
- var observer = mocks.Stub();
- observer.Expect(o => o.UpdateObserver());
-
var projectStorage = mocks.Stub();
projectStorage.Stub(ps => ps.LoadProject(pathToSomeValidFile))
.Return(loadedProject);
projectStorage.Stub(ps => ps.CloseProject());
var applicationSelection = mocks.Stub();
applicationSelection.Selection = originalProject;
- var mainWindowController = mocks.Stub();
- mainWindowController.Expect(c => c.RefreshGui()).Repeat.Twice();
+ var mainWindowController = mocks.Stub();
- var viewCommands = mocks.StrictMock();
- viewCommands.Expect(vc => vc.RemoveAllViewsForItem(originalProject));
-
var projectOwner = mocks.Stub();
projectOwner.Project = originalProject;
projectOwner.ProjectFilePath = "";
- projectOwner.Stub(po => po.ProjectOpened += null).IgnoreArguments();
- projectOwner.Stub(po => po.ProjectClosing += null).IgnoreArguments();
- projectOwner.Stub(po => po.ProjectOpened -= null).IgnoreArguments();
- projectOwner.Stub(po => po.ProjectClosing -= null).IgnoreArguments();
mocks.ReplayAll();
- loadedProject.Attach(observer);
+ var storageCommandHandler = new StorageCommandHandler(
+ projectStorage,
+ projectOwner,
+ mainWindowController);
- using (var commandHandler = new StorageCommandHandler(projectStorage, projectOwner, applicationSelection,
- mainWindowController, viewCommands))
+ // Call
+ bool result = false;
+ Action call = () => result = storageCommandHandler.OpenExistingProject(pathToSomeValidFile);
+
+ // Assert
+ var expectedMessages = new[]
{
- // Call
- bool result = false;
- Action call = () => result = commandHandler.OpenExistingProject(pathToSomeValidFile);
+ "Openen van bestaand Ringtoetsproject.",
+ "Bestaand Ringtoetsproject succesvol geopend."
+ };
+ TestHelper.AssertLogMessagesAreGenerated(call, expectedMessages, 2);
+ Assert.IsTrue(result);
- // Assert
- var expectedMessages = new[]
- {
- "Openen van bestaand Ringtoetsproject.",
- "Bestaand Ringtoetsproject succesvol geopend."
- };
- TestHelper.AssertLogMessagesAreGenerated(call, expectedMessages, 2);
- Assert.IsTrue(result);
- }
Assert.IsInstanceOf(projectOwner.Project);
Assert.AreEqual(pathToSomeValidFile, projectOwner.ProjectFilePath);
Assert.AreEqual(fileName, projectOwner.Project.Name);
@@ -433,46 +384,46 @@
{
// Setup
var projectStorage = mocks.Stub();
- var applicationSelection = mocks.Stub();
- var mainWindowController = mocks.Stub();
- var viewCommands = mocks.StrictMock();
+ var mainWindowController = mocks.Stub();
var projectOwner = mocks.Stub();
mocks.ReplayAll();
- using (var commandHandler = new StorageCommandHandler(projectStorage, projectOwner, applicationSelection,
- mainWindowController, viewCommands))
- {
- // Call
- bool result = commandHandler.ContinueIfHasChanges();
+ var storageCommandHandler = new StorageCommandHandler(
+ projectStorage,
+ projectOwner,
+ mainWindowController);
- // Assert
- Assert.IsTrue(result);
- }
+ // Call
+ bool result = storageCommandHandler.ContinueIfHasChanges();
+
+ // Assert
+ Assert.IsTrue(result);
+
mocks.VerifyAll();
}
[Test]
public void ContinueIfHasChanges_ProjectSetNoChange_ReturnsTrue()
{
// Setup
- var viewCommandsMock = mocks.StrictMock();
- var applicationSelection = mocks.Stub();
- var mainWindowController = mocks.Stub();
+ var mainWindowController = mocks.Stub();
var projectMock = mocks.StrictMock();
var projectStorageMock = mocks.Stub();
var projectOwnerMock = mocks.Stub();
projectOwnerMock.Project = projectMock;
mocks.ReplayAll();
- using (var storageCommandHandler = new StorageCommandHandler(projectStorageMock, projectOwnerMock, applicationSelection,
- mainWindowController, viewCommandsMock))
- {
- // Call
- bool actionMaycontinue = storageCommandHandler.ContinueIfHasChanges();
+ var storageCommandHandler = new StorageCommandHandler(
+ projectStorageMock,
+ projectOwnerMock,
+ mainWindowController);
- // Assert
- Assert.IsTrue(actionMaycontinue);
- }
+ // Call
+ bool actionMaycontinue = storageCommandHandler.ContinueIfHasChanges();
+
+ // Assert
+ Assert.IsTrue(actionMaycontinue);
+
mocks.VerifyAll();
}
@@ -481,9 +432,7 @@
public void ContinueIfHasChanges_ProjectSetWithChangeCancelPressed_ReturnsFalse()
{
// Setup
- var viewCommandsMock = mocks.StrictMock();
- var applicationSelection = mocks.Stub();
- var mainWindowController = mocks.Stub();
+ var mainWindowController = mocks.Stub();
var projectMock = mocks.StrictMock();
projectMock.StorageId = 1234L;
var projectStorageMock = mocks.Stub();
@@ -496,22 +445,24 @@
string messageBoxText = null;
string expectedMessage = "Sla wijzigingen in het project op: Project?";
- using (var storageCommandHandler = new StorageCommandHandler(projectStorageMock, projectOwnerMock, applicationSelection,
- mainWindowController, viewCommandsMock))
+ var storageCommandHandler = new StorageCommandHandler(
+ projectStorageMock,
+ projectOwnerMock,
+ mainWindowController);
+
+ DialogBoxHandler = (name, wnd) =>
{
- DialogBoxHandler = (name, wnd) =>
- {
- var helper = new MessageBoxTester(wnd);
- messageBoxText = helper.Text;
- helper.ClickCancel();
- };
+ var helper = new MessageBoxTester(wnd);
+ messageBoxText = helper.Text;
+ helper.ClickCancel();
+ };
- // Call
- bool actionMaycontinue = storageCommandHandler.ContinueIfHasChanges();
+ // Call
+ bool actionMaycontinue = storageCommandHandler.ContinueIfHasChanges();
- // Assert
- Assert.IsFalse(actionMaycontinue);
- }
+ // Assert
+ Assert.IsFalse(actionMaycontinue);
+
mocks.VerifyAll();
Assert.AreEqual(expectedMessage, messageBoxText);
}
@@ -521,9 +472,7 @@
public void ContinueIfHasChanges_ProjectSetWithChangeNoPressed_ReturnsTrue()
{
// Setup
- var viewCommandsMock = mocks.StrictMock();
- var applicationSelection = mocks.Stub();
- var mainWindowController = mocks.Stub();
+ var mainWindowController = mocks.Stub();
var projectMock = mocks.StrictMock();
projectMock.StorageId = 1234L;
var projectStorageMock = mocks.Stub();
@@ -536,22 +485,24 @@
string messageBoxText = null;
string expectedMessage = "Sla wijzigingen in het project op: Project?";
- using (var storageCommandHandler = new StorageCommandHandler(projectStorageMock, projectOwnerMock, applicationSelection,
- mainWindowController, viewCommandsMock))
+ var storageCommandHandler = new StorageCommandHandler(
+ projectStorageMock,
+ projectOwnerMock,
+ mainWindowController);
+
+ DialogBoxHandler = (name, wnd) =>
{
- DialogBoxHandler = (name, wnd) =>
- {
- var helper = new MessageBoxTester(wnd);
- messageBoxText = helper.Text;
- helper.SendCommand(MessageBoxTester.Command.No);
- };
+ var helper = new MessageBoxTester(wnd);
+ messageBoxText = helper.Text;
+ helper.SendCommand(MessageBoxTester.Command.No);
+ };
- // Call
- bool actionMaycontinue = storageCommandHandler.ContinueIfHasChanges();
+ // Call
+ bool actionMaycontinue = storageCommandHandler.ContinueIfHasChanges();
- // Assert
- Assert.IsTrue(actionMaycontinue);
- }
+ // Assert
+ Assert.IsTrue(actionMaycontinue);
+
mocks.VerifyAll();
Assert.AreEqual(expectedMessage, messageBoxText);
}
@@ -561,9 +512,7 @@
public void ContinueIfHasChanges_ProjectSetWithChangeYesPressed_ReturnsTrue()
{
// Setup
- var viewCommandsMock = mocks.StrictMock();
- var applicationSelection = mocks.Stub();
- var mainWindowController = mocks.Stub();
+ var mainWindowController = mocks.Stub();
var projectMock = mocks.StrictMock();
projectMock.StorageId = 1234L;
var projectFilePath = "some path";
@@ -581,22 +530,24 @@
string messageBoxText = null;
string expectedMessage = "Sla wijzigingen in het project op: Project?";
- using (var storageCommandHandler = new StorageCommandHandler(projectStorageMock, projectOwnerMock, applicationSelection,
- mainWindowController, viewCommandsMock))
+ var storageCommandHandler = new StorageCommandHandler(
+ projectStorageMock,
+ projectOwnerMock,
+ mainWindowController);
+
+ DialogBoxHandler = (name, wnd) =>
{
- DialogBoxHandler = (name, wnd) =>
- {
- var helper = new MessageBoxTester(wnd);
- messageBoxText = helper.Text;
- helper.SendCommand(MessageBoxTester.Command.Yes);
- };
+ var helper = new MessageBoxTester(wnd);
+ messageBoxText = helper.Text;
+ helper.SendCommand(MessageBoxTester.Command.Yes);
+ };
- // Call
- bool actionMaycontinue = storageCommandHandler.ContinueIfHasChanges();
+ // Call
+ bool actionMaycontinue = storageCommandHandler.ContinueIfHasChanges();
- // Assert
- Assert.IsTrue(actionMaycontinue);
- }
+ // Assert
+ Assert.IsTrue(actionMaycontinue);
+
mocks.VerifyAll();
Assert.AreEqual(expectedMessage, messageBoxText);
}
@@ -606,9 +557,7 @@
public void CreateNewProject_ProjectSetWithChangeCancelPressed_CancelAndLog()
{
// Setup
- var viewCommandsMock = mocks.StrictMock();
- var applicationSelection = mocks.Stub();
- var mainWindowController = mocks.Stub();
+ var mainWindowController = mocks.Stub();
var projectMock = mocks.StrictMock();
projectMock.StorageId = 1234L;
var projectStorageMock = mocks.Stub();
@@ -621,22 +570,24 @@
string messageBoxText = null;
string expectedMessage = "Sla wijzigingen in het project op: Project?";
- using (var storageCommandHandler = new StorageCommandHandler(projectStorageMock, projectOwnerMock, applicationSelection,
- mainWindowController, viewCommandsMock))
+ var storageCommandHandler = new StorageCommandHandler(
+ projectStorageMock,
+ projectOwnerMock,
+ mainWindowController);
+
+ DialogBoxHandler = (name, wnd) =>
{
- DialogBoxHandler = (name, wnd) =>
- {
- var helper = new MessageBoxTester(wnd);
- messageBoxText = helper.Text;
- helper.SendCommand(MessageBoxTester.Command.Cancel);
- };
+ var helper = new MessageBoxTester(wnd);
+ messageBoxText = helper.Text;
+ helper.SendCommand(MessageBoxTester.Command.Cancel);
+ };
- // Call
- Action call = () => storageCommandHandler.CreateNewProject();
+ // Call
+ Action call = () => storageCommandHandler.CreateNewProject();
- // Assert
- TestHelper.AssertLogMessageIsGenerated(call, Resources.StorageCommandHandler_NewProject_Creating_new_project_cancelled, 1);
- }
+ // Assert
+ TestHelper.AssertLogMessageIsGenerated(call, Resources.StorageCommandHandler_NewProject_Creating_new_project_cancelled, 1);
+
mocks.VerifyAll();
Assert.AreEqual(expectedMessage, messageBoxText);
}
Index: Core/Common/test/Core.Common.Gui.Test/GuiCoreTest.cs
===================================================================
diff -u -ra1ec5faebf7ccf8e67fa34a2b73cd1063ab48840 -rb78b6d08e4be8dfe938718d5e65085aa8bd72dcc
--- Core/Common/test/Core.Common.Gui.Test/GuiCoreTest.cs (.../GuiCoreTest.cs) (revision a1ec5faebf7ccf8e67fa34a2b73cd1063ab48840)
+++ Core/Common/test/Core.Common.Gui.Test/GuiCoreTest.cs (.../GuiCoreTest.cs) (revision b78b6d08e4be8dfe938718d5e65085aa8bd72dcc)
@@ -88,7 +88,6 @@
{
// Assert
Assert.AreEqual(null, gui.PropertyResolver);
- Assert.AreSame(projectStore, gui.Storage);
Assert.AreEqual(null, gui.ProjectFilePath);
Assert.AreEqual(null, gui.Project);
@@ -521,7 +520,6 @@
Assert.AreEqual(fileName, gui.Project.Name,
"Project name should be updated to the name of the file.");
- Assert.AreSame(gui.Selection, gui.Project);
var expectedTitle = string.Format("{0} - {1} {2}",
fileName, fixedSettings.MainWindowTitle, SettingsHelper.ApplicationVersion);
Assert.AreEqual(expectedTitle, mainWindow.Title);
@@ -574,7 +572,6 @@
CollectionAssert.IsEmpty(gui.Project.Items);
Assert.AreEqual(0, gui.Project.StorageId);
- Assert.AreSame(gui.Selection, gui.Project);
var expectedTitle = string.Format("{0} - {1} {2}",
expectedProjectName, fixedSettings.MainWindowTitle, SettingsHelper.ApplicationVersion);
Assert.AreEqual(expectedTitle, mainWindow.Title);
@@ -617,7 +614,6 @@
CollectionAssert.IsEmpty(gui.Project.Items);
Assert.AreEqual(0, gui.Project.StorageId);
- Assert.AreSame(gui.Selection, gui.Project);
var expectedTitle = string.Format("{0} - {1} {2}",
expectedProjectName, fixedSettings.MainWindowTitle, SettingsHelper.ApplicationVersion);
Assert.AreEqual(expectedTitle, mainWindow.Title);
@@ -993,7 +989,7 @@
[Test]
[STAThread]
- public void Project_SetNewValue_FireProjectClosingAndOpenedEvents()
+ public void Project_SetNewValue_FireProjectOpenedEvents()
{
// Setup
var mocks = new MockRepository();
@@ -1007,20 +1003,6 @@
gui.Project = oldProject;
- int closingCallCount = 0;
- gui.ProjectClosing += project =>
- {
- if (closingCallCount == 0)
- {
- Assert.AreSame(oldProject, project);
- }
- else
- {
- // Dispose causes this one:
- Assert.AreSame(newProject, project);
- }
- closingCallCount++;
- };
int openedCallCount = 0;
gui.ProjectOpened += project =>
{
@@ -1032,7 +1014,6 @@
gui.Project = newProject;
// Assert
- Assert.AreEqual(1, closingCallCount);
Assert.AreEqual(1, openedCallCount);
}
mocks.VerifyAll();
Index: Core/Common/test/Core.Common.Integration.Test/Ringtoets/Application.Ringtoets/GuiCoreIntegrationTest.cs
===================================================================
diff -u -ra1ec5faebf7ccf8e67fa34a2b73cd1063ab48840 -rb78b6d08e4be8dfe938718d5e65085aa8bd72dcc
--- Core/Common/test/Core.Common.Integration.Test/Ringtoets/Application.Ringtoets/GuiCoreIntegrationTest.cs (.../GuiCoreIntegrationTest.cs) (revision a1ec5faebf7ccf8e67fa34a2b73cd1063ab48840)
+++ Core/Common/test/Core.Common.Integration.Test/Ringtoets/Application.Ringtoets/GuiCoreIntegrationTest.cs (.../GuiCoreIntegrationTest.cs) (revision b78b6d08e4be8dfe938718d5e65085aa8bd72dcc)
@@ -73,25 +73,6 @@
[Test]
[RequiresSTA]
- public void Run_GuiWithProjectExplorerPlugin_SelectionIsSetToProjectExplorer()
- {
- // initialize
- var mocks = new MockRepository();
- var projectStore = mocks.Stub();
- mocks.ReplayAll();
-
- using (var gui = new GuiCore(new MainWindow(), projectStore, new GuiCoreSettings()))
- {
- gui.Plugins.Add(new ProjectExplorerPlugin());
- gui.Run();
-
- Assert.AreEqual(gui.Project, gui.Selection);
- }
- mocks.VerifyAll();
- }
-
- [Test]
- [RequiresSTA]
public void FormActionIsRunForMainWindow()
{
//testing testhelper + visible changed event of mainwindow.
Index: Core/Plugins/src/Core.Plugins.ProjectExplorer/ProjectExplorer.Designer.cs
===================================================================
diff -u -r223b2a4edc4ac816051c7eeecb735c34a6246574 -rb78b6d08e4be8dfe938718d5e65085aa8bd72dcc
--- Core/Plugins/src/Core.Plugins.ProjectExplorer/ProjectExplorer.Designer.cs (.../ProjectExplorer.Designer.cs) (revision 223b2a4edc4ac816051c7eeecb735c34a6246574)
+++ Core/Plugins/src/Core.Plugins.ProjectExplorer/ProjectExplorer.Designer.cs (.../ProjectExplorer.Designer.cs) (revision b78b6d08e4be8dfe938718d5e65085aa8bd72dcc)
@@ -7,19 +7,6 @@
///
private System.ComponentModel.IContainer components = null;
- ///
- /// Clean up any resources being used.
- ///
- /// true if managed resources should be disposed; otherwise, false.
- protected override void Dispose(bool disposing)
- {
- if (disposing && (components != null))
- {
- components.Dispose();
- }
- base.Dispose(disposing);
- }
-
#region Component Designer generated code
///
Index: Core/Plugins/src/Core.Plugins.ProjectExplorer/ProjectExplorer.cs
===================================================================
diff -u -r223b2a4edc4ac816051c7eeecb735c34a6246574 -rb78b6d08e4be8dfe938718d5e65085aa8bd72dcc
--- Core/Plugins/src/Core.Plugins.ProjectExplorer/ProjectExplorer.cs (.../ProjectExplorer.cs) (revision 223b2a4edc4ac816051c7eeecb735c34a6246574)
+++ Core/Plugins/src/Core.Plugins.ProjectExplorer/ProjectExplorer.cs (.../ProjectExplorer.cs) (revision b78b6d08e4be8dfe938718d5e65085aa8bd72dcc)
@@ -128,5 +128,20 @@
{
viewCommands.RemoveAllViewsForItem(e.Value);
}
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ applicationSelection.Selection = null;
+ }
+
+ base.Dispose(disposing);
+ }
}
}
\ No newline at end of file
Index: Core/Plugins/src/Core.Plugins.ProjectExplorer/ProjectExplorerPlugin.cs
===================================================================
diff -u -ra1ec5faebf7ccf8e67fa34a2b73cd1063ab48840 -rb78b6d08e4be8dfe938718d5e65085aa8bd72dcc
--- Core/Plugins/src/Core.Plugins.ProjectExplorer/ProjectExplorerPlugin.cs (.../ProjectExplorerPlugin.cs) (revision a1ec5faebf7ccf8e67fa34a2b73cd1063ab48840)
+++ Core/Plugins/src/Core.Plugins.ProjectExplorer/ProjectExplorerPlugin.cs (.../ProjectExplorerPlugin.cs) (revision b78b6d08e4be8dfe938718d5e65085aa8bd72dcc)
@@ -170,10 +170,12 @@
public override void Deactivate()
{
+ base.Deactivate();
+
if (active)
{
- base.Deactivate();
projectOwner.ProjectOpened -= ApplicationProjectOpened;
+ projectExplorerViewController.Dispose();
active = false;
}
}
Index: Core/Plugins/src/Core.Plugins.ProjectExplorer/ProjectExplorerViewController.cs
===================================================================
diff -u -r223b2a4edc4ac816051c7eeecb735c34a6246574 -rb78b6d08e4be8dfe938718d5e65085aa8bd72dcc
--- Core/Plugins/src/Core.Plugins.ProjectExplorer/ProjectExplorerViewController.cs (.../ProjectExplorerViewController.cs) (revision 223b2a4edc4ac816051c7eeecb735c34a6246574)
+++ Core/Plugins/src/Core.Plugins.ProjectExplorer/ProjectExplorerViewController.cs (.../ProjectExplorerViewController.cs) (revision b78b6d08e4be8dfe938718d5e65085aa8bd72dcc)
@@ -35,7 +35,7 @@
///
/// This class is responsible for showing and hiding a .
///
- public class ProjectExplorerViewController
+ public class ProjectExplorerViewController : IDisposable
{
private readonly IViewController viewController;
private readonly IEnumerable treeNodeInfos;
@@ -97,7 +97,7 @@
{
get
{
- return projectExplorer != null && viewController.ViewHost.ToolViews.Contains(projectExplorer);
+ return viewController.ViewHost.ToolViews.Contains(projectExplorer);
}
}
@@ -144,7 +144,14 @@
private void CloseProjectExplorer()
{
viewController.ViewHost.Remove(projectExplorer);
- projectExplorer = null;
}
+
+ public void Dispose()
+ {
+ if (projectExplorer != null)
+ {
+ projectExplorer.Dispose();
+ }
+ }
}
}
\ No newline at end of file
Index: Core/Plugins/test/Core.Plugins.ProjectExplorer.Test/Commands/ToggleProjectExplorerCommandTest.cs
===================================================================
diff -u -r223b2a4edc4ac816051c7eeecb735c34a6246574 -rb78b6d08e4be8dfe938718d5e65085aa8bd72dcc
--- Core/Plugins/test/Core.Plugins.ProjectExplorer.Test/Commands/ToggleProjectExplorerCommandTest.cs (.../ToggleProjectExplorerCommandTest.cs) (revision 223b2a4edc4ac816051c7eeecb735c34a6246574)
+++ Core/Plugins/test/Core.Plugins.ProjectExplorer.Test/Commands/ToggleProjectExplorerCommandTest.cs (.../ToggleProjectExplorerCommandTest.cs) (revision b78b6d08e4be8dfe938718d5e65085aa8bd72dcc)
@@ -58,18 +58,24 @@
var applicationSelection = mocks.StrictMock();
var viewController = mocks.StrictMock();
+ var viewHost = mocks.StrictMock();
+
+ viewController.Stub(tvc => tvc.ViewHost).Return(viewHost);
+ viewHost.Stub(vm => vm.ToolViews).Return(new List());
+
mocks.ReplayAll();
var treeNodeInfos = Enumerable.Empty();
- var explorerViewController = new ProjectExplorerViewController(viewCommands, applicationSelection, viewController, treeNodeInfos);
+ using (var explorerViewController = new ProjectExplorerViewController(viewCommands, applicationSelection, viewController, treeNodeInfos))
+ {
+ // Call
+ var command = new ToggleProjectExplorerCommand(explorerViewController);
- // Call
- var command = new ToggleProjectExplorerCommand(explorerViewController);
-
- // Assert
- Assert.IsInstanceOf(command);
- Assert.IsTrue(command.Enabled);
+ // Assert
+ Assert.IsInstanceOf(command);
+ Assert.IsTrue(command.Enabled);
+ }
mocks.VerifyAll();
}
@@ -82,16 +88,16 @@
var mocks = new MockRepository();
var viewCommands = mocks.StrictMock();
- var applicationSelection = mocks.StrictMock();
+ var applicationSelection = mocks.Stub();
var viewController = mocks.StrictMock();
var viewHost = mocks.StrictMock();
+ var toolViewList = new List();
+ viewController.Stub(tvc => tvc.ViewHost).Return(viewHost);
+ viewHost.Stub(vm => vm.ToolViews).Return(toolViewList);
+
if (isViewOpen)
{
- var toolViewList = new List();
-
- viewController.Stub(tvc => tvc.ViewHost).Return(viewHost);
- viewHost.Stub(vm => vm.ToolViews).Return(toolViewList);
viewHost.Expect(vm => vm.AddToolView(Arg.Matches(c => true), Arg.Matches(vl => vl == ToolViewLocation.Left))).WhenCalled(invocation =>
{
toolViewList.Add(invocation.Arguments[0] as ProjectExplorer);
@@ -103,20 +109,21 @@
var treeNodeInfos = Enumerable.Empty();
- var explorerViewController = new ProjectExplorerViewController(viewCommands, applicationSelection, viewController, treeNodeInfos);
-
- var command = new ToggleProjectExplorerCommand(explorerViewController);
-
- if (isViewOpen)
+ using (var explorerViewController = new ProjectExplorerViewController(viewCommands, applicationSelection, viewController, treeNodeInfos))
{
- explorerViewController.ToggleView();
- }
+ var command = new ToggleProjectExplorerCommand(explorerViewController);
- // Call
- var result = command.Checked;
+ if (isViewOpen)
+ {
+ explorerViewController.ToggleView();
+ }
- // Assert
- Assert.AreEqual(isViewOpen, result);
+ // Call
+ var result = command.Checked;
+
+ // Assert
+ Assert.AreEqual(isViewOpen, result);
+ }
mocks.VerifyAll();
}
@@ -128,7 +135,7 @@
// Setup
var mocks = new MockRepository();
var viewCommands = mocks.StrictMock();
- var applicationSelection = mocks.StrictMock();
+ var applicationSelection = mocks.Stub();
var viewHost = mocks.StrictMock();
var viewController = mocks.StrictMock();
@@ -152,17 +159,18 @@
var treeNodeInfos = Enumerable.Empty();
- var explorerViewController = new ProjectExplorerViewController(viewCommands, applicationSelection, viewController, treeNodeInfos);
- if (isViewOpen)
+ using (var explorerViewController = new ProjectExplorerViewController(viewCommands, applicationSelection, viewController, treeNodeInfos))
{
- explorerViewController.ToggleView();
- }
+ if (isViewOpen)
+ {
+ explorerViewController.ToggleView();
+ }
- var command = new ToggleProjectExplorerCommand(explorerViewController);
+ var command = new ToggleProjectExplorerCommand(explorerViewController);
- // Call
- command.Execute();
-
+ // Call
+ command.Execute();
+ }
// Assert
mocks.VerifyAll();
}
Index: Core/Plugins/test/Core.Plugins.ProjectExplorer.Test/ProjectExplorerTest.cs
===================================================================
diff -u -r223b2a4edc4ac816051c7eeecb735c34a6246574 -rb78b6d08e4be8dfe938718d5e65085aa8bd72dcc
--- Core/Plugins/test/Core.Plugins.ProjectExplorer.Test/ProjectExplorerTest.cs (.../ProjectExplorerTest.cs) (revision 223b2a4edc4ac816051c7eeecb735c34a6246574)
+++ Core/Plugins/test/Core.Plugins.ProjectExplorer.Test/ProjectExplorerTest.cs (.../ProjectExplorerTest.cs) (revision b78b6d08e4be8dfe938718d5e65085aa8bd72dcc)
@@ -66,7 +66,7 @@
{
// Setup
var mocks = new MockRepository();
- IApplicationSelection applicationSelection = mocks.StrictMock();
+ IApplicationSelection applicationSelection = mocks.Stub();
IViewCommands viewCommands = mocks.StrictMock();
IEnumerable treeNodeInfos = Enumerable.Empty();
@@ -85,12 +85,33 @@
}
[Test]
- public void Data_Always_SetTreeViewControlData()
+ public void Dispose_Always_SetsApplicationSelectionToNull()
{
// Setup
var mocks = new MockRepository();
IApplicationSelection applicationSelection = mocks.StrictMock();
+ applicationSelection.Expect(aps => aps.Selection = null);
+
IViewCommands viewCommands = mocks.StrictMock();
+ IEnumerable treeNodeInfos = Enumerable.Empty();
+
+ mocks.ReplayAll();
+ var explorer = new ProjectExplorer(applicationSelection, viewCommands, treeNodeInfos);
+
+ // Call
+ explorer.Dispose();
+
+ // Assert
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void Data_Always_SetTreeViewControlData()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ IApplicationSelection applicationSelection = mocks.Stub();
+ IViewCommands viewCommands = mocks.StrictMock();
IEnumerable treeNodeInfos = new[]
{
new TreeNodeInfo
@@ -119,7 +140,7 @@
{
// Setup
var mocks = new MockRepository();
- IApplicationSelection applicationSelection = mocks.StrictMock();
+ IApplicationSelection applicationSelection = mocks.Stub();
IViewCommands viewCommands = mocks.StrictMock();
IEnumerable treeNodeInfos = new[]
{
@@ -180,14 +201,15 @@
},
new TreeNodeInfo
{
- TagType = typeof(String)
+ TagType = typeof(string)
}
};
using (mocks.Ordered())
{
applicationSelection.Expect(a => a.Selection = project);
applicationSelection.Expect(a => a.Selection = stringA);
+ applicationSelection.Expect(a => a.Selection = null);
}
mocks.ReplayAll();
@@ -220,7 +242,7 @@
var treeIdentifier = "SomeName";
var formIdentifier = "SomeForm";
var mocks = new MockRepository();
- IApplicationSelection applicationSelection = mocks.StrictMock();
+ IApplicationSelection applicationSelection = mocks.Stub();
IViewCommands viewCommands = mocks.StrictMock();
var project = new Project();
@@ -235,7 +257,6 @@
using (mocks.Ordered())
{
- applicationSelection.Expect(a => a.Selection = project);
viewCommands.Expect(a => a.OpenViewForSelection());
}
Index: Core/Plugins/test/Core.Plugins.ProjectExplorer.Test/ProjectExplorerViewControllerTest.cs
===================================================================
diff -u -r223b2a4edc4ac816051c7eeecb735c34a6246574 -rb78b6d08e4be8dfe938718d5e65085aa8bd72dcc
--- Core/Plugins/test/Core.Plugins.ProjectExplorer.Test/ProjectExplorerViewControllerTest.cs (.../ProjectExplorerViewControllerTest.cs) (revision 223b2a4edc4ac816051c7eeecb735c34a6246574)
+++ Core/Plugins/test/Core.Plugins.ProjectExplorer.Test/ProjectExplorerViewControllerTest.cs (.../ProjectExplorerViewControllerTest.cs) (revision b78b6d08e4be8dfe938718d5e65085aa8bd72dcc)
@@ -86,13 +86,12 @@
IEnumerable treeNodeInfos = Enumerable.Empty();
- var controller = new ProjectExplorerViewController(viewCommands, applicationSelection, viewController, treeNodeInfos);
-
- controller.ToggleView();
-
- // Call
- controller.ToggleView();
-
+ using (var controller = new ProjectExplorerViewController(viewCommands, applicationSelection, viewController, treeNodeInfos))
+ {
+ controller.ToggleView();
+ // Call
+ controller.ToggleView();
+ }
// Assert
mocks.VerifyAll();
}
@@ -108,40 +107,42 @@
IViewHost viewHost = mocks.Stub();
viewController.Stub(tvc => tvc.ViewHost).Return(viewHost);
+ viewHost.Stub(vm => vm.ToolViews).Return(new List());
viewHost.Stub(vm => vm.AddToolView(Arg.Is.TypeOf, Arg.Matches(vl => vl == ToolViewLocation.Left)));
viewHost.Expect(vm => vm.SetImage(null, null)).IgnoreArguments();
mocks.ReplayAll();
IEnumerable treeNodeInfos = Enumerable.Empty();
- var controller = new ProjectExplorerViewController(viewCommands, applicationSelection, viewController, treeNodeInfos);
-
- // Call
- controller.ToggleView();
-
+ using (var controller = new ProjectExplorerViewController(viewCommands, applicationSelection, viewController, treeNodeInfos))
+ {
+ // Call
+ controller.ToggleView();
+ }
// Assert
mocks.VerifyAll();
}
[Test]
[TestCase(true)]
[TestCase(false)]
- public void IsViewActive_Always_CallsIsToolWindowOpenWithProjectExplorer(bool isOpen)
+ public void IsProjectExplorerOpen_Always_CallsIsToolWindowOpenWithProjectExplorer(bool isOpen)
{
// Setup
var mocks = new MockRepository();
IViewCommands viewCommands = mocks.StrictMock();
- IApplicationSelection applicationSelection = mocks.StrictMock();
+ IApplicationSelection applicationSelection = mocks.Stub();
IViewController viewController = mocks.StrictMock();
+ var toolViewList = new List();
+ var viewHost = mocks.StrictMock();
+
+ viewController.Stub(tvc => tvc.ViewHost).Return(viewHost);
+ viewHost.Stub(vm => vm.ToolViews).Return(toolViewList);
+
if (isOpen)
{
- var toolViewList = new List();
- var viewHost = mocks.StrictMock();
-
- viewController.Stub(tvc => tvc.ViewHost).Return(viewHost);
- viewHost.Stub(vm => vm.ToolViews).Return(toolViewList);
viewHost.Expect(vm => vm.AddToolView(Arg.Matches(c => true), Arg.Matches(vl => vl == ToolViewLocation.Left))).WhenCalled(invocation =>
{
toolViewList.Add(invocation.Arguments[0] as ProjectExplorer);
@@ -153,18 +154,18 @@
IEnumerable treeNodeInfos = Enumerable.Empty();
- var controller = new ProjectExplorerViewController(viewCommands, applicationSelection, viewController, treeNodeInfos);
-
- if (isOpen)
+ using (var controller = new ProjectExplorerViewController(viewCommands, applicationSelection, viewController, treeNodeInfos))
{
- controller.ToggleView();
- }
+ if (isOpen)
+ {
+ controller.ToggleView();
+ }
- // Call
- var result = controller.IsProjectExplorerOpen;
-
- // Assert
- Assert.AreEqual(isOpen, result);
+ // Call
+ var result = controller.IsProjectExplorerOpen;
+ // Assert
+ Assert.AreEqual(isOpen, result);
+ }
mocks.VerifyAll();
}
@@ -201,15 +202,17 @@
var project = new Project();
- var controller = new ProjectExplorerViewController(viewCommands, applicationSelection, viewController, treeNodeInfos);
- controller.ToggleView();
+ using (var controller = new ProjectExplorerViewController(viewCommands, applicationSelection, viewController, treeNodeInfos))
+ {
+ controller.ToggleView();
- // Call
- controller.Update(project);
+ // Call
+ controller.Update(project);
- // Assert
- Assert.AreEqual(1, toolViewList.Count);
- Assert.AreSame(project, toolViewList[0].Data);
+ // Assert
+ Assert.AreEqual(1, toolViewList.Count);
+ Assert.AreSame(project, toolViewList[0].Data);
+ }
mocks.VerifyAll();
}
@@ -221,17 +224,23 @@
IViewCommands viewCommands = mocks.StrictMock();
IApplicationSelection applicationSelection = mocks.StrictMock();
IViewController viewController = mocks.Stub();
+
+ var viewHost = mocks.StrictMock();
+
+ viewController.Stub(tvc => tvc.ViewHost).Return(viewHost);
+ viewHost.Stub(vm => vm.ToolViews).Return(new List());
+
mocks.ReplayAll();
IEnumerable treeNodeInfos = Enumerable.Empty();
var project = new Project();
- var controller = new ProjectExplorerViewController(viewCommands, applicationSelection, viewController, treeNodeInfos);
-
- // Call
- controller.Update(project);
-
+ using (var controller = new ProjectExplorerViewController(viewCommands, applicationSelection, viewController, treeNodeInfos))
+ {
+ // Call
+ controller.Update(project);
+ }
// Assert
mocks.VerifyAll();
}