public void AnalyzerInstaller_InstallMultiplePackages_Succeeds() { // Arrange // Create dummy NuGet package containing multiple assemblies string fakeRemotePackageSource = TestUtils.CreateTestSpecificFolder(this.TestContext, "fakeNuGetSource"); LocalPackageRepository fakeRemoteRepo = new LocalPackageRepository(fakeRemotePackageSource); CreateAndInstallPackageWithDummyContent(fakeRemoteRepo, "package1", "1.0-rc1", "package1.dll"); CreateAndInstallPackageWithDummyContent(fakeRemoteRepo, "package2", "22.2", "package2.dll"); IEnumerable<NuGetPackageInfo> packages = new NuGetPackageInfo[] { new NuGetPackageInfo() { Id = "package1", Version = "1.0-rc1" }, new NuGetPackageInfo() { Id = "package2", Version = "22.2" } }; string localCacheDir = TestUtils.CreateTestSpecificFolder(this.TestContext, "localInstallCache"); AnalyzerInstaller testSubject = new AnalyzerInstaller(fakeRemotePackageSource, localCacheDir, new TestLogger()); // Act IEnumerable<string> assemblyPaths = testSubject.InstallAssemblies(packages); // Assert AssertExpectedAssembliesReturned(assemblyPaths, "package1.dll", "package2.dll"); }
public void AnalyzerInstaller_InstallMultiFilePackage_Succeeds() { // Arrange // Create dummy NuGet package containing multiple assemblies string fakeRemotePackageSource = TestUtils.CreateTestSpecificFolder(this.TestContext, "fakeNuGetSource"); LocalPackageRepository fakeRemoteRepo = new LocalPackageRepository(fakeRemotePackageSource); PackageBuilder builder = CreatePackageBuilder("simplepackage1", "1.0.0"); AddDummyFile(builder, "test.txt"); // not an assembly AddDummyFile(builder, "\\analyzer\\bbb.dll.xxx"); // not an assembly AddDummyFile(builder, "\\analyzer\\aaa.dll"); AddDummyFile(builder, "\\supporting\\bbb.DLL"); CreateAndInstallPackage(fakeRemoteRepo, builder); IEnumerable<NuGetPackageInfo> packages = new NuGetPackageInfo[] { new NuGetPackageInfo() { Id = "simplepackage1", Version = "1.0.0" } }; string localCacheDir = TestUtils.CreateTestSpecificFolder(this.TestContext, "localInstallCache"); AnalyzerInstaller testSubject = new AnalyzerInstaller(fakeRemotePackageSource, localCacheDir, new TestLogger()); // Act IEnumerable<string> assemblyPaths = testSubject.InstallAssemblies(packages); // Assert AssertExpectedAssembliesReturned(assemblyPaths, "\\analyzer\\aaa.dll", "\\supporting\\bbb.dll"); }
public void AnalyzerInstaller_MissingPackage_Fails() { // Arrange // Create dummy NuGet package with the correct id but different version string fakeRemotePackageSource = TestUtils.CreateTestSpecificFolder(this.TestContext, "fakeNuGetSource"); LocalPackageRepository fakeRemoteRepo = new LocalPackageRepository(fakeRemotePackageSource); CreateAndInstallPackageWithDummyContent(fakeRemoteRepo, "missing.package", "1.0.1", "dummy.txt"); IEnumerable<NuGetPackageInfo> packages = new NuGetPackageInfo[] { new NuGetPackageInfo() { Id = "missing.package", Version = "1.0.0" } }; string localCacheDir = TestUtils.CreateTestSpecificFolder(this.TestContext, "localInstallCache"); AnalyzerInstaller testSubject = new AnalyzerInstaller(fakeRemotePackageSource, localCacheDir, new TestLogger()); // Act and assert AssertException.Expects<InvalidOperationException>(() => testSubject.InstallAssemblies(packages)); }
[Ignore, WorkItem(209)] // https://jira.sonarsource.com/browse/SONARMSBRU-209 - should install analyzer dependencies public void AnalyzerInstaller_InstallPackageWithDependencies_Succeeds() { // Arrange // Create dummy NuGet packages string fakeRemotePackageSource = TestUtils.CreateTestSpecificFolder(this.TestContext, "fakeNuGetSource"); LocalPackageRepository fakeRemoteRepo = new LocalPackageRepository(fakeRemotePackageSource); IPackage level3a = CreateAndInstallPackageWithDummyContent(fakeRemoteRepo, "level3a", "1.1", "\\file\\level3.dll"); IPackage level3b = CreateAndInstallPackageWithDummyContent(fakeRemoteRepo, "level3b", "1.3", "\\file\\not a dll file so should be ignored"); IPackage level2 = CreateAndInstallPackageWithDummyContent(fakeRemoteRepo, "level2a", "2.0", "\\aaa\\bbb\\level2.dll", level3a, level3b); CreateAndInstallPackageWithDummyContent(fakeRemoteRepo, "root.package", "2.1", "\\analyzer\\root.dll", level2); IEnumerable<NuGetPackageInfo> packages = new NuGetPackageInfo[] { new NuGetPackageInfo() { Id = "root.package", Version = "2.1" } }; string localCacheDir = TestUtils.CreateTestSpecificFolder(this.TestContext, "localInstallCache"); AnalyzerInstaller testSubject = new AnalyzerInstaller(fakeRemotePackageSource, localCacheDir, new TestLogger()); // Act IEnumerable<string> assemblyPaths = testSubject.InstallAssemblies(packages); // Assert AssertExpectedAssembliesReturned(assemblyPaths, "\\analyzer\\root.dll", "\\aaa\\bbb\\level2.dll", "\\file\\level3.dll"); }
public void AnalyzerInstaller_NoPackagesSpecified_Succeeds() { // Arrange // No need to create dummy packages string fakeRemotePackageSource = TestUtils.CreateTestSpecificFolder(this.TestContext, "fakeNuGetSource"); IEnumerable<NuGetPackageInfo> packages = new NuGetPackageInfo[] { }; string localCacheDir = TestUtils.CreateTestSpecificFolder(this.TestContext, "localInstallCache"); AnalyzerInstaller testSubject = new AnalyzerInstaller(fakeRemotePackageSource, localCacheDir, new TestLogger()); // Act IEnumerable<string> assemblyPaths = testSubject.InstallAssemblies(packages); // Assert AssertExpectedAssembliesReturned(assemblyPaths /* none */ ); }