Esempio n. 1
0
            public async Task FetchesSongsAfterCachedReturned()
            {
                var songs1 = Helpers.SetupSongs(1);

                songs1[0].Artist = "A";

                var songs2 = Helpers.SetupSongs(2);

                songs2[0].Artist = "B";
                songs2[1].Artist = "C";

                var songFetcher = Substitute.For <ISongFetcher <NetworkSong> >();

                songFetcher.GetSongsAsync().Returns(Observable.Return(songs1).Concat(Observable.Return(songs2)));

                var cache = new InMemoryBlobCache();

                var vm = new RemoteArtistsViewModel(songFetcher, cache);

                vm.Activator.Activate();

                var artists = vm.WhenAnyValue(x => x.Artists).CreateCollection();

                await vm.LoadCommand.ExecuteAsync();

                Assert.Equal(1, artists[1].Count);
                Assert.Equal(2, artists[2].Count);
            }
Esempio n. 2
0
            public async Task CachesAllSongs()
            {
                var songs = Helpers.SetupSongs(3);

                var songFetcher = Substitute.For <ISongFetcher <NetworkSong> >();

                songFetcher.GetSongsAsync().Returns(Observable.Return(songs));

                var vm = new RemoteArtistsViewModel(songFetcher);

                vm.Activator.Activate();

                await vm.LoadCommand.ExecuteAsync();

                var cachedSongs = await BlobCache.LocalMachine.GetObject <List <NetworkSong> >(BlobCacheKeys.RemoteSongs);

                Assert.Equal(3, cachedSongs.Count);
            }
Esempio n. 3
0
            public async Task DistinctsFetchedSongsByGuid()
            {
                var songs = Helpers.SetupSongs(2);

                songs[0].Artist = "A";
                songs[1].Artist = "B";

                var songFetcher = Substitute.For <ISongFetcher <NetworkSong> >();

                songFetcher.GetSongsAsync().Returns(Observable.Return(songs).Concat(Observable.Return(songs)));

                var cache = new InMemoryBlobCache();

                var vm = new RemoteArtistsViewModel(songFetcher, cache);

                vm.Activator.Activate();

                var loadResults = vm.LoadCommand.CreateCollection();

                await vm.LoadCommand.ExecuteAsync();

                Assert.Equal(1, loadResults.Count);
            }