Esempio n. 1
0
        public async Task RunAsync_WhenPackageIdSpansCommitsAndVariesInCasing_BatchesAcrossCommitsByLowerCasePackageId()
        {
            var pageUri        = new Uri(_baseUri, "v3-catalog0/page0.json");
            var indexUri       = new Uri(_baseUri, "v3-catalog0/index.json");
            var contentBaseUri = new Uri(_baseUri, "packages");

            SharedInit(useLegacy: true, useSemVer2: true, baseUri: _baseUri, indexUri: indexUri, contentBaseUri: contentBaseUri);

            var commitId1                  = Guid.NewGuid().ToString();
            var commitId2                  = Guid.NewGuid().ToString();
            var commitTimeStamp1           = DateTimeOffset.UtcNow.AddMinutes(-1);
            var commitTimeStamp2           = commitTimeStamp1.AddMinutes(1);
            var independentPackageDetails1 = new CatalogIndependentPackageDetails(
                id: "ABC",
                version: "1.0.0",
                baseUri: _baseUri.AbsoluteUri,
                commitId: commitId1,
                commitTimeStamp: commitTimeStamp1);
            var independentPackageDetails2 = new CatalogIndependentPackageDetails(
                id: "AbC",
                version: "1.0.1",
                baseUri: _baseUri.AbsoluteUri,
                commitId: commitId1,
                commitTimeStamp: commitTimeStamp1);
            var independentPackageDetails3 = new CatalogIndependentPackageDetails(
                id: "abc",
                version: "1.0.2",
                baseUri: _baseUri.AbsoluteUri,
                commitId: commitId2,
                commitTimeStamp: commitTimeStamp2);
            var packageDetails = new[]
            {
                CatalogPackageDetails.Create(independentPackageDetails1),
                CatalogPackageDetails.Create(independentPackageDetails2),
                CatalogPackageDetails.Create(independentPackageDetails3)
            };

            var independentPage = new CatalogIndependentPage(
                pageUri.AbsoluteUri,
                CatalogConstants.CatalogPage,
                commitId2,
                commitTimeStamp2.ToString(CatalogConstants.CommitTimeStampFormat),
                packageDetails.Length,
                indexUri.AbsoluteUri,
                packageDetails,
                _contextKeyword);

            var index = CatalogIndex.Create(independentPage, _contextKeyword);

            var catalogStorage = new MemoryStorage(_baseUri);

            catalogStorage.Content.TryAdd(indexUri, CreateStringStorageContent(index));
            catalogStorage.Content.TryAdd(pageUri, CreateStringStorageContent(independentPage));
            catalogStorage.Content.TryAdd(
                new Uri(independentPackageDetails1.IdKeyword),
                CreateStringStorageContent(independentPackageDetails1));
            catalogStorage.Content.TryAdd(
                new Uri(independentPackageDetails2.IdKeyword),
                CreateStringStorageContent(independentPackageDetails2));
            catalogStorage.Content.TryAdd(
                new Uri(independentPackageDetails3.IdKeyword),
                CreateStringStorageContent(independentPackageDetails3));

            await _mockServer.AddStorageAsync(catalogStorage);

            await _target.RunAsync(CancellationToken.None);

            var expectedPage = new ExpectedPage(independentPackageDetails1, independentPackageDetails2, independentPackageDetails3);

            Verify(_legacyStorage, expectedPage);
            Verify(_semVer2Storage, expectedPage);
        }