Example #1
0
        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);
        }
Example #2
0
        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);
        }