public void Refactor() { var presenter = _factory.Create(); if (presenter == null) { return; } _model = presenter.Show(); if (_model == null) { return; } var target = _model.TargetDeclaration; var rewriter = _model.State.GetRewriter(target); AddProperty(rewriter); rewriter.Rewrite(); foreach (var referenceRewriter in _referenceRewriters) { referenceRewriter.Rewrite(); } }
public void Refactor() { _model = InitializeModel(); if (_model == null) { return; } using (var container = DisposalActionContainer.Create(_factory.Create <IEncapsulateFieldPresenter, EncapsulateFieldModel>(_model), p => _factory.Release(p))) { var presenter = container.Value; if (presenter == null) { return; } _model = presenter.Show(); if (_model == null) { return; } var rewriteSession = _rewritingManager.CheckOutCodePaneSession(); AddProperty(rewriteSession); rewriteSession.TryRewrite(); } }
public void Refactor() { var presenter = _factory.Create(); if (presenter == null) { return; } _model = presenter.Show(); if (_model == null) { return; } QualifiedSelection?oldSelection = null; if (_vbe.ActiveCodePane != null) { oldSelection = _vbe.ActiveCodePane.CodeModule.GetQualifiedSelection(); } AddProperty(); if (oldSelection.HasValue) { var module = oldSelection.Value.QualifiedName.Component.CodeModule; var pane = module.CodePane; { pane.Selection = oldSelection.Value.Selection; } } _model.State.OnParseRequested(this); }
public void EncapsulatePublicField_WithLetter() { //Input const string inputCode = @"Public fizz As Integer"; var selection = new Selection(1, 1, 1, 1); //Expectation const string expectedCode = @"Private fizz As Integer Public Property Get Name() As Integer Name = fizz End Property Public Property Let Name(ByVal value As Integer) fizz = value End Property "; //Arrange var builder = new MockVbeBuilder(); VBComponent component; var vbe = builder.BuildFromSingleStandardModule(inputCode, out component); var project = vbe.Object.VBProjects.Item(0); var module = project.VBComponents.Item(0).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 qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var model = new EncapsulateFieldModel(parser.State, qualifiedSelection) { ImplementLetSetterType = true, ImplementSetSetterType = false, ParameterName = "value", PropertyName = "Name" }; //SetupFactory var factory = SetupFactory(model); //Act var refactoring = new EncapsulateFieldRefactoring(factory.Object, new ActiveCodePaneEditor(vbe.Object, codePaneFactory)); refactoring.Refactor(qualifiedSelection); //Assert Assert.AreEqual(expectedCode, module.Lines()); }
public EncapsulateFieldPresenter Create() { var selection = _vbe.GetActiveSelection(); if (!selection.HasValue) { return(null); } var model = new EncapsulateFieldModel(_state, selection.Value); return(new EncapsulateFieldPresenter(_view, model)); }
public EncapsulateFieldPresenter Create() { var selection = _editor.GetSelection(); if (selection == null) { return(null); } var model = new EncapsulateFieldModel(_parseResult, selection.Value); return(new EncapsulateFieldPresenter(_view, model)); }
public void Refactor() { var presenter = _factory.Create(); if (presenter == null) { return; } _model = presenter.Show(); if (_model == null) { return; } AddProperty(); }
public void Refactor() { var presenter = _factory.Create(); if (presenter == null) { return; } _model = presenter.Show(); if (_model == null) { return; } AddProperty(); }
public EncapsulateFieldPresenter Create() { var pane = _vbe.ActiveCodePane; if (pane == null || pane.IsWrappingNullReference) { return(null); } var selection = pane.GetQualifiedSelection(); if (!selection.HasValue) { return(null); } var model = new EncapsulateFieldModel(_state, selection.Value); return(new EncapsulateFieldPresenter(_view, model)); }
public void Refactor() { var presenter = _factory.Create(); if (presenter == null) { return; } _model = presenter.Show(); if (_model == null) { return; } AddProperty(); _model.State.OnParseRequested(this); }
public void Refactor() { var presenter = _factory.Create(); if (presenter == null) { return; } _model = presenter.Show(); if (_model == null) { return; } var rewriteSession = _rewritingManager.CheckOutCodePaneSession(); AddProperty(rewriteSession); rewriteSession.TryRewrite(); }
public EncapsulateFieldPresenter(IRefactoringDialog <EncapsulateFieldViewModel> view, EncapsulateFieldModel model) { _view = view; _model = model; }
public UseBackingFields(IDeclarationFinderProvider declarationFinderProvider, EncapsulateFieldModel model, IIndenter indenter, ICodeBuilder codeBuilder) : base(declarationFinderProvider, model, indenter, codeBuilder) { _fieldsToDeleteAndReplace = SelectedFields.Where(f => f.Declaration.IsDeclaredInList() && !f.Declaration.HasPrivateAccessibility()).ToList(); }
public void GivenReferencedPublicField_UpdatesReferenceToNewProperty() { //Input const string code_class1 = @"Public fizz As Integer Sub Foo() fizz = 1 End Sub"; const string code_class2 = @"Sub Foo() Dim c As Class1 c.fizz = 0 Bar c.fizz End Sub Sub Bar(ByVal v As Integer) End Sub"; var selection = new Selection(1, 1, 1, 1); //Expectation const string expectedCode1 = @"Private fizz As Integer Public Property Get Name() As Integer Name = fizz End Property Public Property Let Name(ByVal value As Integer) fizz = value End Property Sub Foo() Name = 1 End Sub"; const string expectedCode2 = @"Sub Foo() Dim c As Class1 c.Name = 0 Bar c.Name End Sub Sub Bar(ByVal v As Integer) End Sub"; //Arrange var builder = new MockVbeBuilder(); var project = builder.ProjectBuilder("TestProject1", vbext_ProjectProtection.vbext_pp_none) .AddComponent("Class1", vbext_ComponentType.vbext_ct_ClassModule, code_class1) .AddComponent("Class2", vbext_ComponentType.vbext_ct_ClassModule, code_class2) .Build(); var vbe = builder.AddProject(project).Build(); var component = project.Object.VBComponents.Item(0); vbe.Setup(v => v.ActiveCodePane).Returns(component.CodeModule.CodePane); 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 qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var module1 = project.Object.VBComponents.Item(0).CodeModule; var module2 = project.Object.VBComponents.Item(1).CodeModule; var model = new EncapsulateFieldModel(parser.State, qualifiedSelection) { ImplementLetSetterType = true, ImplementSetSetterType = false, ParameterName = "value", PropertyName = "Name" }; //SetupFactory var factory = SetupFactory(model); //Act var refactoring = new EncapsulateFieldRefactoring(factory.Object, new ActiveCodePaneEditor(vbe.Object, codePaneFactory)); refactoring.Refactor(qualifiedSelection); var actualCode1 = module1.Lines(); var actualCode2 = module2.Lines(); //Assert Assert.AreEqual(expectedCode1, actualCode1); Assert.AreEqual(expectedCode2, actualCode2); }
public EncapsulateFieldPresenter(IEncapsulateFieldDialog view, EncapsulateFieldModel model) { _view = view; _model = model; }
public EncapsulateFieldPresenter(IEncapsulateFieldView view, EncapsulateFieldModel model) { _view = view; _model = model; }
private static Mock<IRefactoringPresenterFactory<IEncapsulateFieldPresenter>> SetupFactory(EncapsulateFieldModel model) { var presenter = new Mock<IEncapsulateFieldPresenter>(); presenter.Setup(p => p.Show()).Returns(model); var factory = new Mock<IRefactoringPresenterFactory<IEncapsulateFieldPresenter>>(); factory.Setup(f => f.Create()).Returns(presenter.Object); return factory; }
public ConvertFieldsToUDTMembers(IDeclarationFinderProvider declarationFinderProvider, EncapsulateFieldModel model, IIndenter indenter, ICodeBuilder codeBuilder) : base(declarationFinderProvider, model, indenter, codeBuilder) { _stateUDTField = model.ObjectStateUDTField; }