Index: Core/Gui/test/Core.Gui.Test/Forms/ViewHost/DocumentViewControllerTest.cs =================================================================== diff -u -r781a97409ffc49e5b666a7856f633f46178056df -rbb2beabdf5dd4c19c6d8f5f741f4bda9482a2af2 --- Core/Gui/test/Core.Gui.Test/Forms/ViewHost/DocumentViewControllerTest.cs (.../DocumentViewControllerTest.cs) (revision 781a97409ffc49e5b666a7856f633f46178056df) +++ Core/Gui/test/Core.Gui.Test/Forms/ViewHost/DocumentViewControllerTest.cs (.../DocumentViewControllerTest.cs) (revision bb2beabdf5dd4c19c6d8f5f741f4bda9482a2af2) @@ -819,6 +819,46 @@ } [Test] + public void CloseAllViews_Always_RemoveViews() + { + // Setup + var data1 = new A(); + var data2 = new InheritedFromA(); + + var mocks = new MockRepository(); + var dialogParent = mocks.Stub(); + var viewHost = mocks.StrictMock(); + var documentViews = new List(); + + viewHost.Stub(vh => vh.ViewClosed += null).IgnoreArguments(); + viewHost.Stub(vh => vh.ViewClosed -= null).IgnoreArguments(); + viewHost.Stub(vh => vh.DocumentViews).Return(documentViews); + viewHost.Expect(vm => vm.AddDocumentView(Arg.Is.NotNull)).WhenCalled(invocation => { documentViews.Add(invocation.Arguments[0] as TestView); }).Repeat.Twice(); + viewHost.Expect(vh => vh.SetImage(null, null)).IgnoreArguments().Repeat.Twice(); + viewHost.Expect(vh => vh.Remove(Arg.Is.NotNull)).WhenCalled(invocation => { documentViews.Remove(invocation.Arguments[0] as TestView); }).Repeat.Twice(); + + mocks.ReplayAll(); + + var viewInfos = new ViewInfo[] + { + new ViewInfo(), + new ViewInfo() + }; + + using (var documentViewController = new DocumentViewController(viewHost, viewInfos, dialogParent)) + { + documentViewController.OpenViewForData(data1); + documentViewController.OpenViewForData(data2); + + // Call + documentViewController.CloseAllViews(); + } + + // Assert + mocks.VerifyAll(); + } + + [Test] public void CloseAllViewsFor_DataIsNull_DoNothing() { // Setup