コード例 #1
0
        public void RoslynPlugin_GenerateForDependencyAnalyzers_Succeeds()
        {
            // Arrange
            TestLogger logger           = new TestLogger();
            string     outputDir        = TestUtils.CreateTestDirectory(TestContext, ".out");
            string     dummyContentFile = TestUtils.CreateTextFile("dummy.txt", outputDir, "non-analyzer content file");

            // Create a valid analyzer package
            RoslynAnalyzer34.CSharpAnalyzer analyzer = new RoslynAnalyzer34.CSharpAnalyzer();

            string          fakeRemoteNuGetDir = TestUtils.CreateTestDirectory(TestContext, ".fakeRemoteNuGet");
            IPackageManager fakeRemotePkgMgr   = CreatePackageManager(fakeRemoteNuGetDir);
            //IPackage child1 = AddPackage(fakeRemotePkgMgr, "Analyzer.Child1", "1.1.0", analyzer.GetType().Assembly.Location);
            //IPackage child2 = AddPackage(fakeRemotePkgMgr, "Analyzer.Child2", "1.2.0", analyzer.GetType().Assembly.Location);
            IPackage childV34  = AddPackage(fakeRemotePkgMgr, "Analyzer.Child34", "3.4.0", analyzer.GetType().Assembly.Location);
            IPackage targetPkg = AddPackage(fakeRemotePkgMgr, "Empty.Parent", "1.0.0", dummyContentFile, /*child1, child2,*/ childV34);

            string localPackageDestination = TestUtils.CreateTestDirectory(TestContext, ".localpackages");

            // Act
            NuGetPackageHandler     nuGetHandler = new NuGetPackageHandler(fakeRemotePkgMgr.LocalRepository, localPackageDestination, logger);
            AnalyzerPluginGenerator apg          = new AnalyzerPluginGenerator(nuGetHandler, logger);
            ProcessedArgs           args         = new ProcessedArgs(targetPkg.Id, targetPkg.Version, "cs", null, false,
                                                                     true /* generate plugins for dependencies with analyzers*/, outputDir, null);
            bool result = apg.Generate(args);

            // Assert
            result.Should().BeTrue();

            // Expecting one plugin per dependency with analyzers

            /*CheckJarGeneratedForPackage(outputDir, analyzer, child1);
             * CheckJarGeneratedForPackage(outputDir, analyzer, child2);
             */
            CheckJarGeneratedForPackage(outputDir, analyzer, childV34);
            AssertJarsGenerated(outputDir, 2);
        }
コード例 #2
0
        public void RoslynPlugin_GenerateForValidAnalyzer_Succeeds()
        {
            // Arrange
            TestLogger logger    = new TestLogger();
            string     outputDir = TestUtils.CreateTestDirectory(TestContext, ".out");

            // Create a valid analyzer package
            RoslynAnalyzer34.CSharpAnalyzer analyzer = new RoslynAnalyzer34.CSharpAnalyzer();

            string          packageId          = "Analyzer1.Pkgid1"; // package id is not all lowercase
            string          fakeRemoteNuGetDir = TestUtils.CreateTestDirectory(TestContext, ".fakeRemoteNuGet");
            IPackageManager fakeRemotePkgMgr   = CreatePackageManager(fakeRemoteNuGetDir);
            IPackage        analyzerPkg        = AddPackage(fakeRemotePkgMgr, packageId, "1.0.2", analyzer.GetType().Assembly.Location);

            string localPackageDestination = TestUtils.CreateTestDirectory(TestContext, ".localpackages");

            // Act
            NuGetPackageHandler     nuGetHandler = new NuGetPackageHandler(fakeRemotePkgMgr.LocalRepository, localPackageDestination, logger);
            AnalyzerPluginGenerator apg          = new AnalyzerPluginGenerator(nuGetHandler, logger);
            ProcessedArgs           args         = new ProcessedArgs(packageId, new SemanticVersion("1.0.2"), "cs", null, false, false, outputDir, null);
            bool result = apg.Generate(args);

            // Assert
            result.Should().BeTrue();

            // Expecting one plugin per dependency with analyzers
            CheckJarGeneratedForPackage(outputDir, analyzer, analyzerPkg);
            AssertJarsGenerated(outputDir, 1);
        }