public void OpenViewForData_DataHasMultipleSingleMatches_UseAdditionalDataCheckAndReturnTrueAndAddToViewHost() { // Setup TestViewDerivative view = null; var mocks = new MockRepository(); var dialogParent = mocks.Stub <IWin32Window>(); var viewHost = mocks.StrictMock <IViewHost>(); viewHost.Stub(vh => vh.ViewClosed += null).IgnoreArguments(); viewHost.Stub(vh => vh.ViewClosed -= null).IgnoreArguments(); viewHost.Stub(vh => vh.DocumentViews).Return(new IView[0]); viewHost.Expect(vm => vm.AddDocumentView(Arg <TestViewDerivative> .Is.NotNull, Arg <string> .Is.Anything, Arg <string> .Is.Null, Arg <FontFamily> .Is.Null)) .WhenCalled(invocation => { view = invocation.Arguments[0] as TestViewDerivative; }); mocks.ReplayAll(); var data = new object(); var viewInfos = new ViewInfo[] { new ViewInfo <object, TestViewDerivative> { AdditionalDataCheck = o => true }, new ViewInfo <object, TestView> { AdditionalDataCheck = o => false } }; using (var documentViewController = new DocumentViewController(viewHost, viewInfos, dialogParent)) { // Call bool result = documentViewController.OpenViewForData(data); // Assert Assert.IsTrue(result); Assert.AreEqual(data, view.Data); Assert.IsEmpty(view.Text); } mocks.VerifyAll(); }
public void CloseAllViewsFor_DataIsNull_DoNothing() { // Setup var data1 = new A(); var data2 = new InheritedFromA(); var testView = new TestView { Data = data1 }; var testViewDerivative = new TestViewDerivative { Data = data2 }; var mocks = new MockRepository(); var dialogParent = mocks.Stub <IWin32Window>(); var viewHost = mocks.StrictMock <IViewHost>(); viewHost.Stub(vh => vh.ViewClosed += null).IgnoreArguments(); viewHost.Stub(vh => vh.ViewClosed -= null).IgnoreArguments(); viewHost.Stub(vh => vh.DocumentViews).Return(new[] { testView, testViewDerivative }); mocks.ReplayAll(); var viewInfos = new ViewInfo[] { new ViewInfo <A, TestView>(), new ViewInfo <InheritedFromA, TestViewDerivative>() }; using (var documentViewController = new DocumentViewController(viewHost, viewInfos, dialogParent)) { // Call documentViewController.CloseAllViewsFor(null); } // Assert mocks.VerifyAll(); }