public async Task ReturnDtoWithCorrectSongWhenTheSongExists() { Song expectedSong = new Song() { Title = "Unit Test", IsApproved = true }; var songProviderStub = new Mock <ISongProvider>(); var songRepositoryStub = new Mock <IEfRepository <Song> >(); songRepositoryStub .Setup(x => x.GetByIdAsync(It.IsAny <string>())) .ReturnsAsync(expectedSong); GetSongForPlaying query = new GetSongForPlaying(); // Arrange GetSongForPlayingQueryService sut = new GetSongForPlayingQueryService( songProvider: songProviderStub.Object, songRepository: songRepositoryStub.Object); // Act SongForPlayingDTO actualSongDTO = await sut.ExecuteAsync(query); // Assert StringAssert.Contains(expectedSong.Title, actualSongDTO.HeadingText); }
public async Task <IActionResult> Play(string id) { SongForPlayingDTO song = null; string message = await this.CallServiceAsync( async() => song = await this.songPlayer.GetSongAsync(id)); if (message != null) { return(RedirectToAction(nameof(HomeController.Index), "Home") .WithErrorMessage(message)); } MemoryStream ms = new MemoryStream(song.File); return(File(ms, $"audio/{song.FileExtension}", song.HeadingText)); }
public async Task <SongForPlayingDTO> GetSongAsync(string songId) { IncrementSongListenings command = new IncrementSongListenings() { SongId = songId }; await this.incrementSongListenings.ExecuteAsync(command); GetSongForPlaying query = new GetSongForPlaying() { SongId = songId }; SongForPlayingDTO song = await this.getSong.ExecuteAsync(query); return(song); }