public void EmptyElseBlock_QuickFixRemoveInLineIfThenElse() { const string inputCode = @"Sub Foo() If True Then Else End Sub"; const string expectedCode = @"Sub Foo() If Not True Then End Sub"; var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out var component); var state = MockParser.CreateAndParse(vbe.Object); var inspection = new EmptyConditionBlockInspection(state); var inspector = InspectionsHelper.GetInspector(inspection); var actualResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result; var inspectionToFix = actualResults.First(); new RemoveEmptyConditionBlockQuickFix(state).Fix(inspectionToFix); var actualCode = state.GetRewriter(component).GetText(); Assert.AreEqual(expectedCode, actualCode); }
public void InspectionName() { const string inspectionName = nameof(EmptyConditionBlockInspection); var inspection = new EmptyConditionBlockInspection(null); Assert.AreEqual(inspectionName, inspection.Name); }
public void EmptyIfBlock_QuickFixRemovesIf_InvertsIf_Not_NoWhitespace() { const string inputCode = @"Sub Foo() If Not(True) Then Else End If End Sub"; const string expectedRewrite = @"Sub Foo() If (True) Then End If End Sub"; var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out var component); var state = MockParser.CreateAndParse(vbe.Object); var inspection = new EmptyConditionBlockInspection(state); var inspector = InspectionsHelper.GetInspector(inspection); var inspectionResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result; var emptyIfInspection = inspectionResults.Skip(1).First(); new RemoveEmptyConditionBlockQuickFix(state).Fix(emptyIfInspection); var actualRewrite = state.GetRewriter(component).GetText(); Assert.AreEqual(expectedRewrite, actualRewrite); }
public void EmptyIfBlock_QuickFixRemovesIf_HasVariable_WithComment() { const string inputCode = @"Sub Foo() If True Then ' comment Dim d Else Dim b b = 0 End If End Sub"; const string expectedRewrite = @"Sub Foo() Dim d If Not True Then ' comment Dim b b = 0 End If End Sub"; var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out var component); var state = MockParser.CreateAndParse(vbe.Object); var inspection = new EmptyConditionBlockInspection(state); var inspector = InspectionsHelper.GetInspector(inspection); var inspectionResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result; new RemoveEmptyConditionBlockQuickFix(state).Fix(inspectionResults.First()); var actualRewrite = state.GetRewriter(component).GetText(); Assert.AreEqual(expectedRewrite, actualRewrite); }
public void EmptyIfBlock_FiresOnEmptyIfBlock() { const string inputCode = @"Sub Foo() If True Then End If End Sub"; var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _); var state = MockParser.CreateAndParse(vbe.Object); var inspection = new EmptyConditionBlockInspection(state); var inspector = InspectionsHelper.GetInspector(inspection); var inspectionResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result; Assert.AreEqual(1, inspectionResults.Count()); }
public void NonEmptyIfBlock_FindsNoResults() { const string inputcode = @"Sub Foo() If True Then Dim a as String a = ""a"" End If End Sub"; var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputcode, out _); var state = MockParser.CreateAndParse(vbe.Object); var inspection = new EmptyConditionBlockInspection(state); var inspector = InspectionsHelper.GetInspector(inspection); var actualResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result; Assert.IsFalse(actualResults.Any()); }
public void EmptyIfBlock_SingleLineIfBlockHasExecutableStatement() { const string inputCode = @"Sub Foo() If True Then Bar End Sub Sub Bar() End Sub"; var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _); var state = MockParser.CreateAndParse(vbe.Object); var inspection = new EmptyConditionBlockInspection(state); var inspector = InspectionsHelper.GetInspector(inspection); var inspectionResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result; Assert.IsFalse(inspectionResults.Any()); }
public void EmptyElseBlock_HasExecutableStatement() { const string inputCode = @"Sub Foo() If True Then Else Dim d d = 0 End If End Sub"; var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _); var state = MockParser.CreateAndParse(vbe.Object); var inspection = new EmptyConditionBlockInspection(state); var inspector = InspectionsHelper.GetInspector(inspection); var actualResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result; const int expectedCount = 1; Assert.AreEqual(expectedCount, actualResults.Count()); }
public void InspectionType() { var inspection = new EmptyConditionBlockInspection(null); Assert.AreEqual(CodeInspectionType.CodeQualityIssues, inspection.InspectionType); }