コード例 #1
0
        public NewestGoodMoviesForKidsValidation()
        {
            var less1YearSpec = new LessThanOneYearSpecification();
            var forKidsSpec   = new MovieForKidsSpecification();
            var bestRatedSpec = new BestRatedFilmsSpecification();

            base.Add("less1YearSpec", new Rule <Movie>(less1YearSpec, "This movie was released over a year ago."));
            base.Add("forKidsSpec", new Rule <Movie>(forKidsSpec, "This film is not for children."));
            base.Add("bestRatedSpec", new Rule <Movie>(bestRatedSpec, "This film is not well rated."));
        }
コード例 #2
0
ファイル: SpecTests.cs プロジェクト: tiro-dev/NetDevPack
        public void Specification_SingleSpecification_ShouldReturnFalse()
        {
            // Arrange
            var movie = MovieFactory.GetRatedR();

            var kidSpec = new MovieForKidsSpecification();

            // Act
            var result = kidSpec.IsSatisfiedBy(movie);

            // Assert
            Assert.False(result);
        }
コード例 #3
0
        public void Specification_NotSpecification_ShouldFilterMovies()
        {
            // Arrange
            var movieCount = MovieFactory.GetMixedMovies().Count(m => m.MpaaRating > MpaaRating.PG && m.Rating >= 4);

            var kidSpec = new MovieForKidsSpecification();
            var dirBest = new BestRatedFilmsSpecification();

            var movieSpec = dirBest.And(kidSpec.Not());

            // Act
            var result = MovieFactory.GetMixedMovies().Where(movieSpec.IsSatisfiedBy);

            // Assert
            Assert.Equal(movieCount, result.Count());
        }
コード例 #4
0
ファイル: SpecTests.cs プロジェクト: tiro-dev/NetDevPack
        public void Specification_OrSpecification_ShouldFilterMovies()
        {
            // Arrange
            var movieCount = MovieFactory.GetMixedMovies().Count(m =>
                                                                 m.MpaaRating <= MpaaRating.PG || // For kids OR
                                                                 m.Rating >= 4);                  // Best Rates

            var kidSpec = new MovieForKidsSpecification();
            var dirBest = new BestRatedFilmsSpecification();

            var movieSpec = kidSpec.Or(dirBest);

            // Act
            var result = MovieFactory.GetMixedMovies().Where(movieSpec.IsSatisfiedBy);

            // Assert
            Assert.Equal(movieCount, result.Count());
        }
コード例 #5
0
        public void Specification_AndSpecification_ShouldReturnTrue()
        {
            // Arrange
            var movie = MovieFactory.GetMixedMovies().FirstOrDefault(m =>
                                                                     m.MpaaRating <= MpaaRating.PG && m.ReleaseDate.Year < DateTime.Now.Year);
            var director = movie.Director.Name;

            var kidSpec = new MovieForKidsSpecification();
            var dirSpec = new MovieDirectedBySpecification(director);
            var dvdSpec = new AvailableOnDvdSpecification();

            var movieSpec = kidSpec.And(dirSpec).And(dvdSpec);

            // Act
            var result = movieSpec.IsSatisfiedBy(movie);

            // Assert
            Assert.True(result);
        }