Exemple #1
0
        public async Task UpdatePackageVersionIndexAsync_WhenLastVersionRemoved_RemovesIndex()
        {
            var version                    = NuGetVersion.Parse("1.0.0");
            var catalogToDnxStorage        = new MemoryStorage();
            var catalogToDnxStorageFactory = new TestStorageFactory(name => catalogToDnxStorage.WithName(name));
            var maker = new DnxMaker(catalogToDnxStorageFactory);

            await maker.UpdatePackageVersionIndexAsync(_packageId, v => v.Add(version), CancellationToken.None);

            var storageForPackage = (MemoryStorage)catalogToDnxStorageFactory.Create(_packageId);
            var indexJsonUri      = new Uri(storageForPackage.BaseAddress, "index.json");
            var indexJson         = await storageForPackage.LoadAsync(indexJsonUri, CancellationToken.None);

            Assert.NotNull(indexJson);
            Assert.Equal(1, catalogToDnxStorage.Content.Count);
            Assert.Equal(1, storageForPackage.Content.Count);

            await maker.UpdatePackageVersionIndexAsync(_packageId, v => v.Remove(version), CancellationToken.None);

            indexJson = await storageForPackage.LoadAsync(indexJsonUri, CancellationToken.None);

            Assert.Null(indexJson);
            Assert.Equal(0, catalogToDnxStorage.Content.Count);
            Assert.Equal(0, storageForPackage.Content.Count);
        }
Exemple #2
0
        public async Task UpdatePackageVersionIndexAsync_WithMultipleVersions_SortsVersion()
        {
            var unorderedVersions = new[]
            {
                NuGetVersion.Parse("3.0.0"),
                NuGetVersion.Parse("1.1.0"),
                NuGetVersion.Parse("1.0.0"),
                NuGetVersion.Parse("1.0.1"),
                NuGetVersion.Parse("2.0.0"),
                NuGetVersion.Parse("1.0.2")
            };
            var catalogToDnxStorage        = new MemoryStorage();
            var catalogToDnxStorageFactory = new TestStorageFactory(name => catalogToDnxStorage.WithName(name));
            var maker = new DnxMaker(catalogToDnxStorageFactory);

            await maker.UpdatePackageVersionIndexAsync(_packageId, v => v.UnionWith(unorderedVersions), CancellationToken.None);

            var storageForPackage = (MemoryStorage)catalogToDnxStorageFactory.Create(_packageId);
            var indexJsonUri      = new Uri(storageForPackage.BaseAddress, "index.json");
            var indexJson         = await storageForPackage.LoadAsync(indexJsonUri, CancellationToken.None);

            var indexObject = JObject.Parse(indexJson.GetContentString());
            var versions    = indexObject["versions"].ToObject <string[]>();

            Assert.Equal(1, catalogToDnxStorage.Content.Count);
            Assert.Equal(1, storageForPackage.Content.Count);
            Assert.Collection(
                versions,
                version => Assert.Equal(unorderedVersions[2].ToNormalizedString(), version),
                version => Assert.Equal(unorderedVersions[3].ToNormalizedString(), version),
                version => Assert.Equal(unorderedVersions[5].ToNormalizedString(), version),
                version => Assert.Equal(unorderedVersions[1].ToNormalizedString(), version),
                version => Assert.Equal(unorderedVersions[4].ToNormalizedString(), version),
                version => Assert.Equal(unorderedVersions[0].ToNormalizedString(), version));
        }
