Example #1
0
 public override void Fix(IInspectionResult result)
 {
     using (var view = new EncapsulateFieldDialog(new EncapsulateFieldViewModel(_state, _indenter)))
     {
         var factory     = new EncapsulateFieldPresenterFactory(_vbe, _state, view);
         var refactoring = new EncapsulateFieldRefactoring(_vbe, _indenter, factory);
         refactoring.Refactor(result.Target);
     }
 }
        public override void Fix()
        {
            var vbe = Selection.QualifiedName.Project.VBE;

            using (var view = new EncapsulateFieldDialog(_state, _indenter))
            {
                var factory     = new EncapsulateFieldPresenterFactory(vbe, _state, view);
                var refactoring = new EncapsulateFieldRefactoring(vbe, _indenter, factory);
                refactoring.Refactor(_target);
                IsCancelled = view.DialogResult != DialogResult.OK;
            }
        }
Example #3
0
        public override void Fix()
        {
            var vbe = Selection.QualifiedName.Project.VBE;

            using (var view = new EncapsulateFieldDialog())
            {
                var factory     = new EncapsulateFieldPresenterFactory(_parseResult, new ActiveCodePaneEditor(vbe, _wrapperFactory), view);
                var refactoring = new EncapsulateFieldRefactoring(factory, new ActiveCodePaneEditor(vbe, _wrapperFactory));
                refactoring.Refactor(_target);
                IsCancelled = view.DialogResult != DialogResult.OK;
            }
        }
