예제 #1
0
        public async Task <IActionResult> FindMovie(
            [FromRoute] Guid movieId,
            [FromServices] MovieReadModelFacade readModelFacade)
        {
            MovieDto movie = await readModelFacade.FindMovie(movieId);

            return(movie == null?NotFound() : (IActionResult)Ok(movie));
        }
        public async Task given_movie_not_found_then_FindMovie_returns_NotFoundResult(
            Guid movieId,
            InMemoryMovieRepository readerStub,
            [NoAutoProperties] QueriesController sut)
        {
            var           facade = new MovieReadModelFacade(readerStub);
            IActionResult actual = await sut.FindMovie(movieId, facade);

            actual.Should().BeOfType <NotFoundResult>();
        }
        public async Task given_movie_found_then_FindMovie_returns_OkObjectResult(
            Movie movie,
            InMemoryMovieRepository readerStub,
            [NoAutoProperties] QueriesController sut)
        {
            readerStub.Data[movie.Id] = movie;
            var facade = new MovieReadModelFacade(readerStub);

            IActionResult actual = await sut.FindMovie(movie.Id, facade);

            actual.Should().BeOfType <OkObjectResult>();
        }
        public async Task GetAllMovies_returns_transfer_objects_as_content(
            Movie[] movies,
            InMemoryMovieRepository readerStub,
            [NoAutoProperties] QueriesController sut)
        {
            movies.ForEach(t => readerStub.Data[t.Id] = t);
            var facade = new MovieReadModelFacade(readerStub);

            var actual = (OkObjectResult)await sut.GetAllMovies(facade);

            actual.Value.Should().BeEquivalentTo(await facade.GetAllMovies());
        }
        public async Task GetAllMovies_returns_OkObjectResult(
            Movie[] movies,
            InMemoryMovieRepository readerStub,
            [NoAutoProperties] QueriesController sut)
        {
            movies.ForEach(t => readerStub.Data[t.Id] = t);
            var facade = new MovieReadModelFacade(readerStub);

            IActionResult actual = await sut.GetAllMovies(facade);

            actual.Should().BeOfType <OkObjectResult>();
        }
        public async Task given_screening_not_found_then_FindScreening_returns_NotFoundResult(
            Movie movie,
            Guid screeningId,
            InMemoryMovieRepository readerStub,
            [NoAutoProperties] QueriesController sut)
        {
            readerStub.Data[movie.Id] = movie;
            var facade = new MovieReadModelFacade(readerStub);

            IActionResult actual = await
                                   sut.FindScreening(movie.Id, screeningId, facade);

            actual.Should().BeOfType <NotFoundResult>();
        }
예제 #7
0
        public async Task <IActionResult> FindScreening(
            [FromRoute] Guid movieId,
            [FromRoute] Guid screeningId,
            [FromServices] MovieReadModelFacade readModelFacade)
        {
            MovieDto movie = await readModelFacade.FindMovie(movieId);

            ScreeningDto screening = movie?
                                     .Screenings
                                     .SingleOrDefault(s => s.Id == screeningId);

            return(screening == null
                ? NotFound()
                : (IActionResult)Ok(screening));
        }
        public async Task given_movie_found_then_FindMovie_returns_transfer_object_as_content(
            Movie movie,
            InMemoryMovieRepository readerStub,
            [NoAutoProperties] QueriesController sut)
        {
            readerStub.Data[movie.Id] = movie;
            var facade = new MovieReadModelFacade(readerStub);

            IActionResult result = await sut.FindMovie(movie.Id, facade);

            object actual = result.As <OkObjectResult>().Value;

            actual.Should().BeOfType <MovieDto>();
            actual.Should().BeEquivalentTo(new
            {
                movie.Id,
                movie.Title,
                movie.CreatedAt,
            });
        }
        public async Task given_screening_found_then_FindScreening_returns_transfer_object_as_content(
            Movie movie,
            InMemoryMovieRepository readerStub,
            [NoAutoProperties] QueriesController sut)
        {
            // Arrange
            readerStub.Data[movie.Id] = movie;
            var       facade    = new MovieReadModelFacade(readerStub);
            Screening screening = movie.Screenings.Shuffle().First();

            // Act
            dynamic result = await
                             sut.FindScreening(movie.Id, screening.Id, facade);

            // Assert
            object actual = result.Value;

            actual.Should().BeOfType <ScreeningDto>();
            actual.Should().BeEquivalentTo(
                expectation: screening,
                config: c => c.ExcludingMissingMembers());
        }
예제 #10
0
 public async Task <IActionResult> GetAllMovies(
     [FromServices] MovieReadModelFacade readModelFacade)
 {
     return(Ok(await readModelFacade.GetAllMovies()));
 }