public async Task ProvidesUnencodedStringToStorage() { var url = "https://example/reg/测试更新包/0.0.1/0.0.2.json"; var index = await Target.ReadPageAsync(HiveType.Legacy, url); LegacyContainer.Verify(x => x.GetBlobReference("测试更新包/0.0.1/0.0.2.json"), Times.Once); }
public async Task DoesNotDeleteNonExistentBlob() { LegacyBlob.Setup(x => x.ExistsAsync()).ReturnsAsync(false); await Target.DeleteUrlAsync(Hive, ReplicaHives, "https://example/reg/nuget.versioning/1.0.0.json"); LegacyContainer.Verify(x => x.GetBlobReference("nuget.versioning/1.0.0.json"), Times.Once); LegacyBlob.Verify(x => x.ExistsAsync(), Times.Once); LegacyBlob.Verify(x => x.DeleteIfExistsAsync(), Times.Never); }
public async Task DoesNotDeleteNonExistentBlob() { LegacyBlob.Setup(x => x.ExistsAsync()).ReturnsAsync(false); await Target.DeleteIndexAsync(Hive, ReplicaHives, Id); LegacyContainer.Verify(x => x.GetBlobReference("nuget.versioning/index.json"), Times.Once); LegacyBlob.Verify(x => x.ExistsAsync(), Times.Once); LegacyBlob.Verify(x => x.DeleteIfExistsAsync(), Times.Never); }
public async Task DeletesBlobFromHivesAndReplicaHives() { ReplicaHives.Add(HiveType.Gzipped); ReplicaHives.Add(HiveType.SemVer2); await Target.DeleteUrlAsync(Hive, ReplicaHives, "https://example/reg/nuget.versioning/1.0.0.json"); LegacyContainer.Verify(x => x.GetBlobReference("nuget.versioning/1.0.0.json"), Times.Once); GzippedContainer.Verify(x => x.GetBlobReference("nuget.versioning/1.0.0.json"), Times.Once); SemVer2Container.Verify(x => x.GetBlobReference("nuget.versioning/1.0.0.json"), Times.Once); LegacyBlob.Verify(x => x.DeleteIfExistsAsync(), Times.Once); GzippedBlob.Verify(x => x.DeleteIfExistsAsync(), Times.Once); SemVer2Blob.Verify(x => x.DeleteIfExistsAsync(), Times.Once); }
public async Task SerializesPage() { await Target.WriteLeafAsync(Hive, ReplicaHives, Id, Version, Leaf); var json = Encoding.UTF8.GetString(LegacyStream.ToArray()); Assert.Equal("{}", json); LegacyContainer.Verify(x => x.GetBlobReference(It.IsAny <string>()), Times.Once); LegacyContainer.Verify(x => x.GetBlobReference("nuget.versioning/1.0.0.json"), Times.Once); LegacyBlob.Verify(x => x.UploadFromStreamAsync(It.IsAny <Stream>(), It.IsAny <AccessCondition>()), Times.Once); LegacyBlob.Verify(x => x.UploadFromStreamAsync(It.IsAny <Stream>(), It.Is <AccessCondition>(a => a.IfMatchETag == null && a.IfNoneMatchETag == null)), Times.Once); GzippedContainer.Verify(x => x.GetBlobReference(It.IsAny <string>()), Times.Never); SemVer2Container.Verify(x => x.GetBlobReference(It.IsAny <string>()), Times.Never); }
public async Task SerializesPage() { await Target.WritePageAsync(Hive, ReplicaHives, Id, Lower, Upper, Page); var json = Encoding.UTF8.GetString(LegacyStream.ToArray()); Assert.Equal("{\"commitTimeStamp\":\"0001-01-01T00:00:00+00:00\",\"count\":0}", json); LegacyContainer.Verify(x => x.GetBlobReference(It.IsAny <string>()), Times.Once); LegacyContainer.Verify(x => x.GetBlobReference("nuget.versioning/page/1.0.0/2.0.0.json"), Times.Once); LegacyBlob.Verify(x => x.UploadFromStreamAsync(It.IsAny <Stream>(), It.IsAny <AccessCondition>()), Times.Once); LegacyBlob.Verify(x => x.UploadFromStreamAsync(It.IsAny <Stream>(), It.Is <AccessCondition>(a => a.IfMatchETag == null && a.IfNoneMatchETag == null)), Times.Once); GzippedContainer.Verify(x => x.GetBlobReference(It.IsAny <string>()), Times.Never); SemVer2Container.Verify(x => x.GetBlobReference(It.IsAny <string>()), Times.Never); }
public async Task DoesNotListOrSnapshotBlobWhenNotConfiguredToSnapshot() { Config.EnsureSingleSnapshot = false; await Target.WriteIndexAsync(Hive, ReplicaHives, Id, Index); LegacyBlob.Verify(x => x.UploadFromStreamAsync(It.IsAny <Stream>(), It.IsAny <AccessCondition>()), Times.Once); LegacyContainer.Verify( x => x.ListBlobsSegmentedAsync( It.IsAny <string>(), It.IsAny <bool>(), It.IsAny <BlobListingDetails>(), It.IsAny <int?>(), It.IsAny <BlobContinuationToken>(), It.IsAny <BlobRequestOptions>(), It.IsAny <OperationContext>(), It.IsAny <CancellationToken>()), Times.Never); LegacyBlob.Verify(x => x.SnapshotAsync(It.IsAny <CancellationToken>()), Times.Never); }
public async Task DoesNotSnapshotBlobWhenConfiguredAndAlreadyHasSnapshot() { Config.EnsureSingleSnapshot = true; LegacySegment.Setup(x => x.Results).Returns(() => new[] { LegacyBlob.Object, LegacyBlob.Object }); await Target.WriteIndexAsync(Hive, ReplicaHives, Id, Index); LegacyBlob.Verify(x => x.UploadFromStreamAsync(It.IsAny <Stream>(), It.IsAny <AccessCondition>()), Times.Once); LegacyContainer.Verify( x => x.ListBlobsSegmentedAsync( "nuget.versioning/index.json", true, BlobListingDetails.Snapshots, 2, null, null, null, It.IsAny <CancellationToken>()), Times.Once); LegacyBlob.Verify(x => x.SnapshotAsync(It.IsAny <CancellationToken>()), Times.Never); }
public async Task ProvidesUnencodedStringToStorage() { var index = await Target.ReadIndexOrNullAsync(HiveType.Legacy, "测试更新包"); LegacyContainer.Verify(x => x.GetBlobReference("测试更新包/index.json"), Times.Once); }