Ejemplo n.º 1
0
        public void ConflictFinder_GenerateNoConflictName()
        {
            var testModuleName = "TargetModule";
            var testModuleCode =
                @"Option Explicit

Public Sub MySub()
End Sub";

            var otherModuleName = testModuleName;
            var otherModuleCode =
                @"Option Explicit
";

            var vbe = MockVbeBuilder.BuildFromModules((MockVbeBuilder.TestModuleName, testModuleCode, ComponentType.ClassModule),
                                                      (otherModuleName, otherModuleCode, ComponentType.StandardModule));

            using (var state = MockParser.CreateAndParse(vbe.Object))
            {
                var module         = state.DeclarationFinder.MatchName(MockVbeBuilder.TestModuleName).OfType <ClassModuleDeclaration>().Single();
                var conflictFinder = new TestConflictFinderFactory().Create(state, module.ProjectId);

                var interfaceModuleName = conflictFinder.GenerateNoConflictModuleName(otherModuleName);

                Assert.AreEqual($"{testModuleName}1", interfaceModuleName);
            }
        }
        protected override IRefactoring TestRefactoring(
            IRewritingManager rewritingManager,
            RubberduckParserState state,
            RefactoringUserInteraction <IExtractInterfacePresenter, ExtractInterfaceModel> userInteraction,
            ISelectionService selectionService)
        {
            var addImplementationsBaseRefactoring = new AddInterfaceImplementationsRefactoringAction(rewritingManager, CreateCodeBuilder());
            var addComponentService   = TestAddComponentService(state?.ProjectsProvider);
            var baseRefactoring       = new ExtractInterfaceRefactoringAction(addImplementationsBaseRefactoring, state, state, rewritingManager, state?.ProjectsProvider, addComponentService);
            var conflictFinderFactory = new TestConflictFinderFactory() as IExtractInterfaceConflictFinderFactory;

            return(new ExtractInterfaceRefactoring(baseRefactoring, state, userInteraction, selectionService, conflictFinderFactory, CreateCodeBuilder()));
        }
Ejemplo n.º 3
0
        public void ConflictFinder_IsNonConflictInterfaceName(string interfaceName, bool expectedResult)
        {
            var testModuleCode =
                @"Option Explicit

Public Sub MySub()
End Sub";

            var otherModuleName = "AnotherModule";
            var otherModuleCode =
                @"Option Explicit

Public Type TestType
    FirstMember As Long
End Type

Public Enum TestEnum
    FirstEnum
End Enum

Private Type TestType2
    FirstMember As Long
End Type

Private Enum TestEnum2
    FirstEnum
End Enum
";

            var vbe = MockVbeBuilder.BuildFromModules((MockVbeBuilder.TestModuleName, testModuleCode, ComponentType.ClassModule),
                                                      (otherModuleName, otherModuleCode, ComponentType.StandardModule));

            using (var state = MockParser.CreateAndParse(vbe.Object))
            {
                var module = state.DeclarationFinder.MatchName(MockVbeBuilder.TestModuleName).OfType <ClassModuleDeclaration>().Single();

                var conflictFinder = new TestConflictFinderFactory().Create(state, module.ProjectId);

                Assert.AreEqual(expectedResult, !conflictFinder.IsConflictingModuleName(interfaceName));
            }
        }