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); }
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)); }
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); }
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); }
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); }
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); }