public async Task LoadNextAsync_Works() { var solutionManager = Mock.Of <INuGetSolutionManagerService>(); var uiContext = new Mock <INuGetUIContext>(); uiContext.Setup(x => x.SolutionManagerService) .Returns(solutionManager); uiContext.Setup(x => x.ServiceBroker) .Returns(Mock.Of <IServiceBroker>()); var context = new PackageLoadContext(sourceRepositories: null, isSolution: false, uiContext.Object); var packageFeed = new TestPackageFeed(); var loader = new PackageItemLoader(context, packageFeed, TestSearchTerm, includePrerelease: true); Assert.Equal(LoadingStatus.Unknown, loader.State.LoadingStatus); var initial = loader.GetCurrent(); Assert.Empty(initial); var loaded = new List <PackageItemListViewModel>(); await loader.LoadNextAsync(progress : null, CancellationToken.None); Assert.Equal(LoadingStatus.Loading, loader.State.LoadingStatus); var partial = loader.GetCurrent(); Assert.Empty(partial); await Task.Delay(TimeSpan.FromSeconds(1)); await loader.UpdateStateAsync(progress : null, CancellationToken.None); Assert.NotEqual(LoadingStatus.Loading, loader.State.LoadingStatus); loaded.AddRange(loader.GetCurrent()); Assert.Equal(LoadingStatus.Ready, loader.State.LoadingStatus); await loader.LoadNextAsync(progress : null, CancellationToken.None); Assert.Equal(LoadingStatus.NoMoreItems, loader.State.LoadingStatus); loaded.AddRange(loader.GetCurrent()); Assert.NotEmpty(loaded); }
public async Task LoadNextAsync_Works() { var solutionManager = Mock.Of <IVsSolutionManager>(); var uiContext = Mock.Of <INuGetUIContext>(); Mock.Get(uiContext) .Setup(x => x.SolutionManager) .Returns(solutionManager); var context = new PackageLoadContext(null, false, uiContext); var packageFeed = new TestPackageFeed(); var loader = new PackageItemLoader(context, packageFeed, TestSearchTerm, true); Assert.Equal(LoadingStatus.Unknown, loader.State.LoadingStatus); var initial = loader.GetCurrent(); Assert.Empty(initial); var loaded = new List <PackageItemListViewModel>(); await loader.LoadNextAsync(null, CancellationToken.None); Assert.Equal(LoadingStatus.Loading, loader.State.LoadingStatus); var partial = loader.GetCurrent(); Assert.Empty(partial); await Task.Delay(TimeSpan.FromSeconds(1)); await loader.UpdateStateAsync(null, CancellationToken.None); Assert.NotEqual(LoadingStatus.Loading, loader.State.LoadingStatus); loaded.AddRange(loader.GetCurrent()); Assert.Equal(LoadingStatus.Ready, loader.State.LoadingStatus); await loader.LoadNextAsync(null, CancellationToken.None); Assert.Equal(LoadingStatus.NoMoreItems, loader.State.LoadingStatus); loaded.AddRange(loader.GetCurrent()); Assert.NotEmpty(loaded); }