Example #4
0
        public override void Execute(object parameter)
        {
            if (Vbe.ActiveCodePane == null)
            {
                return;
            }

            using (var view = new EncapsulateFieldDialog())
            {
                var factory     = new EncapsulateFieldPresenterFactory(Vbe, _state, view);
                var refactoring = new EncapsulateFieldRefactoring(Vbe, factory);
                refactoring.Refactor();
            }
        }
        protected override void OnExecute(object parameter)
        {
            if (Vbe.ActiveCodePane == null)
            {
                return;
            }

            using (var view = new EncapsulateFieldDialog(new EncapsulateFieldViewModel(_state, _indenter)))
            {
                var factory     = new EncapsulateFieldPresenterFactory(Vbe, _state, view);
                var refactoring = new EncapsulateFieldRefactoring(Vbe, _indenter, factory);
                refactoring.Refactor();
            }
        }
        public override void Execute(object parameter)
        {
            if (Vbe.ActiveCodePane == null)
            {
                return;
            }

            using (var view = new EncapsulateFieldDialog())
            {
                var factory = new EncapsulateFieldPresenterFactory(_state, Editor, view);
                var refactoring = new EncapsulateFieldRefactoring(factory, Editor);
                refactoring.Refactor();
            }
        }
        public void GivenNullActiveCodePane_FactoryReturnsNullPresenter()
        {
            //Input
            const string inputCode =
                @"Private fizz As Integer";

            IVBComponent component;
            var          vbe   = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out component);
            var          state = MockParser.CreateAndParse(vbe.Object);

            vbe.Object.ActiveCodePane = null;
            var factory = new EncapsulateFieldPresenterFactory(vbe.Object, state, null);
            var actual  = factory.Create();

            Assert.IsNull(actual);
        }
        public void Presenter_ParameterlessTargetReturnsNullModel()
        {
            //Input
            const string inputCode =
                @"Private Sub Foo()
End Sub";
            var selection = new Selection(1, 15, 1, 15);

            IVBComponent component;
            var          vbe   = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out component, selection);
            var          state = MockParser.CreateAndParse(vbe.Object);

            var factory   = new EncapsulateFieldPresenterFactory(vbe.Object, state, null);
            var presenter = factory.Create();

            Assert.AreEqual(null, presenter.Show());
        }
        protected override void OnExecute(object parameter)
        {
            using (var activePane = Vbe.ActiveCodePane)
            {
                if (activePane == null || activePane.IsWrappingNullReference)
                {
                    return;
                }
            }

            using (var view = new EncapsulateFieldDialog(new EncapsulateFieldViewModel(_state, _indenter)))
            {
                var factory     = new EncapsulateFieldPresenterFactory(Vbe, _state, view);
                var refactoring = new EncapsulateFieldRefactoring(Vbe, _indenter, factory, _rewritingManager);
                refactoring.Refactor();
            }
        }
        public void EncapsulateField_PresenterIsNull()
        {
            //Input
            const string inputCode =
                @"Private fizz As Variant";

            IVBComponent component;
            var          vbe   = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out component);
            var          state = MockParser.CreateAndParse(vbe.Object);

            var vbeWrapper = vbe.Object;
            var factory    = new EncapsulateFieldPresenterFactory(vbeWrapper, state, null);

            var refactoring = new EncapsulateFieldRefactoring(vbeWrapper, CreateIndenter(vbe.Object), factory);

            refactoring.Refactor();

            Assert.AreEqual(inputCode, component.CodeModule.Content());
        }
        public void Presenter_Reject_ReturnsNull()
        {
            //Input
            const string inputCode =
                @"Private Sub Foo(ByVal arg1 As Integer, ByVal arg2 As String)
End Sub";
            var selection = new Selection(1, 15, 1, 15);

            IVBComponent component;
            var          vbe   = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out component, selection);
            var          state = MockParser.CreateAndParse(vbe.Object);

            var view = new Mock <IEncapsulateFieldDialog>();

            view.Setup(v => v.ShowDialog()).Returns(DialogResult.Cancel);

            var factory = new EncapsulateFieldPresenterFactory(vbe.Object, state, view.Object);

            var presenter = factory.Create();

            Assert.AreEqual(null, presenter.Show());
        }
        public void Presenter_Accept_ReturnsModelWithCanImplementLetChanged()
        {
            //Input
            const string inputCode =
                @"Private fizz As Variant";
            var selection = new Selection(1, 15, 1, 15);

            IVBComponent component;
            var          vbe   = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out component, selection);
            var          state = MockParser.CreateAndParse(vbe.Object);

            var view = new Mock <IEncapsulateFieldDialog>();

            view.SetupProperty(v => v.CanImplementLetSetterType, true);
            view.Setup(v => v.ShowDialog()).Returns(DialogResult.OK);

            var factory = new EncapsulateFieldPresenterFactory(vbe.Object, state, view.Object);

            var presenter = factory.Create();

            Assert.AreEqual(true, presenter.Show().CanImplementLet);
        }
        public void Presenter_NullTargetReturnsNullModel()
        {
            //Input
            const string inputCode =
                @"
Private Sub Foo(ByVal arg1 As Integer, ByVal arg2 As String)
End Sub";
            var selection = Selection.Home;

            IVBComponent component;
            var          vbe   = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out component, selection);
            var          state = MockParser.CreateAndParse(vbe.Object);

            var codePane = vbe.Object.VBProjects[0].VBComponents[0].CodeModule.CodePane;

            codePane.Selection = selection;

            var factory = new EncapsulateFieldPresenterFactory(vbe.Object, state, null);

            var presenter = factory.Create();

            Assert.AreEqual(null, presenter.Show());
        }
        public void Presenter_NullTargetReturnsNullModel()
        {
            //Input
            const string inputCode =
@"
Private Sub Foo(ByVal arg1 As Integer, ByVal arg2 As String)
End Sub";
            var selection = Selection.Home;

            //Arrange
            var builder = new MockVbeBuilder();
            var projectBuilder = builder.ProjectBuilder("TestProject1", vbext_ProjectProtection.vbext_pp_none);
            projectBuilder.AddComponent("Module1", vbext_ComponentType.vbext_ct_StdModule, inputCode);
            var project = projectBuilder.Build();
            builder.AddProject(project);
            var vbe = builder.Build();

            var codePaneFactory = new CodePaneWrapperFactory();
            var mockHost = new Mock<IHostApplication>();
            mockHost.SetupAllProperties();
            var parser = MockParser.Create(vbe.Object, new RubberduckParserState());

            parser.Parse();
            if (parser.State.Status == ParserState.Error) { Assert.Inconclusive("Parser Error"); }

            var codePane = project.Object.VBComponents.Item(0).CodeModule.CodePane;
            var ext = codePaneFactory.Create(codePane);
            ext.Selection = selection;

            var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(codePane.CodeModule.Parent), selection);

            var editor = new Mock<IActiveCodePaneEditor>();
            editor.Setup(e => e.GetSelection()).Returns(qualifiedSelection);

            var factory = new EncapsulateFieldPresenterFactory(parser.State, editor.Object, null);

            var presenter = factory.Create();

            Assert.AreEqual(null, presenter.Show());
        }
        public void Factory_NullSelectionReturnsNullPresenter()
        {
            //Input
            const string inputCode =
@"Private fizz As Integer";

            //Arrange
            var builder = new MockVbeBuilder();
            var projectBuilder = builder.ProjectBuilder("TestProject1", vbext_ProjectProtection.vbext_pp_none);
            projectBuilder.AddComponent("Module1", vbext_ComponentType.vbext_ct_StdModule, inputCode);
            var project = projectBuilder.Build();
            builder.AddProject(project);
            var vbe = builder.Build();

            var mockHost = new Mock<IHostApplication>();
            mockHost.SetupAllProperties();
            var parser = MockParser.Create(vbe.Object, new RubberduckParserState());

            parser.Parse();
            if (parser.State.Status == ParserState.Error) { Assert.Inconclusive("Parser Error"); }

            var editor = new Mock<IActiveCodePaneEditor>();
            editor.Setup(e => e.GetSelection()).Returns((QualifiedSelection?)null);

            var factory = new EncapsulateFieldPresenterFactory(parser.State, editor.Object, null);

            Assert.AreEqual(null, factory.Create());
        }
        public void RemoveParams_PresenterIsNull()
        {
            //Input
            const string inputCode =
@"Private fizz As Variant";

            //Arrange
            var builder = new MockVbeBuilder();
            VBComponent component;
            var vbe = builder.BuildFromSingleStandardModule(inputCode, out component);
            var module = component.CodeModule;
            var codePaneFactory = new CodePaneWrapperFactory();
            var mockHost = new Mock<IHostApplication>();
            mockHost.SetupAllProperties();
            var parser = MockParser.Create(vbe.Object, new RubberduckParserState());

            parser.Parse();
            if (parser.State.Status == ParserState.Error) { Assert.Inconclusive("Parser Error"); }

            var editor = new Mock<IActiveCodePaneEditor>();
            editor.Setup(e => e.GetSelection()).Returns((QualifiedSelection?)null);

            var factory = new EncapsulateFieldPresenterFactory(parser.State, editor.Object, null);

            //act
            var refactoring = new EncapsulateFieldRefactoring(factory, new ActiveCodePaneEditor(vbe.Object, codePaneFactory));
            refactoring.Refactor();

            Assert.AreEqual(inputCode, module.Lines());
        }
        public void Presenter_Accept_DefaultCreateGetOnly_Variant_NoReference()
        {
            //Input
            const string inputCode =
@"Private fizz As Variant";
            var selection = new Selection(1, 15, 1, 15);

            //Arrange
            var builder = new MockVbeBuilder();
            VBComponent component;
            var vbe = builder.BuildFromSingleStandardModule(inputCode, out component);
            var mockHost = new Mock<IHostApplication>();
            mockHost.SetupAllProperties();
            var parser = MockParser.Create(vbe.Object, new RubberduckParserState());

            parser.Parse();
            if (parser.State.Status == ParserState.Error) { Assert.Inconclusive("Parser Error"); }

            var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection);

            var editor = new Mock<IActiveCodePaneEditor>();
            editor.Setup(e => e.GetSelection()).Returns(qualifiedSelection);

            var view = new Mock<IEncapsulateFieldView>();
            view.Setup(v => v.ShowDialog()).Returns(DialogResult.OK);

            var factory = new EncapsulateFieldPresenterFactory(parser.State, editor.Object, view.Object);
            var model = factory.Create().Show();

            Assert.AreEqual(false, model.ImplementLetSetterType);
            Assert.AreEqual(false, model.ImplementSetSetterType);
        }
        public void Presenter_Accept_ReturnsModelWithImplementSetRequiredForSetVariant_References()
        {
            //Input
            const string inputCode =
@"Private fizz As Variant
Sub foo()
    Set fizz = New Class1
End Sub";
            var selection = new Selection(1, 15, 1, 15);

            //Arrange
            var builder = new MockVbeBuilder();
            VBComponent component;
            var vbe = builder.BuildFromSingleStandardModule(inputCode, out component);
            var mockHost = new Mock<IHostApplication>();
            mockHost.SetupAllProperties();
            var parser = MockParser.Create(vbe.Object, new RubberduckParserState());

            parser.Parse();
            if (parser.State.Status == ParserState.Error) { Assert.Inconclusive("Parser Error"); }

            var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection);

            var editor = new Mock<IActiveCodePaneEditor>();
            editor.Setup(e => e.GetSelection()).Returns(qualifiedSelection);

            var view = new Mock<IEncapsulateFieldView>();
            view.SetupProperty(v => v.MustImplementSetSetterType, false);

            var factory = new EncapsulateFieldPresenterFactory(parser.State, editor.Object, view.Object);
            factory.Create().Show();

            Assert.AreEqual(true, view.Object.MustImplementSetSetterType);
        }
        public void Presenter_Reject_ReturnsNull()
        {
            //Input
            const string inputCode =
@"Private Sub Foo(ByVal arg1 As Integer, ByVal arg2 As String)
End Sub";
            var selection = new Selection(1, 15, 1, 15);

            //Arrange
            var builder = new MockVbeBuilder();
            VBComponent component;
            var vbe = builder.BuildFromSingleStandardModule(inputCode, out component);
            var mockHost = new Mock<IHostApplication>();
            mockHost.SetupAllProperties();
            var parser = MockParser.Create(vbe.Object, new RubberduckParserState());

            parser.Parse();
            if (parser.State.Status == ParserState.Error) { Assert.Inconclusive("Parser Error"); }

            var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection);

            var editor = new Mock<IActiveCodePaneEditor>();
            editor.Setup(e => e.GetSelection()).Returns(qualifiedSelection);

            var view = new Mock<IEncapsulateFieldView>();
            view.Setup(v => v.ShowDialog()).Returns(DialogResult.Cancel);

            var factory = new EncapsulateFieldPresenterFactory(parser.State, editor.Object, view.Object);

            var presenter = factory.Create();

            Assert.AreEqual(null, presenter.Show());
        }