コード例 #1
0
        public void InspectionName()
        {
            const string inspectionName = "IllegalAnnotationInspection";
            var          inspection     = new IllegalAnnotationInspection(null);

            Assert.AreEqual(inspectionName, inspection.Name);
        }
コード例 #2
0
        public void GeneralAnnotationOnLabel_NoResult()
        {
            const string inputCode = @"
Option Explicit
Option Private Module

Public foo As Long

Public Sub Test2()
    Dim a As Long
    '@Ignore 
label: 
    a =15
End Sub
";
            var          vbe       = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _);

            using (var state = MockParser.CreateAndParse(vbe.Object))
            {
                var inspection        = new IllegalAnnotationInspection(state);
                var inspector         = InspectionsHelper.GetInspector(inspection);
                var inspectionResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result;

                Assert.IsFalse(inspectionResults.Any());
            }
        }
コード例 #3
0
        public void GivenOneIlegalModuleAnnotationAcrossModules_OneResult()
        {
            const string inputCode1 = @"
Option Explicit
'@Folder(""Legal"")

Sub DoSomething()
'@Folder(""Illegal"")
End Sub
";
            const string inputCode2 = @"
Option Explicit
'@Folder(""Legal"")
";
            var          vbe        = MockVbeBuilder.BuildFromStdModules(("Module1", inputCode1), ("Module2", inputCode2));

            using (var state = MockParser.CreateAndParse(vbe.Object))
            {
                var inspection        = new IllegalAnnotationInspection(state);
                var inspector         = InspectionsHelper.GetInspector(inspection);
                var inspectionResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result;

                Assert.AreEqual(1, inspectionResults.Count());
            }
        }
コード例 #4
0
        public void VariableAnnotationAboveModuleAnnotationAboveVariableAnnotation_NoResult()
        {
            const string inputCode = @"
Option Explicit
Option Private Module

'@Obsolete 
'@TestModule
Public Sub Test1()
End Sub

Public Sub Test2()
End Sub
";
            var          vbe       = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _);

            using (var state = MockParser.CreateAndParse(vbe.Object))
            {
                var inspection        = new IllegalAnnotationInspection(state);
                var inspector         = InspectionsHelper.GetInspector(inspection);
                var inspectionResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result;

                Assert.AreEqual(0, inspectionResults.Count());
            }
        }
コード例 #5
0
        public void ModuleAnnotationOnIdentifierBelowDeclarationsSection_OneResult()
        {
            const string inputCode = @"
Option Explicit
Option Private Module

Public foo As Long

Public Sub Test2()
    Dim a As Long
    '@TestModule
    a = foo
End Sub
";
            var          vbe       = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _);

            using (var state = MockParser.CreateAndParse(vbe.Object))
            {
                var inspection        = new IllegalAnnotationInspection(state);
                var inspector         = InspectionsHelper.GetInspector(inspection);
                var inspectionResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result;

                Assert.AreEqual(1, inspectionResults.Count());
            }
        }
コード例 #6
0
        public void MemberAnnotationBelowLastMember_OneResult()
        {
            const string inputCode = @"
Option Explicit
Option Private Module

'@TestModule _

'@TestMethod
Public Sub Test1() 
End Sub

Public Sub Test2()
End Sub
'@Description ""Test""
";
            var          vbe       = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _);

            using (var state = MockParser.CreateAndParse(vbe.Object))
            {
                var inspection        = new IllegalAnnotationInspection(state);
                var inspector         = InspectionsHelper.GetInspector(inspection);
                var inspectionResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result;

                Assert.AreEqual(1, inspectionResults.Count());
            }
        }
コード例 #7
0
        public void MemberAnnotationAboveLaterMember_NoResult()
        {
            const string inputCode = @"
Option Explicit
Option Private Module

Public Sub Test1()
End Sub

'@TestMethod _

Public Sub Test2()
End Sub
";
            var          vbe       = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _);

            using (var state = MockParser.CreateAndParse(vbe.Object))
            {
                var inspection        = new IllegalAnnotationInspection(state);
                var inspector         = InspectionsHelper.GetInspector(inspection);
                var inspectionResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result;

                Assert.IsFalse(inspectionResults.Any());
            }
        }
