/// <summary>
        /// Reduce produces a constraint from the operator and
        /// any arguments. It takes the arguments from the constraint
        /// stack and pushes the resulting constraint on it.
        /// </summary>
        /// <param name="stack"></param>
        public override void Reduce(ConstraintBuilder.ConstraintStack stack)
        {
            IConstraint right = stack.Pop();
            IConstraint left  = stack.Pop();

            stack.Push(ApplyOperator(left, right));
        }
        public override void Reduce(ConstraintBuilder.ConstraintStack stack)
        {
            var top = stack.Pop();

            ((EntityEqualityConstraint)top).ByInterface(type);
            stack.Push(top);
        }
        public override void Reduce(ConstraintBuilder.ConstraintStack stack)
        {
            // Disallow a plain Hurls.Exception, a type must be provided to avoid catching the incorrect exception
            if (stack.Empty)
            {
                throw new InvalidOperationException();
            }

            stack.Push(new HurlsConstraint(stack.Pop()));
        }
Example #4
0
 /// <summary>
 /// Reduce produces a constraint from the operator and
 /// any arguments. It takes the arguments from the constraint
 /// stack and pushes the resulting constraint on it.
 /// </summary>
 /// <param name="stack"></param>
 public override void Reduce(ConstraintBuilder.ConstraintStack stack)
 {
     if (RightContext == null || RightContext is BinaryOperator)
     {
         stack.Push(new PropertyExistsConstraint(name));
     }
     else
     {
         stack.Push(new PropertyConstraint(name, stack.Pop()));
     }
 }
 /// <summary>
 /// Reduce produces a constraint from the operator and
 /// any arguments. It takes the arguments from the constraint
 /// stack and pushes the resulting constraint on it.
 /// </summary>
 public override void Reduce(ConstraintBuilder.ConstraintStack stack)
 {
     if (RightContext == null || RightContext is BinaryOperator)
     {
         stack.Push(new ThrowsExceptionConstraint());
     }
     else
     {
         stack.Push(new ThrowsConstraint(stack.Pop()));
     }
 }
 /// <summary>
 ///     Reduce produces a constraint from the operator and
 ///     any arguments. It takes the arguments from the constraint
 ///     stack and pushes the resulting constraint on it.
 /// </summary>
 public override void Reduce(ConstraintBuilder.ConstraintStack stack)
 {
     if (RightContext == null || RightContext is BinaryOperator)
     {
         stack.Push(new AttributeExistsConstraint(type));
     }
     else
     {
         stack.Push(new AttributeConstraint(type, stack.Pop()));
     }
 }
 public override void Reduce(ConstraintBuilder.ConstraintStack stack)
 {
     if (RightContext == null || RightContext is BinaryOperator)
     {
         stack.Push(new ExtendedExactCountConstraint(expectedCount));
     }
     else
     {
         stack.Push(new ExtendedExactCountConstraint(expectedCount, stack.Pop()));
     }
 }
Example #8
0
 /// <summary>
 /// Reduce produces a constraint from the operator and
 /// any arguments. It takes the arguments from the constraint
 /// stack and pushes the resulting constraint on it.
 /// </summary>
 /// <param name="stack"></param>
 public abstract void Reduce(ConstraintBuilder.ConstraintStack stack);
Example #9
0
 /// <summary>
 /// Reduce produces a constraint from the operator and
 /// any arguments. It takes the arguments from the constraint
 /// stack and pushes the resulting constraint on it.
 /// </summary>
 /// <param name="stack"></param>
 public override void Reduce(ConstraintBuilder.ConstraintStack stack)
 {
     stack.Push(ApplyPrefix(stack.Pop()));
 }
 /// <summary>
 ///     Reduce produces a constraint from the operator and
 ///     any arguments. It takes the arguments from the constraint
 ///     stack and pushes the resulting constraint on it.
 /// </summary>
 /// <param name="stack" />
 public override void Reduce(ConstraintBuilder.ConstraintStack stack)
 {
     stack.Push(new JsonPropertyConstraint(_name, stack.Pop( )));
 }