示例#1
0
        public void ReturnsResultForExpressionOnLeftHandSide()
        {
            const string code    = @"
Public Sub DoSomething()
    [A1] = 42
End Sub
";
            var          builder = new MockVbeBuilder();
            var          project = builder.ProjectBuilder("TestProject", ProjectProtection.Unprotected)
                                   .AddComponent("Module1", ComponentType.StandardModule, code)
                                   .AddReference("VBA", MockVbeBuilder.LibraryPathVBA, 4, 2, true)
                                   .AddReference("Excel", MockVbeBuilder.LibraryPathMsExcel, 1, 8, true)
                                   .Build();
            var vbe      = builder.AddProject(project).Build();
            var mockHost = new Mock <IHostApplication>();

            mockHost.SetupGet(m => m.ApplicationName).Returns("Excel");
            vbe.Setup(m => m.HostApplication()).Returns(() => mockHost.Object);

            using (var state = MockParser.CreateAndParse(vbe.Object))
            {
                var inspection        = new HostSpecificExpressionInspection(state);
                var inspectionResults = inspection.GetInspectionResults(CancellationToken.None);

                Assert.AreEqual(1, inspectionResults.Count());
            }
        }
示例#2
0
        public void InspectionName()
        {
            const string inspectionName = "HostSpecificExpressionInspection";
            var          inspection     = new HostSpecificExpressionInspection(null);

            Assert.AreEqual(inspectionName, inspection.Name);
        }
        public void ReturnsResultForExpressionOnLeftHandSide()
        {
            const string code    = @"
Public Sub DoSomething()
    [A1] = 42
End Sub
";
            var          builder = new MockVbeBuilder();
            var          project = builder.ProjectBuilder("TestProject", ProjectProtection.Unprotected)
                                   .AddComponent("Module1", ComponentType.StandardModule, code)
                                   .AddReference("VBA", MockVbeBuilder.LibraryPathVBA, 4, 2, true)
                                   .AddReference("Excel", MockVbeBuilder.LibraryPathMsExcel, 1, 7, true)
                                   .Build();
            var vbe      = builder.AddProject(project).Build();
            var mockHost = new Mock <IHostApplication>();

            mockHost.SetupGet(m => m.ApplicationName).Returns("Excel");
            vbe.Setup(m => m.HostApplication()).Returns(() => mockHost.Object);

            var parser = MockParser.Create(vbe.Object);

            parser.State.AddTestLibrary("VBA.4.2.xml");
            parser.State.AddTestLibrary("Excel.1.8.xml");
            parser.Parse(new CancellationTokenSource());
            if (parser.State.Status >= ParserState.Error)
            {
                Assert.Inconclusive("Parser Error");
            }

            var inspection        = new HostSpecificExpressionInspection(parser.State);
            var inspectionResults = inspection.GetInspectionResults();

            Assert.AreEqual(1, inspectionResults.Count());
        }
示例#4
0
        public void InspectionName()
        {
            var inspection = new HostSpecificExpressionInspection(null);

            Assert.AreEqual(nameof(HostSpecificExpressionInspection), inspection.Name);
        }