public void AddNoIndentAnnotation_ModuleContainsCode() { var input = @"Option Explicit Public Foo As Boolean Sub Foo() End Sub"; var expected = @"'@NoIndent Option Explicit Public Foo As Boolean Sub Foo() End Sub"; IVBComponent component; var vbe = MockVbeBuilder.BuildFromSingleStandardModule(input, out component, Selection.Home); var(state, rewritingManager) = MockParser.CreateAndParseWithRewritingManager(vbe.Object); using (state) { var noIndentAnnotationCommand = MockIndenter.ArrangeNoIndentAnnotationCommand(vbe, state, rewritingManager); noIndentAnnotationCommand.Execute(null); Assert.AreEqual(expected, component.CodeModule.Content()); } }
public void IndentModule_IndentsModule() { var input = @" Option Explicit ' at least I used it... Sub InverseIndent() Dim d As Boolean Dim s As Integer End Sub Sub RandomIndent() Dim d As Boolean Dim s As Integer End Sub "; var expected = @"Option Explicit ' at least I used it... Sub InverseIndent() Dim d As Boolean Dim s As Integer End Sub Sub RandomIndent() Dim d As Boolean Dim s As Integer End Sub "; var builder = new MockVbeBuilder(); var project = builder.ProjectBuilder("Proj1", ProjectProtection.Unprotected) .AddComponent("Comp1", ComponentType.ClassModule, input) .AddComponent("Comp2", ComponentType.ClassModule, input) .Build(); var vbe = builder.AddProject(project).Build(); vbe.Setup(s => s.ActiveCodePane).Returns(project.Object.VBComponents["Comp2"].CodeModule.CodePane); using (var state = MockParser.CreateAndParse(vbe.Object)) { var indentCommand = MockIndenter.ArrangeIndentCurrentModuleCommand(vbe, state); indentCommand.Execute(null); var module1 = project.Object.VBComponents["Comp1"].CodeModule; var module2 = project.Object.VBComponents["Comp2"].CodeModule; Assert.AreEqual(input, module1.Content()); Assert.AreEqual(expected, module2.Content()); } }
public void IndentModule_CanExecute() { IVBComponent component; var vbe = MockVbeBuilder.BuildFromSingleStandardModule("", out component); using (var state = MockParser.CreateAndParse(vbe.Object)) { var indentCommand = MockIndenter.ArrangeIndentCurrentModuleCommand(vbe, state); Assert.IsTrue(indentCommand.CanExecute(null)); } }
public void IndentModule_CanExecute_NullActiveCodePane() { IVBComponent component; var vbe = MockVbeBuilder.BuildFromSingleStandardModule("", out component); vbe.Setup(v => v.ActiveCodePane).Returns((ICodePane)null); using (var state = MockParser.CreateAndParse(vbe.Object)) { var indentCommand = MockIndenter.ArrangeIndentCurrentModuleCommand(vbe, state); Assert.IsFalse(indentCommand.CanExecute(null)); } }
public void AddNoIndentAnnotation_CanExecute_ModuleAlreadyHasAnnotation() { IVBComponent component; var vbe = MockVbeBuilder.BuildFromSingleStandardModule("'@NoIndent\r\n", out component); vbe.Setup(v => v.ActiveCodePane).Returns((ICodePane)null); var(state, rewritingManager) = MockParser.CreateAndParseWithRewritingManager(vbe.Object); using (state) { var noIndentAnnotationCommand = MockIndenter.ArrangeNoIndentAnnotationCommand(vbe, state, rewritingManager); Assert.IsFalse(noIndentAnnotationCommand.CanExecute(null)); } }
public void AddNoIndentAnnotation() { IVBComponent component; var vbe = MockVbeBuilder.BuildFromSingleStandardModule("", out component, Selection.Home); var(state, rewritingManager) = MockParser.CreateAndParseWithRewritingManager(vbe.Object); using (state) { var noIndentAnnotationCommand = MockIndenter.ArrangeNoIndentAnnotationCommand(vbe, state, rewritingManager); noIndentAnnotationCommand.Execute(null); Assert.AreEqual("'@NoIndent\r\n", component.CodeModule.Content()); } }