private string ApplyQuickFixToFirstInspectionResultForImplicitWorksheetInspection(string inputCode) { var inputModule = ("Sheet1", inputCode, ComponentType.Document); var vbe = MockVbeBuilder.BuildFromModules(inputModule, ReferenceLibrary.Excel).Object; var(state, rewriteManager) = MockParser.CreateAndParseWithRewritingManager(vbe); using (state) { var documentModule = state.DeclarationFinder.UserDeclarations(DeclarationType.Document) .OfType <DocumentModuleDeclaration>() .Single(); documentModule.AddSupertypeName("Worksheet"); var inspection = new ImplicitContainingWorksheetReferenceInspection(state); var inspectionResults = inspection.GetInspectionResults(CancellationToken.None); var rewriteSession = rewriteManager.CheckOutCodePaneSession(); var quickFix = QuickFix(state); var resultToFix = inspectionResults.First(); quickFix.Fix(resultToFix, rewriteSession); var module = state.DeclarationFinder.AllModules.First(qmn => qmn.ComponentName == "Sheet1"); return(rewriteSession.CheckOutModuleRewriter(module).GetText()); } }
public void Field_ConversionFunctions_OtherModule(string vbaFunc, string expectedType) { var targetName = "mTest"; var inputCode = $@" Public mTest "; var assigningModuleName = "AssigningModule"; var assigningModuleCode = $@" Private Sub Test(arg As String) mTest = {vbaFunc}(arg) End Sub "; var modules = new List <(string name, string content, ComponentType componentType)>() { (MockVbeBuilder.TestModuleName, inputCode, ComponentType.StandardModule), (assigningModuleName, assigningModuleCode, ComponentType.StandardModule) }; var vbe = MockVbeBuilder.BuildFromModules(modules, new ReferenceLibrary[] { ReferenceLibrary.VBA }); var refactoredCode = RefactoredCode(vbe.Object, state => TestModel(state, NameAndDeclarationTypeTuple(targetName), (model) => model)); StringAssert.Contains($"{targetName} As {expectedType}", refactoredCode[MockVbeBuilder.TestModuleName]); }
public void ImplicitActiveWorkbookReference_ReportsInWorksheetModules() { const string inputCode = @" Sub foo() Dim sheet As Worksheet Set sheet = Worksheets(""Sheet1"") End Sub"; var module = ("Sheet1", inputCode, ComponentType.Document); var vbe = MockVbeBuilder.BuildFromModules(module, ReferenceLibrary.Excel).Object; using (var state = MockParser.CreateAndParse(vbe)) { var documentModule = state.DeclarationFinder.UserDeclarations(DeclarationType.Document) .OfType <DocumentModuleDeclaration>() .Single(); documentModule.AddSupertypeName("Worksheet"); var inspection = InspectionUnderTest(state); var inspectionResults = inspection.GetInspectionResults(CancellationToken.None); Assert.AreEqual(1, inspectionResults.Count()); } }