public async Task TestAllButOneEmptyEnums() { var enum1 = new IntegerEnumerableAsync(new List <int>() { 1, 2, 3, 4, 5 }); var enum2 = new IntegerEnumerableAsync(new List <int>() { }); var enum3 = new IntegerEnumerableAsync(new List <int>() { }); var aggregateEnumerable = new AggregateEnumerableAsync <int>(new List <IEnumerableAsync <int> > { enum1, enum2, enum3 }, null, null); var enumerator = aggregateEnumerable.GetEnumeratorAsync(); var expectedUniqueCount = 5; var actualCount = 0; var last = int.MinValue; while (await enumerator.MoveNextAsync()) { actualCount++; var current = enumerator.Current; Assert.True(last < current, "Incorrent order: " + last + " should be before " + current); last = current; } Assert.Equal(expectedUniqueCount, actualCount); }
public async Task TestMultipleOverlappingEnums() { var enum1 = new IntegerEnumerableAsync(new List <int>() { 1, 4, 5, 8, 9 }); var enum2 = new IntegerEnumerableAsync(new List <int>() { 2, 3, 6, 7, 10 }); var enum3 = new IntegerEnumerableAsync(new List <int>() { 3, 5, 7, 12, 15 }); var aggregateEnumerable = new AggregateEnumerableAsync <int>(new List <IEnumerableAsync <int> > { enum1, enum2, enum3 }, null, null); var enumerator = aggregateEnumerable.GetEnumeratorAsync(); var expectedUniqueCount = 12; var actualCount = 0; var last = int.MinValue; while (await enumerator.MoveNextAsync()) { actualCount++; var current = enumerator.Current; Assert.True(last < current, "Incorrent order: " + last + " should be before " + current); last = current; } Assert.Equal(expectedUniqueCount, actualCount); // Assert that whole sorting process is commutative aggregateEnumerable = new AggregateEnumerableAsync <int>(new List <IEnumerableAsync <int> > { enum3, enum2, enum1 }, null, null); enumerator = aggregateEnumerable.GetEnumeratorAsync(); expectedUniqueCount = 12; actualCount = 0; last = int.MinValue; while (await enumerator.MoveNextAsync()) { actualCount++; var current = enumerator.Current; Assert.True(last <= current, "Incorrent order: " + last + " should be before " + current); last = current; } Assert.Equal(expectedUniqueCount, actualCount); }
public async Task <string> GetLatestVersionAsync(string packageName, string packageUrl, bool comparePrerelease) { ArgumentGuard.StringMissing(packageName, nameof(packageName)); ArgumentGuard.StringMissing(packageUrl, nameof(packageUrl)); var prefix = string.Empty; if (packageUrl.Contains("api.nuget.org/v3/")) { if (packageUrl.Last().Equals('/')) { prefix += "index.json"; } else { prefix += "/index.json"; } } NuGet.Common.ILogger logger = new Logger(m_logger); var sourceRepository = Repository.Factory.GetCoreV3(packageUrl + prefix); var feed = await sourceRepository.GetResourceAsync <ListResource>(); var allPackages = new List <IEnumerableAsync <IPackageSearchMetadata> >(); var packagesFromSource = await feed.ListAsync(packageName, comparePrerelease, false, false, logger, CancellationToken.None); allPackages.Add(packagesFromSource); var comparer = new ComparePackageSearchMetadata(); var asyncEnumerator = new AggregateEnumerableAsync <IPackageSearchMetadata>(allPackages, comparer, comparer).GetEnumeratorAsync(); if (asyncEnumerator != null) { while (await asyncEnumerator.MoveNextAsync()) { var p = asyncEnumerator.Current; if (p.Identity.Id == packageName) { return(p.Identity.Version.ToString()); } } } return("N/A"); }
public async Task TestAllEmptyEnums() { var enum1 = new IntegerEnumerableAsync(new List <int>() { }); var enum2 = new IntegerEnumerableAsync(new List <int>() { }); var enum3 = new IntegerEnumerableAsync(new List <int>() { }); HashSet <int> blaa = new HashSet <int>(); var aggregateEnumerable = new AggregateEnumerableAsync <int>(new List <IEnumerableAsync <int> > { enum1, enum2, enum3 }, null, null); var enumerator = aggregateEnumerable.GetEnumeratorAsync(); Assert.False(await enumerator.MoveNextAsync()); }