public void MoveCloserToUsageRefactoring_ReferenceIsNotBeginningOfStatement_Assignment() { //Input const string inputCode = @"Private bar As Boolean Private Sub Foo(ByRef bat As Boolean) bat = bar End Sub"; const string expectedCode = @"Private Sub Foo(ByRef bat As Boolean) Dim bar As Boolean bat = bar End Sub"; var selection = new Selection(1, 1); var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out var component, selection); using (var state = MockParser.CreateAndParse(vbe.Object)) { var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var refactoring = new MoveCloserToUsageRefactoring(vbe.Object, state, null); refactoring.Refactor(qualifiedSelection); var rewriter = state.GetRewriter(component); Assert.AreEqual(expectedCode, rewriter.GetText()); } }
public void MoveCloserToUsageRefactoring_ReferencedInMultipleProcedures() { //Input const string inputCode = @"Private bar As Boolean Private Sub Foo() bar = True End Sub Private Sub Bar() bar = True End Sub"; var selection = new Selection(1, 1, 1, 1); IVBComponent component; var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out component, selection); var state = MockParser.CreateAndParse(vbe.Object); var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var messageBox = new Mock <IMessageBox>(); messageBox.Setup(m => m.Show(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <MessageBoxButtons>(), It.IsAny <MessageBoxIcon>())).Returns(DialogResult.OK); var refactoring = new MoveCloserToUsageRefactoring(vbe.Object, state, messageBox.Object); refactoring.Refactor(qualifiedSelection); messageBox.Verify(m => m.Show(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <MessageBoxButtons>(), It.IsAny <MessageBoxIcon>()), Times.Once); Assert.AreEqual(inputCode, component.CodeModule.Content()); }
public void MoveCloserToUsageRefactoring_WorksWithNamedParametersAndStatementSeparaters() { //Input const string inputCode = @"Private foo As Long Public Sub Test(): SomeSub someParam:=foo: End Sub Public Sub SomeSub(ByVal someParam As Long) Debug.Print someParam End Sub"; var selection = new Selection(1, 1); const string expectedCode = @"Public Sub Test(): Dim foo As Long SomeSub someParam:=foo: End Sub Public Sub SomeSub(ByVal someParam As Long) Debug.Print someParam End Sub"; var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out var component, selection); using (var state = MockParser.CreateAndParse(vbe.Object)) { var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var refactoring = new MoveCloserToUsageRefactoring(vbe.Object, state, null); refactoring.Refactor(qualifiedSelection); var rewriter = state.GetRewriter(component); Assert.AreEqual(expectedCode, rewriter.GetText()); } }
public void MoveCloserToUsageRefactoring_Variable() { //Input const string inputCode = @"Private Sub Foo() Dim bar As Boolean Dim bat As Integer bar = True End Sub"; var selection = new Selection(4, 6, 4, 8); //Expectation const string expectedCode = @"Private Sub Foo() Dim bat As Integer Dim bar As Boolean bar = True End Sub"; IVBComponent component; var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out component, selection); var state = MockParser.CreateAndParse(vbe.Object); var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var refactoring = new MoveCloserToUsageRefactoring(vbe.Object, state, null); refactoring.Refactor(qualifiedSelection); Assert.AreEqual(expectedCode, component.CodeModule.Content()); }
public void MoveCloserToUsageRefactoring_MultipleFieldsOneStatement_MoveLast() { //Input const string inputCode = @"Private bar As Integer, _ bat As Boolean, _ bay As Date Private Sub Foo() bay = #1/13/2004# End Sub"; var selection = new Selection(6, 6, 6, 6); //Expectation const string expectedCode = @"Private bar As Integer, bat As Boolean Private Sub Foo() Dim bay As Date bay = #1/13/2004# End Sub"; // note: VBE will remove extra spaces IVBComponent component; var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out component, selection); var state = MockParser.CreateAndParse(vbe.Object); var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var refactoring = new MoveCloserToUsageRefactoring(vbe.Object, state, null); refactoring.Refactor(qualifiedSelection); Assert.AreEqual(expectedCode, component.CodeModule.Content()); }
public void IntroduceFieldRefactoring_InvalidSelection() { //Input const string inputCode = @"Private bar As Boolean Private Sub Foo() bar = True End Sub"; var selection = new Selection(2, 15); var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out var component, selection); using (var state = MockParser.CreateAndParse(vbe.Object)) { var messageBox = new Mock <IMessageBox>(); messageBox.Setup(m => m.Show(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <MessageBoxButtons>(), It.IsAny <MessageBoxIcon>())) .Returns(DialogResult.OK); var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var refactoring = new MoveCloserToUsageRefactoring(vbe.Object, state, messageBox.Object); refactoring.Refactor(qualifiedSelection); messageBox.Verify(m => m.Show(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <MessageBoxButtons>(), It.IsAny <MessageBoxIcon>()), Times.Once); var rewriter = state.GetRewriter(component); Assert.AreEqual(inputCode, rewriter.GetText()); } }
public void IntroduceFieldRefactoring_PassInTarget_Nonvariable() { //Input const string inputCode = @"Private bar As Boolean Private Sub Foo() bar = True End Sub"; var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out var component); using (var state = MockParser.CreateAndParse(vbe.Object)) { var messageBox = new Mock <IMessageBox>(); messageBox.Setup(m => m.Show(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <MessageBoxButtons>(), It.IsAny <MessageBoxIcon>())) .Returns(DialogResult.OK); var refactoring = new MoveCloserToUsageRefactoring(vbe.Object, state, messageBox.Object); refactoring.Refactor(state.AllUserDeclarations.First(d => d.DeclarationType != DeclarationType.Variable)); var rewriter = state.GetRewriter(component); Assert.AreEqual(inputCode, rewriter.GetText()); messageBox.Verify(m => m.Show(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <MessageBoxButtons>(), It.IsAny <MessageBoxIcon>()), Times.Once); } }
public void MoveCloserToUsageRefactoring_ReferenceIsSeparatedWithColon() { //Input const string inputCode = @"Private bar As Boolean Private Sub Foo(): Baz True, True, bar: End Sub Private Sub Baz(ByVal bat As Boolean, ByVal bas As Boolean, ByVal bac As Boolean): End Sub"; var selection = new Selection(1, 1); // Yeah, this code is a mess. That is why we got the SmartIndenter const string expectedCode = @"Private Sub Foo(): Dim bar As Boolean Baz True, True, bar: End Sub Private Sub Baz(ByVal bat As Boolean, ByVal bas As Boolean, ByVal bac As Boolean): End Sub"; var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out var component, selection); var(state, rewritingManager) = MockParser.CreateAndParseWithRewritingManager(vbe.Object); using (state) { var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var refactoring = new MoveCloserToUsageRefactoring(vbe.Object, state, null, rewritingManager); refactoring.Refactor(qualifiedSelection); var actualCode = component.CodeModule.Content(); Assert.AreEqual(expectedCode, actualCode); } }
public void MoveCloserToUsageRefactoring_ReferenceIsNotBeginningOfStatement_PassAsParam() { //Input const string inputCode = @"Private bar As Boolean Private Sub Foo() Baz bar End Sub Sub Baz(ByVal bat As Boolean) End Sub"; const string expectedCode = @"Private Sub Foo() Dim bar As Boolean Baz bar End Sub Sub Baz(ByVal bat As Boolean) End Sub"; var selection = new Selection(1, 1); var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out var component, selection); var(state, rewritingManager) = MockParser.CreateAndParseWithRewritingManager(vbe.Object); using (state) { var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var refactoring = new MoveCloserToUsageRefactoring(vbe.Object, state, null, rewritingManager); refactoring.Refactor(qualifiedSelection); var actualCode = component.CodeModule.Content(); Assert.AreEqual(expectedCode, actualCode); } }
public void MoveCloserToUsageRefactoring_Field_MultipleLines() { //Input const string inputCode = @"Private _ bar _ As _ Boolean Private Sub Foo() bar = True End Sub"; var selection = new Selection(1, 1); //Expectation const string expectedCode = @"Private Sub Foo() Dim bar As Boolean bar = True End Sub"; var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out var component, selection); var(state, rewritingManager) = MockParser.CreateAndParseWithRewritingManager(vbe.Object); using (state) { var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var refactoring = new MoveCloserToUsageRefactoring(vbe.Object, state, null, rewritingManager); refactoring.Refactor(qualifiedSelection); var actualCode = component.CodeModule.Content(); Assert.AreEqual(expectedCode, actualCode); } }
public void IntroduceFieldRefactoring_InvalidSelection() { //Input const string inputCode = @"Private bar As Boolean Private Sub Foo() bar = True End Sub"; var selection = new Selection(2, 15); var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out var component, selection); var(state, rewritingManager) = MockParser.CreateAndParseWithRewritingManager(vbe.Object); using (state) { var messageBox = new Mock <IMessageBox>(); var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var refactoring = new MoveCloserToUsageRefactoring(vbe.Object, state, messageBox.Object, rewritingManager); refactoring.Refactor(qualifiedSelection); messageBox.Verify(m => m.NotifyWarn(It.IsAny <string>(), It.IsAny <string>()), Times.Once); var actualCode = component.CodeModule.Content(); Assert.AreEqual(inputCode, actualCode); } }
public void MoveCloserToUsageRefactoring_ReferencedInMultipleProcedures() { //Input const string inputCode = @"Private bar As Boolean Private Sub Foo() bar = True End Sub Private Sub Bar() bar = True End Sub"; var selection = new Selection(1, 1); var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out var component, selection); using (var state = MockParser.CreateAndParse(vbe.Object)) { var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var messageBox = new Mock <IMessageBox>(); var refactoring = new MoveCloserToUsageRefactoring(vbe.Object, state, messageBox.Object); refactoring.Refactor(qualifiedSelection); messageBox.Verify(m => m.NotifyWarn(It.IsAny <string>(), It.IsAny <string>()), Times.Once()); var rewriter = state.GetRewriter(component); Assert.AreEqual(inputCode, rewriter.GetText()); } }
public void MoveCloserToUsageRefactoring_Field() { //Input const string inputCode = @"Private bar As Boolean Private Sub Foo() bar = True End Sub"; var selection = new Selection(1, 1); //Expectation const string expectedCode = @"Private Sub Foo() Dim bar As Boolean bar = True End Sub"; IVBComponent component; var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out component, selection); using (var state = MockParser.CreateAndParse(vbe.Object)) { var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var refactoring = new MoveCloserToUsageRefactoring(vbe.Object, state, null); refactoring.Refactor(qualifiedSelection); var rewriter = state.GetRewriter(component); Assert.AreEqual(expectedCode, rewriter.GetText()); } }
public void MoveCloserToUsageRefactoring_Variable_MultipleLines() { //Input const string inputCode = @"Private Sub Foo() Dim _ bar _ As _ Boolean Dim bat As Integer bar = True End Sub"; var selection = new Selection(4, 6, 4, 8); //Expectation const string expectedCode = @"Private Sub Foo() Dim bat As Integer Dim bar As Boolean bar = True End Sub"; var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out var component, selection); using (var state = MockParser.CreateAndParse(vbe.Object)) { var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var refactoring = new MoveCloserToUsageRefactoring(vbe.Object, state, null); refactoring.Refactor(qualifiedSelection); var rewriter = state.GetRewriter(component); Assert.AreEqual(expectedCode, rewriter.GetText()); } }
public override void Fix(IInspectionResult result) { var vbe = result.Target.Project.VBE; var refactoring = new MoveCloserToUsageRefactoring(vbe, _state, _messageBox); refactoring.Refactor(result.Target); }
public override void Fix() { var vbe = Selection.QualifiedName.Project.VBE; var refactoring = new MoveCloserToUsageRefactoring(vbe, _state, _messageBox); refactoring.Refactor(_target); }
public override void Fix() { var vbe = Selection.QualifiedName.Project.VBE; var refactoring = new MoveCloserToUsageRefactoring(_parseResult, new ActiveCodePaneEditor(vbe, _wrapperFactory), _messageBox); refactoring.Refactor(_target); }
public void MoveCloserToUsageRefactoring_FieldInOtherClass() { //Input const string inputCode1 = @"Public bar As Boolean"; const string inputCode2 = @"Private Sub Foo() Module1.bar = True End Sub"; var selection = new Selection(1, 1, 1, 1); //Expectation const string expectedCode1 = @""; const string expectedCode2 = @"Private Sub Foo() Dim bar As Boolean bar = True End Sub"; //Arrange var builder = new MockVbeBuilder(); var project = builder.ProjectBuilder("TestProject1", vbext_ProjectProtection.vbext_pp_none) .AddComponent("Module1", vbext_ComponentType.vbext_ct_StdModule, inputCode1) .AddComponent("Class1", vbext_ComponentType.vbext_ct_ClassModule, inputCode2) .Build(); var vbe = builder.AddProject(project).Build(); var component = project.Object.VBComponents.Item(0); var mockHost = new Mock <IHostApplication>(); mockHost.SetupAllProperties(); var parser = MockParser.Create(vbe.Object, new RubberduckParserState(new Mock <ISinks>().Object)); parser.Parse(new CancellationTokenSource()); 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; //Act var refactoring = new MoveCloserToUsageRefactoring(vbe.Object, parser.State, null); refactoring.Refactor(qualifiedSelection); //Assert Assert.AreEqual(expectedCode1, module1.Lines()); Assert.AreEqual(expectedCode2, module2.Lines()); }
protected override void OnExecute(object parameter) { var activeSelection = SelectionService.ActiveSelection(); if (activeSelection.HasValue) { var refactoring = new MoveCloserToUsageRefactoring(_state, _msgbox, RewritingManager, SelectionService); refactoring.Refactor(activeSelection.Value); } }
protected override CommandBase TestCommand(IVBE vbe, RubberduckParserState state, IRewritingManager rewritingManager, ISelectionService selectionService) { var msgBox = new Mock <IMessageBox>().Object; var selectedDeclarationProvider = new SelectedDeclarationProvider(selectionService, state); var refactoring = new MoveCloserToUsageRefactoring(state, rewritingManager, selectionService, selectedDeclarationProvider); var notifier = new MoveCloserToUsageFailedNotifier(msgBox); var selectedDeclarationService = new SelectedDeclarationProvider(selectionService, state); return(new RefactorMoveCloserToUsageCommand(refactoring, notifier, state, selectionService, selectedDeclarationService)); }
protected override void OnExecute(object parameter) { var selection = Vbe.GetActiveSelection(); if (selection.HasValue) { var refactoring = new MoveCloserToUsageRefactoring(Vbe, _state, _msgbox, _rewritingManager); refactoring.Refactor(selection.Value); } }
public void MoveCloserToUsageRefactoring_MultipleVariablesOneStatement_MoveLast() { //Input const string inputCode = @"Private Sub Foo() Dim bar As Integer, _ bat As Boolean, _ bay As Date bar = 4 bay = #1/13/2004# End Sub"; var selection = new Selection(4, 16, 4, 16); //Expectation const string expectedCode = @"Private Sub Foo() Dim bar As Integer, bat As Boolean bar = 4 Dim bay As Date bay = #1/13/2004# End Sub"; // note: VBE will remove extra spaces //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); //Act var refactoring = new MoveCloserToUsageRefactoring(parser.State, new ActiveCodePaneEditor(vbe.Object, codePaneFactory), null); refactoring.Refactor(qualifiedSelection); //Assert Assert.AreEqual(expectedCode, module.Lines()); }
public void MoveCloserToUsageRefactoring_ReferenceIsNotBeginningOfStatement_PassAsParam_ReferenceIsNotFirstLine() { //Input const string inputCode = @"Private bar As Boolean Private Sub Foo() Baz True, _ True, _ bar End Sub Sub Baz(ByVal bat As Boolean, ByVal bas As Boolean, ByVal bac As Boolean) End Sub"; const string expectedCode = @"Private Sub Foo() Dim bar As Boolean Baz True, _ True, _ bar End Sub Sub Baz(ByVal bat As Boolean, ByVal bas As Boolean, ByVal bac As Boolean) End Sub"; var selection = new Selection(1, 1, 1, 1); //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); //Act var refactoring = new MoveCloserToUsageRefactoring(parser.State, new ActiveCodePaneEditor(vbe.Object, codePaneFactory), null); refactoring.Refactor(qualifiedSelection); //Assert Assert.AreEqual(expectedCode, module.Lines()); }
public void IntroduceFieldRefactoring_PassInTarget_Nonvariable() { //Input const string inputCode = @"Private bar As Boolean Private Sub Foo() bar = True End Sub"; //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 messageBox = new Mock <IMessageBox>(); messageBox.Setup(m => m.Show(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <MessageBoxButtons>(), It.IsAny <MessageBoxIcon>())) .Returns(DialogResult.OK); //Act var refactoring = new MoveCloserToUsageRefactoring(parser.State, new ActiveCodePaneEditor(vbe.Object, codePaneFactory), messageBox.Object); //Assert try { refactoring.Refactor(parser.State.AllUserDeclarations.First(d => d.DeclarationType != DeclarationType.Variable)); } catch (ArgumentException e) { Assert.AreEqual("Invalid Argument. DeclarationType must be 'Variable'\r\nParameter name: target", e.Message); Assert.AreEqual(inputCode, module.Lines()); messageBox.Verify(m => m.Show(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <MessageBoxButtons>(), It.IsAny <MessageBoxIcon>()), Times.Once); return; } Assert.Fail(); }
protected override void ExecuteImpl(object parameter) { if (Vbe.ActiveCodePane == null) { return; } var codePane = _wrapperWrapperFactory.Create(Vbe.ActiveCodePane); var selection = new QualifiedSelection(new QualifiedModuleName(codePane.CodeModule.Parent), codePane.Selection); var refactoring = new MoveCloserToUsageRefactoring(Vbe, _state, new MessageBox()); refactoring.Refactor(selection); }
public RefactorMoveCloserToUsageCommand( MoveCloserToUsageRefactoring refactoring, MoveCloserToUsageFailedNotifier moveCloserToUsageFailedNotifier, RubberduckParserState state, ISelectionProvider selectionProvider, ISelectedDeclarationProvider selectedDeclarationProvider) : base(refactoring, moveCloserToUsageFailedNotifier, selectionProvider, state) { _state = state; _selectedDeclarationProvider = selectedDeclarationProvider; AddToCanExecuteEvaluation(SpecializedEvaluateCanExecute); }
public void MoveCloserToUsageRefactoring_MultipleFields_MoveSecond() { //Input const string inputCode = @"Private bar As Integer Private bat As Boolean Private bay As Date Private Sub Foo() bat = True End Sub"; var selection = new Selection(2, 1, 2, 1); //Expectation const string expectedCode = @"Private bar As Integer Private bay As Date Private Sub Foo() Dim bat As Boolean bat = True End Sub"; //Arrange var builder = new MockVbeBuilder(); VBComponent component; var vbe = builder.BuildFromSingleStandardModule(inputCode, out component, selection); var project = vbe.Object.VBProjects.Item(0); var module = project.VBComponents.Item(0).CodeModule; var mockHost = new Mock <IHostApplication>(); mockHost.SetupAllProperties(); var parser = MockParser.Create(vbe.Object, new RubberduckParserState(new Mock <ISinks>().Object)); parser.Parse(new CancellationTokenSource()); if (parser.State.Status >= ParserState.Error) { Assert.Inconclusive("Parser Error"); } var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); //Act var refactoring = new MoveCloserToUsageRefactoring(vbe.Object, parser.State, null); refactoring.Refactor(qualifiedSelection); //Assert Assert.AreEqual(expectedCode, module.Lines()); }
public void MoveCloser_RespectsMemberAccess_ContextOwners() { const string inputCode = @" Public Sub foo() Dim count As Long Dim report As Worksheet Set report = ThisWorkbook.ActiveSheet With report For count = 1 To 10 If .Cells(1, count) > count Then .Cells(2, count).Value2 = count End If Next End With End Sub"; const string expectedCode = @" Public Sub foo() Dim report As Worksheet Set report = ThisWorkbook.ActiveSheet With report Dim count As Long For count = 1 To 10 If .Cells(1, count) > count Then .Cells(2, count).Value2 = count End If Next End With End Sub"; var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out var component); var(state, rewritingManager) = MockParser.CreateAndParseWithRewritingManager(vbe.Object); using (state) { var qualifiedSelection = state.DeclarationFinder .UserDeclarations(DeclarationType.Variable) .Where(d => d.IdentifierName == "count") .Single().QualifiedSelection; var refactoring = new MoveCloserToUsageRefactoring(vbe.Object, state, null, rewritingManager); refactoring.Refactor(qualifiedSelection); var actualCode = component.CodeModule.Content(); Assert.AreEqual(expectedCode, actualCode); } }
public void MoveCloserToUsageRefactoring_ReferencedInMultipleProcedures() { //Input const string inputCode = @"Private bar As Boolean Private Sub Foo() bar = True End Sub Private Sub Bar() bar = True End Sub"; var selection = new Selection(1, 1, 1, 1); //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 messageBox = new Mock <IMessageBox>(); messageBox.Setup(m => m.Show(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <MessageBoxButtons>(), It.IsAny <MessageBoxIcon>())).Returns(DialogResult.OK); //Act var refactoring = new MoveCloserToUsageRefactoring(parser.State, new ActiveCodePaneEditor(vbe.Object, codePaneFactory), messageBox.Object); refactoring.Refactor(qualifiedSelection); //Assert messageBox.Verify(m => m.Show(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <MessageBoxButtons>(), It.IsAny <MessageBoxIcon>()), Times.Once); Assert.AreEqual(inputCode, module.Lines()); }
protected override void ExecuteImpl(object parameter) { var pane = Vbe.ActiveCodePane; var module = pane.CodeModule; { if (pane.IsWrappingNullReference) { return; } var selection = new QualifiedSelection(new QualifiedModuleName(module.Parent), pane.Selection); var refactoring = new MoveCloserToUsageRefactoring(Vbe, _state, _msgbox); refactoring.Refactor(selection); } }