Esempio n. 1
0
 public Settings(CompositeSpecification <GridSize> gridSizeSpec,
                 CompositeSpecification <Point> initialLocationSpec,
                 CompositeSpecification <string> instructionSpec)
 {
     this._gridSizeSpec        = gridSizeSpec;
     this._initialLocationSpec = initialLocationSpec;
     this._instructionSpec     = instructionSpec;
 }
        public void AllTest()
        {
            var idSpecification   = new BaseSpecification <TestClass>(t => t.Id > 3);
            var nameSpecification = new BaseSpecification <TestClass>(t => t.Name !.Length > 9);

            var specification = new CompositeSpecification <TestClass>(idSpecification, nameSpecification);
            var result        = specification.Evaluate(TestClass.GetTestClasses());

            Assert.NotEmpty(result);
        }
        public void Test_FailMessage()
        {
            ISpecification s = _factory.GetSpecification("failMessage");

            // the above evaluates to an implicit and
            CompositeSpecification s1 = (CompositeSpecification)s;

            foreach (Specification element in s1.Elements)
            {
                Assert.AreEqual("XXX", element.FailureMessage);
            }
        }
        public void Test_TestExpression()
        {
            ISpecification s = _factory.GetSpecification("testExpression");

            // the above evaluates to an implicit and
            CompositeSpecification s1 = (CompositeSpecification)s;

            foreach (Specification element in s1.Elements)
            {
                Assert.AreEqual("XXX", element.TestExpression.Text);
            }
        }
Esempio n. 5
0
        private bool VisitComposite(CompositeSpecification composite)
        {
            foreach (Specification specification in composite.Specifications)
            {
                bool result = this.Visit(specification);

                if (result)
                {
                    return(result);
                }
            }

            return(false);
        }
        public void FindByBelowPriceColourAndSizeTest()
        {
            IList <Specification> specs = new List <Specification>
            {
                new ColorSpecification(ProductColor.RED),
                new SizeSpecification(ProductSize.SMALL),
                new BelowPriceSpecification(10)
            };

            CompositeSpecification compositeSpecification = new CompositeSpecification(specs);

            IList <Product> foundProducts = _productRepository.SelectBy(compositeSpecification);

            Assert.AreEqual(0, foundProducts.Count);
        }
        public void TestFindByColorSizeAndBelowPrice()
        {
            // Arrange
            CompositeSpecification compositeSpecifications = new CompositeSpecification();

            // Act
            compositeSpecifications.Add(new ColorSpecification(ProductColor.Red));
            compositeSpecifications.Add(new SizeSpecification(ProductSize.Small));
            compositeSpecifications.Add(new BelowPriceSpecification(10.00M));

            List <Product> foundProducts = this._repository.SelectBy(compositeSpecifications);

            // Assert
            Assert.AreEqual(0, foundProducts.Count, "small red products below $10.00");
        }
 public QueryWithProjectionBuilder <T, TResult> AddFilter(CompositeSpecification <T> specification)
 {
     this.query.AddFilter(specification);
     return(this);
 }
 public QueryWithProjectionBuilder(CompositeSpecification <T> specification) : base()
 {
     this.query.AddFilter(specification);
 }
Esempio n. 10
0
 public AndSpecification(CompositeSpecification <T> leftSpecification, ISpecification <T> rightSpecification)
 {
     _leftSpecification  = leftSpecification;
     _rightSpecification = rightSpecification;
 }
Esempio n. 11
0
 public OrSpecification(CompositeSpecification <T> left, ISpecification <T> right)
 {
     _left  = left;
     _right = right;
 }
Esempio n. 12
0
 public OrSpecification(CompositeSpecification <T> compositeSpecification, ISpecificationSecond <T> specification)
 {
     this.compositeSpecification = compositeSpecification;
     this.specification          = specification;
 }
Esempio n. 13
0
 public NotSpecification(CompositeSpecification <T> specification)
 {
     this.specification = specification;
 }
Esempio n. 14
0
 public virtual void AddFilter(CompositeSpecification <T> specification)
 {
     this.Filter = specification.ToExpression();
 }
 public AndSpecification(CompositeSpecification <T> left, CompositeSpecification <T> right)
 {
     this.right = right;
     this.left  = left;
 }
Esempio n. 16
0
 public NotSpecification(CompositeSpecification <T> innerSpecification)
 {
     _innerSpecification = innerSpecification;
 }
Esempio n. 17
0
 public IQueryable <T> Get(CompositeSpecification <T> specification)
 {
     return(this.entities
            .Where(specification.ToExpression()));
 }
 public IQueryBuilder <T> AddFilter(CompositeSpecification <T> specification)
 {
     this.query.AddFilter(specification);
     return(this);
 }