Index: Core/Common/test/Core.Common.Gui.Test/Forms/MainWindow/MainWindowTest.cs =================================================================== diff -u -r00f45b1bba92f5171087885039c8b8261860a1ba -re59a206ea06e40bbc9959cd98fc1a10ae7cdcf8c --- Core/Common/test/Core.Common.Gui.Test/Forms/MainWindow/MainWindowTest.cs (.../MainWindowTest.cs) (revision 00f45b1bba92f5171087885039c8b8261860a1ba) +++ Core/Common/test/Core.Common.Gui.Test/Forms/MainWindow/MainWindowTest.cs (.../MainWindowTest.cs) (revision e59a206ea06e40bbc9959cd98fc1a10ae7cdcf8c) @@ -23,6 +23,8 @@ using System.ComponentModel; using System.Linq; using System.Windows; +using Core.Common.Base.Data; +using Core.Common.Base.Storage; using Core.Common.Controls.Views; using Core.Common.Gui.Forms.MainWindow; using Core.Common.Gui.Forms.MessageWindow; @@ -411,5 +413,65 @@ } mocks.VerifyAll(); } + + [Test] + [STAThread] + public void GivenGuiWithPropertyGrid_ClosingPropertyGrid_PropertyGridPropertySetToNull() + { + // Setup + var mocks = new MockRepository(); + var projectStore = mocks.Stub(); + var projectFactory = mocks.Stub(); + mocks.ReplayAll(); + + using (var mainWindow = new Gui.Forms.MainWindow.MainWindow()) + using (var gui = new GuiCore(mainWindow, projectStore, projectFactory, new GuiCoreSettings())) + { + gui.Run(); + + mainWindow.SetGui(gui); + mainWindow.InitializeToolWindows(); + + // Precondition + Assert.IsNotNull(mainWindow.PropertyGrid); + + // Call + mainWindow.ViewHost.Remove(mainWindow.PropertyGrid); + + // Assert + Assert.IsNull(mainWindow.PropertyGrid); + } + mocks.VerifyAll(); + } + + [Test] + [STAThread] + public void GivenGuiWithMessageWindow_ClosingMessageWindow_MessageWindowPropertySetToNull() + { + // Setup + var mocks = new MockRepository(); + var projectStore = mocks.Stub(); + var projectFactory = mocks.Stub(); + mocks.ReplayAll(); + + using (var mainWindow = new Gui.Forms.MainWindow.MainWindow()) + using (var gui = new GuiCore(mainWindow, projectStore, projectFactory, new GuiCoreSettings())) + { + gui.Run(); + + mainWindow.SetGui(gui); + mainWindow.InitializeToolWindows(); + + // Precondition + Assert.IsNotNull(mainWindow.MessageWindow); + + // Call + mainWindow.ViewHost.Remove(mainWindow.MessageWindow); + + // Assert + Assert.IsNull(mainWindow.MessageWindow); + } + mocks.VerifyAll(); + } } } \ No newline at end of file