public void SheetAccessedUsingString_QuickFixWorks_AssigningSheetToVariable() { const string inputCode = @" Public Sub Foo() Dim ws As Worksheet Set ws = ThisWorkbook.Worksheets(""Sheet1"") ws.Cells(1, 1) = ""foo"" Bar ws End Sub Public Sub Bar(ws As Worksheet) End Sub"; const string expectedCode = @" Public Sub Foo() Sheet1.Cells(1, 1) = ""foo"" Bar Sheet1 End Sub Public Sub Bar(ws As Worksheet) End Sub"; using (var state = ArrangeParserAndParse(inputCode, out var component)) { var inspection = new SheetAccessedUsingStringInspection(state); var inspectionResults = inspection.GetInspectionResults(CancellationToken.None); new AccessSheetUsingCodeNameQuickFix(state).Fix(inspectionResults.First()); Assert.AreEqual(expectedCode, state.GetRewriter(component).GetText()); } }
public void SheetAccessedUsingString_DoesNotReturnResult_NoSheetWithGivenNameExists() { const string inputCode = @"Public Sub Foo() ThisWorkbook.Worksheets(""BadName"").Range(""A1"") = ""Foo"" ThisWorkbook.Sheets(""BadName"").Range(""A1"") = ""Foo"" End Sub"; using (var state = ArrangeParserAndParse(inputCode)) { var inspection = new SheetAccessedUsingStringInspection(state); var inspectionResults = inspection.GetInspectionResults(CancellationToken.None); Assert.AreEqual(0, inspectionResults.Count()); } }
public void SheetAccessedUsingString_DoesNotReturnResult_AccessingUsingWorkbooksProperty() { const string inputCode = @"Public Sub Foo() Workbooks(""Foo"").Worksheets(""Sheet1"").Range(""A1"") = ""Foo"" Workbooks(""Foo"").Sheets(""Sheet1"").Range(""A1"") = ""Foo"" End Sub"; using (var state = ArrangeParserAndParse(inputCode)) { var inspection = new SheetAccessedUsingStringInspection(state); var inspectionResults = inspection.GetInspectionResults(CancellationToken.None); Assert.AreEqual(0, inspectionResults.Count()); } }
public void SheetAccessedUsingString_ReturnsResult_AccessingUsingApplicationModule() { const string inputCode = @"Public Sub Foo() Application.Worksheets(""Sheet1"").Range(""A1"") = ""Foo"" Application.Sheets(""Sheet1"").Range(""A1"") = ""Foo"" End Sub"; using (var state = ArrangeParserAndParse(inputCode)) { var inspection = new SheetAccessedUsingStringInspection(state); var inspectionResults = inspection.GetInspectionResults(CancellationToken.None); Assert.AreEqual(2, inspectionResults.Count()); } }
public void SheetAccessedUsingString_DoesNotReturnResult_SheetWithGivenNameExistsInAnotherProject() { const string inputCode = @"Public Sub Foo() ThisWorkbook.Worksheets(""SheetFromOtherProject"").Range(""A1"") = ""Foo"" ThisWorkbook.Sheets(""SheetFromOtherProject"").Range(""A1"") = ""Foo"" End Sub"; // Referenced project is created inside helper method using (var state = ArrangeParserAndParse(inputCode)) { var inspection = new SheetAccessedUsingStringInspection(state); var inspectionResults = inspection.GetInspectionResults(CancellationToken.None); Assert.AreEqual(0, inspectionResults.Count()); } }
public void SheetAccessedUsingString_QuickFixWorks_UsingSheetThroughGlobalModule() { const string inputCode = @" Public Sub Foo() Sheets(""Sheet1"").Range(""A1"") = ""foo"" End Sub"; const string expectedCode = @" Public Sub Foo() Sheet1.Range(""A1"") = ""foo"" End Sub"; using (var state = ArrangeParserAndParse(inputCode, out var component)) { var inspection = new SheetAccessedUsingStringInspection(state); var inspectionResults = inspection.GetInspectionResults(CancellationToken.None); new AccessSheetUsingCodeNameQuickFix(state).Fix(inspectionResults.First()); Assert.AreEqual(expectedCode, state.GetRewriter(component).GetText()); } }