public async Task CanUpdateFavoriteMusic() { // ARRANGE string id = Guid.NewGuid().ToString(); MusicUpdateFavoriteRequest favoriteRequest = new MusicUpdateFavoriteRequest { IsFavorite = true }; MusicDocument doc1 = new MusicDocument { Id = id, Artist = "Linkin Park", ArtistAlphabetIndex = AlphabetType.L, IsFavorite = false }; this._repo .Setup(m => m.UpdateFavoriteAsync(id, It.IsAny <UpdateMusicRequest>())) .Callback(() => doc1.IsFavorite = favoriteRequest.IsFavorite) .Returns(Task.CompletedTask); // ACT await this._service.UpdateFavoriteAsync(id, favoriteRequest); // ASSERT Assert.Equal(doc1.IsFavorite, favoriteRequest.IsFavorite); this._repo.Verify(m => m.UpdateFavoriteAsync(id, It.IsAny <UpdateMusicRequest>()), Times.Once); }
public async Task CanGetMusic() { // ARRANGE string id = Guid.NewGuid().ToString(); MusicDocument doc = new MusicDocument { Id = id, Artist = "Linkin Park", Album = "Meteora", ArtistAlphabetIndex = AlphabetType.L, IsFavorite = true, Length = 185, // 3 mins and 5 secs Title = "Numb", Path = "www.google.com/numb.mp3", CreatedDate = DateTime.UtcNow, UpdatedDate = DateTime.UtcNow }; this._repo .Setup(m => m.GetMusicAsync(id)) .ReturnsAsync(doc); // ACT MusicResponse response = await this._service.GetMusicAsync(id); // ASSERT Assert.NotNull(response); AssertEqual(expected: response, actual: doc); this._repo.Verify(m => m.GetMusicAsync(id), Times.Once); }
public void Insert(MusicDocument musicDoc) { if (musicDoc != null) { _musicDocs.InsertOne(musicDoc); } }
public async Task <MusicResponse> AddMusicAsync(MusicAddRequest request) { this._validationService.ThrowIfInvalid(request: request); MusicDocument doc = MusicMongoMapper.Map(request: request); return(MusicMapper.Map(await this._musicRepo.AddMusicAsync(doc))); }
public async Task CanSearchAllMusic() { // ARRANGE MusicDocument doc1 = new MusicDocument { Id = Guid.NewGuid().ToString(), Artist = "Linkin Park", Album = "Meteora", ArtistAlphabetIndex = AlphabetType.L, IsFavorite = true, Length = 185, // 3 mins and 5 secs Title = "Numb", Path = "www.google.com/numb.mp3", CreatedDate = DateTime.UtcNow, UpdatedDate = DateTime.UtcNow }; MusicDocument doc2 = new MusicDocument { Id = Guid.NewGuid().ToString(), Artist = "Vanessa Carlton", Album = "Legally Blonde", ArtistAlphabetIndex = AlphabetType.V, IsFavorite = true, Length = 240, // 4 mins Title = "A Thousand Miles", Path = "/music/1000Miles.mp3", CreatedDate = DateTime.UtcNow, UpdatedDate = DateTime.UtcNow }; List <MusicDocument> expectedResponse = new List <MusicDocument> { doc1, doc2 }; MusicSearchRequest request = new MusicSearchRequest { IsFavorite = null }; this._repo .Setup(m => m.SearchMusicAsync(It.IsAny <SearchMusicRequest>())) .ReturnsAsync(expectedResponse); // ACT List <MusicResponse> response = await this._service.SearchMusicAsync(request : request); // ASSERT Assert.NotNull(response); Assert.Collection(response, x => AssertEqual(x, expectedResponse), x => AssertEqual(x, expectedResponse) ); this._repo.Verify(m => m.SearchMusicAsync(It.IsAny <SearchMusicRequest>()), Times.Once); }
private void AssertEqual(MusicResponse expected, MusicDocument actual) { Assert.Equal(expected.Id, actual.Id); Assert.Equal(expected.Artist, actual.Artist); Assert.Equal(expected.ArtistAlphabetCategory, actual.ArtistAlphabetIndex); Assert.Equal(expected.IsFavorite, actual.IsFavorite); Assert.Equal(expected.Length, actual.Length); Assert.Equal(expected.Path, actual.Path); Assert.Equal(expected.Title, actual.Title); }
public MusicDocument ParseFileName(string fileName) { // "Z:\\0_MEDIA\\Music\\Led Zeppelin\\01 - Studio albums\\CD remastered\\1971 - Led Zeppelin IV [1994, Atlantic, 82638-2]\\06. Four Sticks.mp3" var tmp = new MusicDocument(); string songName = fileName.Split("\\").Last(); string number = songName.Split(" ").FirstOrDefault(); tmp.SongName = songName; tmp.SongNumber = number; return(tmp); }
internal static MusicResponse Map(MusicDocument music) { return(new MusicResponse { Album = music.Album, Artist = music.Artist, ArtistAlphabetCategory = music.ArtistAlphabetIndex, Id = music.Id, IsFavorite = music.IsFavorite, Length = music.Length, Path = music.Path, Title = music.Title, }); }
private void AssertEqual(MusicResponse expected, IEnumerable <MusicDocument> actual) { int foundCount = 0; MusicDocument doc = actual.FirstOrDefault(x => x.Id == expected.Id); if (doc != null) { AssertEqual(expected: expected, actual: doc); foundCount++; } Assert.Equal(foundCount, 1); }
public async Task <MusicResponse> GetMusicAsync(string id) { MusicDocument music = await this._musicRepo.GetMusicAsync(id : id); return(MusicMapper.Map(music: music)); }