示例#1
0
        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();
        }
示例#2
0
        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();
        }