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); }
public void RoslynPlugin_GenerateForMultiLevelAnalyzers_Succeeds() { // Arrange TestLogger logger = new TestLogger(); string outputDir = TestUtils.CreateTestDirectory(TestContext, ".out"); // Create a valid analyzer package RoslynAnalyzer34.CSharpAnalyzer analyzer = new RoslynAnalyzer34.CSharpAnalyzer(); // Parent and children all have analyzers, expecting plugins for all three 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 targetPkg = AddPackage(fakeRemotePkgMgr, "Empty.Parent", "1.0.0", analyzer.GetType().Assembly.Location, child1, child2); 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, targetPkg); CheckJarGeneratedForPackage(outputDir, analyzer, child1); CheckJarGeneratedForPackage(outputDir, analyzer, child2); AssertJarsGenerated(outputDir, 3); }