Пример #1
0
        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);
        }
Пример #2
0
        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));
        }
Пример #3
0
        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);
        }