Beispiel #1
0
        public async Task AssetIndexFile_AddAssets()
        {
            using (var testContext = new SleetTestContext())
            {
                var identity = new PackageIdentity("a", NuGetVersion.Parse("1.0.0"));
                var file     = new AssetIndexFile(testContext.SleetContext, "test.json", identity);

                await file.AddAssetsAsync(new[] { new AssetIndexEntry(new Uri("http://tempuri.org/a.json"), new Uri("http://tempuri.org/b.json")) });

                await file.AddSymbolsAssetsAsync(new[] { new AssetIndexEntry(new Uri("http://tempuri.org/x.json"), new Uri("http://tempuri.org/y.json")) });

                var assets = await file.GetAssetsAsync();

                var symbolsAssets = await file.GetSymbolsAssetsAsync();

                assets.Count.Should().Be(1);
                symbolsAssets.Count.Should().Be(1);

                assets.Single().PackageIndex.Should().Be(new Uri("http://tempuri.org/b.json"));
                assets.Single().Asset.Should().Be(new Uri("http://tempuri.org/a.json"));

                symbolsAssets.Single().PackageIndex.Should().Be(new Uri("http://tempuri.org/y.json"));
                symbolsAssets.Single().Asset.Should().Be(new Uri("http://tempuri.org/x.json"));
            }
        }
Beispiel #2
0
        public async Task AssetIndexFile_RemoveAllAssets()
        {
            using (var testContext = new SleetTestContext())
            {
                var identity = new PackageIdentity("a", NuGetVersion.Parse("1.0.0"));
                var file     = new AssetIndexFile(testContext.SleetContext, "test.json", identity);

                var asset    = new AssetIndexEntry(new Uri("http://tempuri.org/a.json"), new Uri("http://tempuri.org/b.json"));
                var symAsset = new AssetIndexEntry(new Uri("http://tempuri.org/x.json"), new Uri("http://tempuri.org/y.json"));

                await file.AddAssetsAsync(new[] { asset });

                await file.AddSymbolsAssetsAsync(new[] { symAsset });

                await file.RemoveAssetsAsync(new[] { asset, symAsset });

                await file.RemoveSymbolsAssetsAsync(new[] { asset, symAsset });

                var assets = await file.GetAssetsAsync();

                var symbolsAssets = await file.GetSymbolsAssetsAsync();

                assets.Should().BeEmpty();
                symbolsAssets.Should().BeEmpty();

                await testContext.SleetContext.Source.Commit(testContext.SleetContext.Log, testContext.SleetContext.Token);

                var path = Path.Combine(testContext.Target, "test.json");
                File.Exists(path).Should().BeFalse();
            }
        }
Beispiel #3
0
        public async Task AssetIndexFile_EmptyFile()
        {
            using (var testContext = new SleetTestContext())
            {
                var identity = new PackageIdentity("a", NuGetVersion.Parse("1.0.0"));
                var file     = new AssetIndexFile(testContext.SleetContext, "test.json", identity);
                await file.InitAsync();

                await testContext.SleetContext.Source.Commit(testContext.SleetContext.Log, testContext.SleetContext.Token);

                var path = Path.Combine(testContext.Target, "test.json");
                File.Exists(path).Should().BeTrue();

                var assets = await file.GetAssetsAsync();

                var symbolsAssets = await file.GetSymbolsAssetsAsync();

                assets.Should().BeEmpty();
                symbolsAssets.Should().BeEmpty();
                file.Package.Should().Be(identity);
            }
        }
Beispiel #4
0
        public async Task Symbols_ValidationVerifyMissingAssemblyIndexEntryCausesFailure(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();

                // Swap package <-> symbols to corrupt
                if (isSymbols)
                {
                    await assemblyPackageIndex.AddAssetsAsync(await assemblyPackageIndex.GetSymbolsAssetsAsync());
                }
                else
                {
                    await assemblyPackageIndex.AddSymbolsAssetsAsync(await assemblyPackageIndex.GetAssetsAsync());
                }

                // Validate
                var messages = await service.ValidateAsync();

                var hasErrors = messages.Any(e => e.Level == LogLevel.Error);

                hasErrors.Should().BeTrue();
            }
        }