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