コード例 #8
0
        public void FirstMemberAnnotation_IsNotIllegal_InMultipleModules()
        {
            const string inputCode1 =
                @"'@TestModule
'@Folder(""Test"")
Option Explicit

'@ModuleInitialize
Public Sub ModuleInitializeLegal()
End Sub";
            const string inputCode2 =
                @"'@TestModule
'@Folder(""Test"")
Option Explicit

'@ModuleInitialize
Public Sub ModuleInitializeAlsoLegal()
End Sub";

            var vbe = MockVbeBuilder.BuildFromStdModules(("Module1", inputCode1), ("Module2", inputCode2));

            using (var state = MockParser.CreateAndParse(vbe.Object))
            {
                var inspection        = new IllegalAnnotationInspection(state);
                var inspector         = InspectionsHelper.GetInspector(inspection);
                var inspectionResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result;

                Assert.IsFalse(inspectionResults.Any());
            }
        }
コード例 #9
0
        public void GivenTestModule_NoResult()
        {
            const string inputCode = @"
Option Explicit

Option Private Module

'@TestModule
'@Folder(""Tests"")

Private Assert As Object
Private Fakes As Object

'@ModuleInitialize
Public Sub ModuleInitialize()
    'this method runs once per module.
    Set Assert = CreateObject(""Rubberduck.AssertClass"")
    Set Fakes = CreateObject(""Rubberduck.FakesProvider"")
End Sub

'@ModuleCleanup
Public Sub ModuleCleanup()
    'this method runs once per module.
    Set Assert = Nothing
    Set Fakes = Nothing
End Sub

'@TestInitialize
Public Sub TestInitialize()
    'this method runs before every test in the module.
End Sub

'@TestCleanup
Public Sub TestCleanup()
    'this method runs after every test in the module.
End Sub
";

            var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _);

            using (var state = MockParser.CreateAndParse(vbe.Object))
            {
                var inspection        = new IllegalAnnotationInspection(state);
                var inspector         = InspectionsHelper.GetInspector(inspection);
                var inspectionResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result;

                Assert.IsFalse(inspectionResults.Any());
            }
        }
コード例 #10
0
        public void GivenLegalModuleAnnotation_NoResult()
        {
            const string inputCode = @"
Option Explicit
'@PredeclaredId
";

            var vbe   = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _);
            var state = MockParser.CreateAndParse(vbe.Object);

            var inspection        = new IllegalAnnotationInspection(state);
            var inspector         = InspectionsHelper.GetInspector(inspection);
            var inspectionResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result;

            Assert.IsFalse(inspectionResults.Any());
        }
コード例 #11
0
        public void NoAnnotation_NoResult()
        {
            const string inputCode =
                @"Public Sub Foo()
    Const const1 As Integer = 9
End Sub";

            var vbe   = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _);
            var state = MockParser.CreateAndParse(vbe.Object);

            var inspection        = new IllegalAnnotationInspection(state);
            var inspector         = InspectionsHelper.GetInspector(inspection);
            var inspectionResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result;

            Assert.IsFalse(inspectionResults.Any());
        }
コード例 #12
0
        public void MultipleFolderAnnotations_ReturnsResult()
        {
            const string inputCode =
                @"Option Explicit
'@Folder ""Foo.Bar""
'@Folder ""Biz.Buz""
Public Sub Foo()
End Sub";

            var vbe   = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _);
            var state = MockParser.CreateAndParse(vbe.Object);

            var inspection        = new IllegalAnnotationInspection(state);
            var inspector         = InspectionsHelper.GetInspector(inspection);
            var inspectionResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result;

            Assert.AreEqual(1, inspectionResults.Count());
        }
コード例 #13
0
        public void CorrectTestModuleAnnotation_NoResult()
        {
            const string inputCode = @"
Option Explicit
Option Private Module

'@TestModule
'@Folder(""Tests"")

Private Assert As Object
Private Fakes As Object

Public Sub Test1()
End Sub
";
            var          vbe       = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _);
            var          state     = MockParser.CreateAndParse(vbe.Object);

            var inspection        = new IllegalAnnotationInspection(state);
            var inspector         = InspectionsHelper.GetInspector(inspection);
            var inspectionResults = inspector.FindIssuesAsync(state, CancellationToken.None).Result;

            Assert.IsFalse(inspectionResults.Any());
        }
コード例 #14
0
        public void InspectionType()
        {
            var inspection = new IllegalAnnotationInspection(null);

            Assert.AreEqual(CodeInspectionType.RubberduckOpportunities, inspection.InspectionType);
        }