public void CanExecuteNameCollision_ActiveCodePane_EmptyClass()
        {
            var input   = @"
Sub Foo()
End Sub
";
            var builder = new MockVbeBuilder();
            var proj1   = builder.ProjectBuilder("TestProj1", ProjectProtection.Unprotected)
                          .AddComponent("Class1", ComponentType.ClassModule, input, Selection.Home)
                          .Build();
            var proj2 = builder.ProjectBuilder("TestProj2", ProjectProtection.Unprotected)
                        .AddComponent("Class1", ComponentType.ClassModule, string.Empty, Selection.Home)
                        .Build();

            var vbe = builder
                      .AddProject(proj1)
                      .AddProject(proj2)
                      .Build();

            vbe.Object.ActiveCodePane = proj1.Object.VBComponents[0].CodeModule.CodePane;
            if (string.IsNullOrEmpty(vbe.Object.ActiveCodePane.CodeModule.Content()))
            {
                Assert.Inconclusive("The active code pane should be the one with the method stub.");
            }

            using (var state = MockParser.CreateAndParse(vbe.Object))
            {
                var extractInterfaceCommand = new RefactorExtractInterfaceCommand(vbe.Object, state, null);
                Assert.IsTrue(extractInterfaceCommand.CanExecute(null));
            }
        }
        public void ExtractInterface_CanExecute_Field()
        {
            IVBComponent component;
            var          vbe   = MockVbeBuilder.BuildFromSingleModule("Dim d As Boolean", ComponentType.ClassModule, out component, Selection.Home);
            var          state = MockParser.CreateAndParse(vbe.Object);

            var extractInterfaceCommand = new RefactorExtractInterfaceCommand(vbe.Object, state, null);

            Assert.IsFalse(extractInterfaceCommand.CanExecute(null));
        }
        public void ExtractInterface_CanExecute_NoMembers()
        {
            IVBComponent component;
            var          vbe   = MockVbeBuilder.BuildFromSingleModule("Option Explicit", ComponentType.ClassModule, out component, new Selection());
            var          state = MockParser.CreateAndParse(vbe.Object);

            var extractInterfaceCommand = new RefactorExtractInterfaceCommand(vbe.Object, state, null);

            Assert.IsFalse(extractInterfaceCommand.CanExecute(null));
        }
        public void ExtractInterface_CanExecute_Field()
        {
            var vbe = MockVbeBuilder.BuildFromSingleModule("Dim d As Boolean", ComponentType.ClassModule, out _, Selection.Home);

            var(state, rewritingManager) = MockParser.CreateAndParseWithRewritingManager(vbe.Object);
            using (state)
            {
                var extractInterfaceCommand = new RefactorExtractInterfaceCommand(vbe.Object, state, null, rewritingManager);
                Assert.IsFalse(extractInterfaceCommand.CanExecute(null));
            }
        }
        public void ExtractInterface_CanExecute_NoMembers()
        {
            var vbe = MockVbeBuilder.BuildFromSingleModule("Option Explicit", ComponentType.ClassModule, out _);

            var(state, rewritingManager) = MockParser.CreateAndParseWithRewritingManager(vbe.Object);
            using (state)
            {
                var extractInterfaceCommand = new RefactorExtractInterfaceCommand(vbe.Object, state, null, rewritingManager);
                Assert.IsFalse(extractInterfaceCommand.CanExecute(null));
            }
        }
        public void ExtractInterface_CanExecute_NonReadyState()
        {
            IVBComponent component;
            var          vbe = MockVbeBuilder.BuildFromSingleModule(string.Empty, ComponentType.ClassModule, out component, new Selection());

            using (var state = MockParser.CreateAndParse(vbe.Object))
            {
                state.SetStatusAndFireStateChanged(this, ParserState.ResolvedDeclarations, CancellationToken.None);

                var extractInterfaceCommand = new RefactorExtractInterfaceCommand(vbe.Object, state, null);
                Assert.IsFalse(extractInterfaceCommand.CanExecute(null));
            }
        }
        public void ExtractInterface_CanExecute_NullActiveCodePane()
        {
            IVBComponent component;
            var          vbe = MockVbeBuilder.BuildFromSingleStandardModule(string.Empty, out component);

            vbe.Setup(v => v.ActiveCodePane).Returns((ICodePane)null);

            using (var state = MockParser.CreateAndParse(vbe.Object))
            {
                var extractInterfaceCommand = new RefactorExtractInterfaceCommand(vbe.Object, state, null);
                Assert.IsFalse(extractInterfaceCommand.CanExecute(null));
            }
        }
        public void ExtractInterface_CanExecute_NullActiveCodePane()
        {
            var vbe = MockVbeBuilder.BuildFromSingleStandardModule(string.Empty, out _);

            vbe.Setup(v => v.ActiveCodePane).Returns((ICodePane)null);

            var(state, rewritingManager) = MockParser.CreateAndParseWithRewritingManager(vbe.Object);
            using (state)
            {
                var extractInterfaceCommand = new RefactorExtractInterfaceCommand(vbe.Object, state, null, rewritingManager);
                Assert.IsFalse(extractInterfaceCommand.CanExecute(null));
            }
        }
        public void ExtractInterface_CanExecute_PropertySet()
        {
            var input =
                @"Property Set foo(value)
End Property";

            IVBComponent component;
            var          vbe   = MockVbeBuilder.BuildFromSingleModule(input, ComponentType.ClassModule, out component, Selection.Home);
            var          state = MockParser.CreateAndParse(vbe.Object);

            var extractInterfaceCommand = new RefactorExtractInterfaceCommand(vbe.Object, state, null);

            Assert.IsTrue(extractInterfaceCommand.CanExecute(null));
        }
        public void ExtractInterface_CanExecute_Proc_StdModule()
        {
            var input =
                @"Sub foo()
End Sub";

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

            var extractInterfaceCommand = new RefactorExtractInterfaceCommand(vbe.Object, state, null);

            Assert.IsFalse(extractInterfaceCommand.CanExecute(null));
        }
        public void ExtractInterface_CanExecute_Function()
        {
            var input =
                @"Function foo() As Integer
End Function";

            IVBComponent component;
            var          vbe = MockVbeBuilder.BuildFromSingleModule(input, ComponentType.ClassModule, out component, Selection.Home);

            using (var state = MockParser.CreateAndParse(vbe.Object))
            {
                var extractInterfaceCommand = new RefactorExtractInterfaceCommand(vbe.Object, state, null);
                Assert.IsTrue(extractInterfaceCommand.CanExecute(null));
            }
        }
        public void ExtractInterface_CanExecute_PropertySet()
        {
            var input =
                @"Property Set foo(value)
End Property";

            var vbe = MockVbeBuilder.BuildFromSingleModule(input, ComponentType.ClassModule, out _, Selection.Home);

            var(state, rewritingManager) = MockParser.CreateAndParseWithRewritingManager(vbe.Object);
            using (state)
            {
                var extractInterfaceCommand = new RefactorExtractInterfaceCommand(vbe.Object, state, null, rewritingManager);
                Assert.IsTrue(extractInterfaceCommand.CanExecute(null));
            }
        }
        public void ExtractInterface_CanExecute_Proc_StdModule()
        {
            var input =
                @"Sub foo()
End Sub";

            var vbe = MockVbeBuilder.BuildFromSingleStandardModule(input, out _);

            var(state, rewritingManager) = MockParser.CreateAndParseWithRewritingManager(vbe.Object);
            using (state)
            {
                var extractInterfaceCommand = new RefactorExtractInterfaceCommand(vbe.Object, state, null, rewritingManager);
                Assert.IsFalse(extractInterfaceCommand.CanExecute(null));
            }
        }
        public void ExtractInterface_CanExecute_ClassWithMembers_SameNameAsClassWithMembers()
        {
            var input =
                @"Sub foo()
End Sub";

            var builder = new MockVbeBuilder();
            var proj1   = builder.ProjectBuilder("TestProj1", ProjectProtection.Unprotected).AddComponent("Comp1", ComponentType.ClassModule, input, Selection.Home).Build();
            var proj2   = builder.ProjectBuilder("TestProj2", ProjectProtection.Unprotected).AddComponent("Comp1", ComponentType.ClassModule, string.Empty).Build();

            var vbe = builder
                      .AddProject(proj1)
                      .AddProject(proj2)
                      .Build();

            vbe.Setup(s => s.ActiveCodePane).Returns(proj1.Object.VBComponents[0].CodeModule.CodePane);

            using (var state = MockParser.CreateAndParse(vbe.Object))
            {
                var extractInterfaceCommand = new RefactorExtractInterfaceCommand(vbe.Object, state, null);
                Assert.IsTrue(extractInterfaceCommand.CanExecute(null));
            }
        }
Exemple #15
0
 public RefactorExtractInterfaceCommandMenuItem(RefactorExtractInterfaceCommand command)
     : base(command)
 {
 }