コード例 #1
0
        public void CanMutateMock_Direct_Dialog()
        {
            var vbe    = MockVbeBuilder.BuildFromSingleStandardModule(string.Empty, out var component);
            var parser = MockParser.Create(vbe.Object);

            using (var state = parser.State)
            {
                var actualTarget = SelectedDeclarationProvider(vbe.Object, state)
                                   .SelectedDeclaration(new QualifiedSelection(new QualifiedModuleName(component), new Selection(2, 2)));
                var actual    = new RenameModel(actualTarget);
                var container = RefactoringContainerInstaller.GetContainer();
                var factory   = container.Resolve <IRefactoringPresenterFactory>();

                var target = SelectedDeclarationProvider(vbe.Object, state)
                             .SelectedDeclaration(new QualifiedSelection(new QualifiedModuleName(component), new Selection(1, 1)));
                var model     = new RenameModel(target);
                var presenter = (RenamePresenter)factory.Create <IRenamePresenter, RenameModel>(model);

                var mock = Mock.Get(presenter.Dialog);
                mock.SetupGet(m => m.Model).Returns(actual);

                var expected = presenter.Dialog.Model;
                Assert.AreEqual(actual, expected);
            }
        }
コード例 #2
0
        public void CanMutateMock_Indirect_View()
        {
            var vbe    = MockVbeBuilder.BuildFromSingleStandardModule(string.Empty, out var component);
            var parser = MockParser.Create(vbe.Object);

            using (var state = parser.State)
            {
                var actualTarget = SelectedDeclarationProvider(vbe.Object, state)
                                   .SelectedDeclaration(new QualifiedSelection(new QualifiedModuleName(component), new Selection(2, 2)));
                var actual = new RenameModel(actualTarget);

                var initialTarget = SelectedDeclarationProvider(vbe.Object, state)
                                    .SelectedDeclaration(new QualifiedSelection(new QualifiedModuleName(component), new Selection(3, 3)));
                var initial = new RenameModel(initialTarget);

                var container = RefactoringContainerInstaller.GetContainer();
                var mockArgs  =
                    new Dictionary <string, object>
                {
                    { "behavior", MockBehavior.Default },
                    { "args", new object[] { initial } }
                };
                var mockView = container.Resolve <Mock <RefactoringViewStub <RenameModel> > >(mockArgs);
                mockView.CallBase = true;
                mockView.SetupGet(m => m.DataContext).Returns(actual);

                var factory = container.Resolve <IRefactoringPresenterFactory>();
                var target  = SelectedDeclarationProvider(vbe.Object, state)
                              .SelectedDeclaration(new QualifiedSelection(new QualifiedModuleName(component), new Selection(1, 1)));
                var model     = new RenameModel(target);
                var presenter = (RenamePresenter)factory.Create <IRenamePresenter, RenameModel>(model);
                var expected  = presenter.Dialog.View.DataContext;
                Assert.AreEqual(actual, expected);
            }
        }
コード例 #3
0
        public void CanResolve_Factory()
        {
            var container = RefactoringContainerInstaller.GetContainer();
            var factory   = container.Resolve <IRefactoringPresenterFactory>();

            Assert.IsInstanceOf <IRefactoringPresenterFactory>(factory);
        }
コード例 #4
0
        public void CanResolve_Mock()
        {
            var container = RefactoringContainerInstaller.GetContainer();
            var presenter = container.Resolve <Mock <IRenamePresenter> >();

            Assert.IsInstanceOf <Mock <IRenamePresenter> >(presenter);
        }
コード例 #5
0
        public void CanMutateMock_Indirect_Dialog()
        {
            var vbe    = MockVbeBuilder.BuildFromSingleStandardModule(string.Empty, out var component);
            var parser = MockParser.Create(vbe.Object);

            using (var state = parser.State)
            {
                var actualTarget = SelectedDeclarationProvider(vbe.Object, state)
                                   .SelectedDeclaration(new QualifiedSelection(new QualifiedModuleName(component), new Selection(2, 2)));
                var actual    = new RenameModel(actualTarget);
                var container = RefactoringContainerInstaller.GetContainer();
                var factory   = container.Resolve <IRefactoringPresenterFactory>();

                var target = SelectedDeclarationProvider(vbe.Object, state)
                             .SelectedDeclaration(new QualifiedSelection(new QualifiedModuleName(component), new Selection(1, 1)));
                var model     = new RenameModel(target);
                var presenter = (RenamePresenter)factory.Create <IRenamePresenter, RenameModel>(model);

                //Mock setup must happen after creating the presenter. Otherwise, the code will error about
                //lacking a parameterless constructor since this Resolve will not have the args the stub needs.
                //Also note that the generic parameter must be exactly the same; otherwise we get a different
                //mock object which will result in a test failure.
                var mock = container.Resolve <Mock <RefactoringDialogStub <RenameModel, IRefactoringView <RenameModel>, IRefactoringViewModel <RenameModel> > > >();
                mock.SetupGet(m => m.Model).Returns(actual);

                var expected = presenter.Dialog.Model;
                Assert.AreEqual(actual, expected);
            }
        }
コード例 #6
0
        public void CanResolve_Actual()
        {
            var vbe    = MockVbeBuilder.BuildFromSingleStandardModule(string.Empty, out var component);
            var parser = MockParser.Create(vbe.Object);

            using (var state = parser.State)
            {
                var container = RefactoringContainerInstaller.GetContainer();
                var factory   = container.Resolve <IRefactoringPresenterFactory>();

                var model = new RenameModel(state.DeclarationFinder,
                                            new QualifiedSelection(new QualifiedModuleName(component), new Selection(1, 1)));
                var presenter = factory.Create <IRenamePresenter, RenameModel>(model);

                Assert.IsInstanceOf <IRenamePresenter>(presenter);
            }
        }