Пример #1
0
        public void Preview_EditPropertyIdentifier(EncapsulateFieldStrategy strategy)
        {
            var inputCode =
                $@"Option Explicit

Public mTest As Long
";

            var vbe = MockVbeBuilder.BuildFromSingleModule(inputCode, ComponentType.StandardModule, out _);

            (RubberduckParserState state, IRewritingManager rewritingManager) = MockParser.CreateAndParseWithRewritingManager(vbe.Object);
            using (state)
            {
                var resolver = Support.SetupResolver(state, rewritingManager);

                var target       = state.DeclarationFinder.MatchName("mTest").First();
                var modelfactory = resolver.Resolve <IEncapsulateFieldModelFactory>();
                var model        = modelfactory.Create(target);

                model.EncapsulateFieldStrategy = strategy;
                var field = model["mTest"];
                field.PropertyIdentifier = "ATest";

                var previewProvider = resolver.Resolve <EncapsulateFieldPreviewProvider>();

                var firstPreview = previewProvider.Preview(model);
                StringAssert.Contains("Property Get ATest", firstPreview);

                field.PropertyIdentifier = "BTest";
                var secondPreview = previewProvider.Preview(model);
                StringAssert.Contains("Property Get BTest", secondPreview);
                StringAssert.DoesNotContain("Property Get ATest", secondPreview);
            }
        }
Пример #2
0
        public void Preview_IncludeEndOfChangesMarker(EncapsulateFieldStrategy strategy)
        {
            var inputCode =
                $@"Option Explicit

Public mTest As Long
";

            var vbe = MockVbeBuilder.BuildFromSingleModule(inputCode, ComponentType.StandardModule, out _);

            (RubberduckParserState state, IRewritingManager rewritingManager) = MockParser.CreateAndParseWithRewritingManager(vbe.Object);
            using (state)
            {
                var target = state.DeclarationFinder.MatchName("mTest").First();

                var resolver        = Support.SetupResolver(state, rewritingManager, null);
                var modelfactory    = resolver.Resolve <IEncapsulateFieldModelFactory>();
                var previewProvider = resolver.Resolve <EncapsulateFieldPreviewProvider>();

                var model = modelfactory.Create(target);

                model.EncapsulateFieldStrategy = strategy;

                var previewResult = previewProvider.Preview(model);

                StringAssert.Contains(RubberduckUI.EncapsulateField_PreviewMarker, previewResult);
            }
        }
Пример #3
0
 public IEncapsulateFieldConflictFinder ConflictDetector(EncapsulateFieldStrategy strategy, IDeclarationFinderProvider declarationFinderProvider)
 {
     if (strategy == EncapsulateFieldStrategy.UseBackingFields)
     {
         return(new UseBackingFieldsStrategyConflictFinder(declarationFinderProvider, _candidates, _udtMemberCandidates));
     }
     return(new ConvertFieldsToUDTMembersStrategyConflictFinder(declarationFinderProvider, _candidates, _udtMemberCandidates, _objectStateUDTs));
 }