Beispiel #1
0
        public void The_MovieRatedByCritics_event_should_keep_a_roling_average()
        {
            var movieId        = Guid.NewGuid();
            var ratedByCritics = new MovieRatedByCritics(movieId, 60);

            var repo = new DummyMovieProjectionRepository();

            repo.List[movieId] = new MovieProjection {
                Id = movieId, CriticsScore = 50
            };

            var handler = new MovieProjectionHandlers(repo);

            handler.Handle(ratedByCritics);

            repo.List.Count.Should().Be(1);
            repo.List.Values.ShouldBeEquivalentTo(new[]
            {
                new MovieProjection
                {
                    Id           = movieId,
                    CriticsScore = 51
                }
            });
        }
Beispiel #2
0
        public void The_MovieDescribed_event_should_update_a_movie()
        {
            var movieId     = Guid.NewGuid();
            var movieTitled = new MovieDescribed(movieId, "Synopsis", "Critics Consensus", 2014, "R");

            var repo = new DummyMovieProjectionRepository();

            repo.List[movieId] = new MovieProjection {
                Id = movieId
            };

            var handler = new MovieProjectionHandlers(repo);

            handler.Handle(movieTitled);

            repo.List.Count.Should().Be(1);
            repo.List.Values.ShouldBeEquivalentTo(new[]
            {
                new MovieProjection
                {
                    Id               = movieId,
                    Synopsis         = "Synopsis",
                    CriticsConsensus = "Critics Consensus",
                    Year             = 2014,
                    MpaaRating       = "R"
                }
            });
        }
Beispiel #3
0
        public void The_first_MovieRatedByAudience_event_should_set_the_rating()
        {
            var movieId        = Guid.NewGuid();
            var ratedByCritics = new MovieRatedByAudience(movieId, 60);

            var repo = new DummyMovieProjectionRepository();

            repo.List[movieId] = new MovieProjection {
                Id = movieId
            };

            var handler = new MovieProjectionHandlers(repo);

            handler.Handle(ratedByCritics);

            repo.List.Count.Should().Be(1);
            repo.List.Values.ShouldBeEquivalentTo(new[]
            {
                new MovieProjection
                {
                    Id            = movieId,
                    AudienceScore = 60
                }
            });
        }
Beispiel #4
0
        public void The_MovieTitled_event_should_update_a_movie()
        {
            const string title       = "Some movie";
            var          movieId     = Guid.NewGuid();
            var          movieTitled = new MovieTitled(movieId, title);

            var repo = new DummyMovieProjectionRepository();

            repo.List[movieId] = new MovieProjection {
                Id = movieId
            };

            var handler = new MovieProjectionHandlers(repo);

            handler.Handle(movieTitled);

            repo.List.Count.Should().Be(1);
            repo.List.Values.ShouldBeEquivalentTo(new[]
            {
                new MovieProjection
                {
                    Id    = movieId,
                    Title = title
                }
            });
        }
Beispiel #5
0
        public void The_MovieRatedByCritics_event_should_be_unchanged_with_the_same_rating()
        {
            var movieId        = Guid.NewGuid();
            var ratedByCritics = new MovieRatedByCritics(movieId, 60);

            var repo = new DummyMovieProjectionRepository();

            repo.List[movieId] = new MovieProjection {
                Id = movieId, CriticsScore = 60
            };

            var handler = new MovieProjectionHandlers(repo);

            handler.Handle(ratedByCritics);

            repo.List.Count.Should().Be(1);
            repo.List.Values.ShouldBeEquivalentTo(new[]
            {
                new MovieProjection
                {
                    Id           = movieId,
                    CriticsScore = 60
                }
            });
        }