public void Transform_may_create_a_transformed_non_matching_specification_expression_for_a_new_type(Pet pet)
        {
            var spec        = Spec.Expr <Person>(x => x.Name == "One");
            var transformed = spec.Transform(t => t.To <Pet>(x => x.Owner));

            pet.Owner.Name = "Two";
            Assert.That(() => transformed.Matches(pet), Is.False);
        }
示例#2
0
        public void Transform_expression_returns_a_spec_which_is_compatible_with_NHibernate()
        {
            using (var session = sessionFactory.OpenSession())
            {
                SetupQueryIntegrationTest(session);

                var personSpec = Spec.Expr <Person>(x => x.Name == "Jane Doe");
                var petSpec    = personSpec.Transform(t => t.To <Pet>(x => x.Owner));

                Assert.That(session.Query <Pet>().Where(petSpec).Select(x => x.Identity).FirstOrDefault(), Is.EqualTo(1));
            }
        }
示例#3
0
        public Expression <Func <Ticket, bool> > GetExpression()
        {
            ISpecificationExpression <Ticket> output = Spec.Expr <Ticket>(x => true);

            foreach (var labelName in labelNames)
            {
                var nameExpression = Spec.Expr <Ticket>(x => x.Labels.Any(l => l.Name == labelName));
                output = output.And(nameExpression);
            }

            return(output.GetExpression());
        }
示例#4
0
 public ISpecificationExpression <Ticket> GetSpecification()
 => specBeingBuilt ?? Spec.Expr <Ticket>(x => true);
 public ISpecificationExpression <Ticket> Equals(int value)
 => Spec.Expr <Ticket>(t => t.StoryPoints == value);
 public ISpecificationExpression <Ticket> LessThanOrEqual(int value)
 => Spec.Expr <Ticket>(t => t.StoryPoints <= value);
 public ISpecificationExpression <Ticket> GreaterThan(int value)
 => Spec.Expr <Ticket>(t => t.StoryPoints > value);