Exemple #3
0
        public async Task UpdatePackageVersionIndexAsync_WithValidVersion_CreatesIndex(string version)
        {
            var catalogToDnxStorage        = new MemoryStorage();
            var catalogToDnxStorageFactory = new TestStorageFactory(name => catalogToDnxStorage.WithName(name));
            var maker             = new DnxMaker(catalogToDnxStorageFactory);
            var normalizedVersion = NuGetVersionUtility.NormalizeVersion(version);

            await maker.UpdatePackageVersionIndexAsync(_packageId, v => v.Add(NuGetVersion.Parse(version)), CancellationToken.None);

            var storageForPackage = (MemoryStorage)catalogToDnxStorageFactory.Create(_packageId);
            var indexJsonUri      = new Uri(storageForPackage.BaseAddress, "index.json");
            var indexJson         = await storageForPackage.LoadAsync(indexJsonUri, CancellationToken.None);

            var indexObject     = JObject.Parse(indexJson.GetContentString());
            var versions        = indexObject["versions"].ToObject <string[]>();
            var expectedContent = GetExpectedIndexJsonContent(normalizedVersion);

            Assert.Equal(1, catalogToDnxStorage.Content.Count);
            Assert.Equal(1, storageForPackage.Content.Count);

            Verify(catalogToDnxStorage, indexJsonUri, expectedContent, _expectedPackageVersionIndexJsonCacheControl, _expectedPackageVersionIndexJsonContentType);
            Verify(storageForPackage, indexJsonUri, expectedContent, _expectedPackageVersionIndexJsonCacheControl, _expectedPackageVersionIndexJsonContentType);

            Assert.Equal(new[] { normalizedVersion }, versions);
        }
Exemple #4
0
        public async Task HasPackageInIndexAsync_WhenPackageIdExistsButVersionDoesNotExist_ReturnsFalse()
        {
            var catalogToDnxStorage        = new MemoryStorage();
            var catalogToDnxStorageFactory = new TestStorageFactory(name => catalogToDnxStorage.WithName(name));
            var maker = new DnxMaker(catalogToDnxStorageFactory);

            await maker.UpdatePackageVersionIndexAsync(_packageId, v => v.Add(NuGetVersion.Parse("1.0.0")), CancellationToken.None);

            var storageForPackage = (MemoryStorage)catalogToDnxStorageFactory.Create(_packageId);

            var hasPackageInIndex = await maker.HasPackageInIndexAsync(storageForPackage, _packageId, "2.0.0", CancellationToken.None);

            Assert.False(hasPackageInIndex);
        }
Exemple #5
0
        public async Task UpdatePackageVersionIndexAsync_WithNoVersions_DoesNotCreateIndex()
        {
            var catalogToDnxStorage        = new MemoryStorage();
            var catalogToDnxStorageFactory = new TestStorageFactory(name => catalogToDnxStorage.WithName(name));
            var maker = new DnxMaker(catalogToDnxStorageFactory);

            await maker.UpdatePackageVersionIndexAsync(_packageId, v => { }, CancellationToken.None);

            var storageForPackage = (MemoryStorage)catalogToDnxStorageFactory.Create(_packageId);
            var indexJsonUri      = new Uri(storageForPackage.BaseAddress, "index.json");
            var indexJson         = await storageForPackage.LoadAsync(indexJsonUri, CancellationToken.None);

            Assert.Null(indexJson);
            Assert.Equal(0, catalogToDnxStorage.Content.Count);
            Assert.Equal(0, storageForPackage.Content.Count);
        }
Exemple #6
0
        public async Task HasPackageInIndexAsync_WhenPackageIdAndVersionExist_ReturnsTrue()
        {
            var catalogToDnxStorage        = new MemoryStorage();
            var catalogToDnxStorageFactory = new TestStorageFactory(name => catalogToDnxStorage.WithName(name));
            var maker = new DnxMaker(catalogToDnxStorageFactory);

            const string version = "1.0.0";

            await maker.UpdatePackageVersionIndexAsync(_packageId, v => v.Add(NuGetVersion.Parse(version)), CancellationToken.None);

            var storageForPackage = (MemoryStorage)catalogToDnxStorageFactory.Create(_packageId);

            var hasPackageInIndex = await maker.HasPackageInIndexAsync(storageForPackage, _packageId, version, CancellationToken.None);

            Assert.True(hasPackageInIndex);
        }