public async Task Symbols_ValidationVerifyMissingAssemblyIndexCausesFailure(string isSymbolsString) { var isSymbols = bool.Parse(isSymbolsString); using (var testContext = new SleetTestContext()) { var context = testContext.SleetContext; context.SourceSettings.SymbolsEnabled = true; var service = new Symbols(context); // Add packages await AddPackageAsync(isSymbols, testContext, service); // Corrupt feed var path = SymbolsIndexUtility.GetAssemblyToPackageIndexPath("a.dll", "A7F83EF08000"); var assemblyPackageIndex = new AssetIndexFile(testContext.SleetContext, path, new PackageIdentity("a", NuGetVersion.Parse("1.0.0"))); var exists = await assemblyPackageIndex.File.Exists(context.Log, context.Token); exists.Should().BeTrue(); assemblyPackageIndex.File.Delete(context.Log, context.Token); // Validate var messages = await service.ValidateAsync(); var hasErrors = messages.Any(e => e.Level == LogLevel.Error); hasErrors.Should().BeTrue(); } }
public async Task Symbols_RemovePackageVerifySymbolsRemoved() { using (var testContext = new SleetTestContext()) { var context = testContext.SleetContext; context.SourceSettings.SymbolsEnabled = true; // Create package var identity = new PackageIdentity("a", NuGetVersion.Parse("1.0.0")); var pkgA = new TestNupkg("a", "1.0.0"); pkgA.Files.Clear(); pkgA.AddFile("lib/net45/a.dll", TestUtility.GetResource("SymbolsTestAdll").GetBytes()); pkgA.AddFile("lib/net45/a.pdb", TestUtility.GetResource("SymbolsTestApdb").GetBytes()); pkgA.Nuspec.IsSymbolPackage = true; var zip = pkgA.Save(testContext.Packages); var pkgInput = testContext.GetPackageInput(zip); // File path var nupkgPath = Path.Combine(testContext.Target, ToLocalPath(SymbolsIndexUtility.GetSymbolsNupkgPath(identity))); var detailsPath = Path.Combine(testContext.Target, ToLocalPath(SymbolsIndexUtility.GetSymbolsPackageDetailsPath(identity))); var dllPath = Path.Combine(testContext.Target, "symbols", "a.dll", "A7F83EF08000", "a.dll"); var dllPackagesJsonPath = Path.Combine(testContext.Target, "symbols", "a.dll", "A7F83EF08000", "packages.json"); var pdbPath = Path.Combine(testContext.Target, "symbols", "a.pdb", "B1680B8315F8485EA0A10F55AF08B565ffffffff", "a.pdb"); var pdbPackagesJsonPath = Path.Combine(testContext.Target, "symbols", "a.pdb", "B1680B8315F8485EA0A10F55AF08B565ffffffff", "packages.json"); var packageAssetsPath = Path.Combine(testContext.Target, ToLocalPath(SymbolsIndexUtility.GetPackageToAssemblyIndexPath(identity))); var files = new List <string> { nupkgPath, detailsPath, dllPath, dllPackagesJsonPath, pdbPath, pdbPackagesJsonPath, packageAssetsPath }; // Init var success = await InitCommand.RunAsync( testContext.SleetContext.LocalSettings, testContext.SleetContext.Source, enableCatalog : true, enableSymbols : true, log : testContext.SleetContext.Log, token : CancellationToken.None); // Push success &= await PushCommand.RunAsync( testContext.SleetContext.LocalSettings, testContext.SleetContext.Source, new List <string>() { zip.FullName }, force : false, skipExisting : false, log : testContext.SleetContext.Log); // Verify files are present files.ForEach(e => File.Exists(e).Should().BeTrue(e)); // Remove success &= await DeleteCommand.RunAsync( testContext.SleetContext.LocalSettings, testContext.SleetContext.Source, "a", "1.0.0", "reason", force : false, log : testContext.SleetContext.Log); // Verify files are gone files.ForEach(e => File.Exists(e).Should().BeFalse(e)); // Validate success &= await ValidateCommand.RunAsync( testContext.SleetContext.LocalSettings, testContext.SleetContext.Source, log : testContext.SleetContext.Log); success.Should().BeTrue(); var testLogger = (TestLogger)testContext.SleetContext.Log; testLogger.GetMessages().Should().Contain("Removing symbols package a.1.0.0"); } }