예제 #1
0
            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);
            }
예제 #2
0
            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);
            }
예제 #3
0
            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);
            }
예제 #4
0
            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);
            }
예제 #5
0
            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);
            }
예제 #6
0
            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);
            }
예제 #7
0
            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);
            }
예제 #8
0
            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);
            }
예제 #9
0
            public async Task ProvidesUnencodedStringToStorage()
            {
                var index = await Target.ReadIndexOrNullAsync(HiveType.Legacy, "测试更新包");

                LegacyContainer.Verify(x => x.GetBlobReference("测试更新包/index.json"), Times.Once);
            }