public void GetAllSongs()
        {
            ObservableCollection<Song> expectedSongs = new ObservableCollection<Song>();
            SongRepository.Setup(r => r.GetAll()).Returns(expectedSongs);
            MusicService service = new MusicService(SongRepository.Object, MediaFileRepository.Object);

            IList<Song> findMusics = service.GetAllSongs();

            SongRepository.Verify(r => r.GetAll(), Times.Once());
            Assert.AreEqual(expectedSongs, findMusics);
        }
        public void GetAlbumsByArtist()
        {
            const string artist = "artist";
            ObservableCollection<string> expectedAlbums = new ObservableCollection<string>();
            SongRepository.Setup(r => r.GetAlbumsByArtist(artist)).Returns(expectedAlbums);
            MusicService service = new MusicService(SongRepository.Object, MediaFileRepository.Object);

            IList<string> findAlbums = service.GetAlbumsByArtist(artist);

            SongRepository.Verify(r => r.GetAlbumsByArtist(artist), Times.Once());
            Assert.AreEqual(expectedAlbums, findAlbums);
        }
        public void GetMediaFileById()
        {
            Guid id = new Guid();
            MediaFile expectedFile = Create.MediaFile(id);
            MediaFileRepository.Setup(mfr => mfr.GetById(id)).Returns(expectedFile);

            MusicService service = new MusicService(SongRepository.Object, MediaFileRepository.Object);

            MediaFile gettedFile = service.GetMediaFileById(id);

            MediaFileRepository.Verify(mfr => mfr.GetById(id), Times.Once());
            Assert.AreEqual(expectedFile, gettedFile);
        }
        public void AddASong()
        {
            Song song = Create.Song();
            MusicService service = new MusicService(SongRepository.Object, MediaFileRepository.Object);
            MediaFile file = new MediaFile();
            MediaFileRepository.Setup(mfr => mfr.Add(file)).Returns(file);

            service.AddASong(song, file);

            SongRepository.Verify(r => r.Add(song), Times.Once());
            MediaFileRepository.Verify(r => r.Add(file), Times.Once());
            Assert.AreEqual(song.MediaFileId, file.Id);
        }
        public void GetSongsByAlbum()
        {
            const string album = "album";
            ObservableCollection<Song> expectedSongs = new ObservableCollection<Song>();
            SongRepository.Setup(r => r.GetByAlbum(album)).Returns(expectedSongs);
            MusicService service = new MusicService(SongRepository.Object, MediaFileRepository.Object);

            IList<Song> findMusics = service.GetByAlbum(album);

            SongRepository.Verify(r => r.GetByAlbum(album), Times.Once());
            Assert.AreEqual(expectedSongs, findMusics);
        }
 public void SetRepositoryAtTheInstantiate()
 {
     MusicService service = new MusicService(SongRepository.Object, MediaFileRepository.Object);
     Assert.AreEqual(SongRepository.Object, service.SongRepository);
     Assert.AreEqual(MediaFileRepository.Object, service.MediaFileRepository);
 }
        public void SearchSongsAndReturnAllSongsIfFilterIsEmpty()
        {
            ObservableCollection<Song> expectedSongs = new ObservableCollection<Song>();
            expectedSongs.Add(Create.Song());
            SongRepository.Setup(r => r.GetByFilter(It.IsAny<string>(), true, true, true)).Returns(expectedSongs);
            MusicService service = new MusicService(SongRepository.Object, MediaFileRepository.Object);

            IList<Song> findMusics = service.SearchSongs(string.Empty, true, true, true);

            SongRepository.Verify(r => r.GetByFilter(It.IsAny<string>(), true, true, true), Times.Once());
            Assert.AreEqual(expectedSongs, findMusics);
            Assert.AreEqual(1, findMusics.Count);
        }
        public void SearchSongs()
        {
            const string filter = "filter";
            ObservableCollection<Song> expectedSongs = new ObservableCollection<Song>();
            SongRepository.Setup(r => r.GetByFilter(filter, true, true, true)).Returns(expectedSongs);
            MusicService service = new MusicService(SongRepository.Object, MediaFileRepository.Object);

            IList<Song> findMusics = service.SearchSongs(filter, true, true, true);

            SongRepository.Verify(r => r.GetByFilter(filter, true, true, true), Times.Once());
            Assert.AreEqual(expectedSongs, findMusics);
        }
        public void SearchOnlyOnTitleAndArtist()
        {
            MusicService service = new MusicService(SongRepository.Object, MediaFileRepository.Object);

            IList<Song> findMusics = service.SearchSongs(string.Empty, true, true, false);

            SongRepository.Verify(r => r.GetByFilter(It.IsAny<string>(), true, true, false), Times.Once());
        }