示例#1
0
        public void TestInitialize()
        {
            IoC.GetInstance = (type, s) => null;

            _expandedArtist = new ExpandedArtist
            {
                Id         = 42,
                AlbumCount = 12,
                Name       = "artist"
            };
            _artistMenuItemViewModel   = _expandedArtist.AsMenuItemViewModel();
            _artistMusicDirectoryChild = _artistMenuItemViewModel.Item.As <ISubsonicModel>();

            _album = new Common.Models.Subsonic.Album
            {
                Id        = 24,
                SongCount = 12,
                Name      = "album"
            };
            _albumMenuItemViewModel   = _album.AsMenuItemViewModel();
            _albumMusicDirectoryChild = _albumMenuItemViewModel.Item.As <ISubsonicModel>();

            _song = new Song
            {
                Id     = 12,
                Title  = "song",
                Artist = "artist",
                Album  = "album"
            };
            _songMenuItemViewModel   = _song.AsMenuItemViewModel();
            _songMusicDirectoryChild = _songMenuItemViewModel.Item.As <ISubsonicModel>();
        }
        public async Task HandleWithPlaylistMessage_QueHasItemOfTypeArtist_CallsSubsonicServiceGetArtistAndAddsAllSongsFromAllAlbumsToThePlaylist()
        {
            MockLoadModel();
            var addToPlaylistQue = new List <ISubsonicModel> {
                new ExpandedArtist {
                    Id = 5
                }
            };
            var albums = new List <Common.Models.Subsonic.Album>
            {
                new Common.Models.Subsonic.Album(),
                new Common.Models.Subsonic.Album()
            };
            var artist = new ExpandedArtist {
                Albums = albums
            };
            var mockGetAlbumResult = new MockGetArtistResult {
                GetResultFunc = () => artist
            };
            var callCount = 0;

            MockSubsonicService.GetArtist = albumId =>
            {
                callCount++;
                albumId.Should().Be(5);
                return(mockGetAlbumResult);
            };
            var getAlbumCallCount = 0;

            MockSubsonicService.GetAlbum = artistId =>
            {
                getAlbumCallCount++;
                return(new MockGetAlbumResult
                {
                    GetResultFunc = () => new Common.Models.Subsonic.Album {
                        Songs = new List <Song> {
                            new Song()
                        }
                    }
                });
            };

            await Task.Run(() => Subject.Handle(new PlaylistMessage {
                Queue = addToPlaylistQue
            }));

            callCount.Should().Be(1);
            getAlbumCallCount.Should().Be(2);
            MockEventAggregator.Messages.All(m => m.GetType() == typeof(AddItemsMessage)).Should().BeTrue();
            MockEventAggregator.Messages.Count.Should().Be(2);
        }
        AddToPlaylist_QueHasItemOfTypeArtist_CallsSubsonicServiceGetArtistAndAddsAllSongsFromAllAlbumsToThePlaylist()
        {
            MockLoadModel();
            Subject.SelectedItems.Add(new MenuItemViewModel {
                Item = new ExpandedArtist {
                    Id = 5
                }
            });
            Debug.WriteLine(Subject.EventAggregator);
            var albums = new List <Album> {
                new Album(), new Album()
            };
            var artist = new ExpandedArtist {
                Albums = albums
            };
            var mockGetAlbumResult = new MockGetArtistResult {
                GetResultFunc = () => artist
            };
            var callCount = 0;

            _mockSubsonicService.GetArtist = albumId =>
            {
                callCount++;
                albumId.Should().Be(5);
                return(mockGetAlbumResult);
            };
            var getAlbumCallCount = 0;

            _mockSubsonicService.GetAlbum = artistId =>
            {
                getAlbumCallCount++;
                return(new MockGetAlbumResult
                {
                    GetResultFunc =
                        () => new Album {
                        Songs = new List <Song> {
                            new Song()
                        }
                    }
                });
            };

            await Subject.AddToPlaylist();

            callCount.Should().Be(1);
            getAlbumCallCount.Should().Be(2);
            MockEventAggregator.Messages.All(m => m.GetType() == typeof(AddItemsMessage)).Should().BeTrue();
            MockEventAggregator.Messages.Count.Should().Be(2);
        }
 public void Setup()
 {
     _subject = new ExpandedArtist();
 }