private static CodeBinaryOperatorExpression Binary(BinaryCondition condition, CodeBinaryOperatorType type)
 {
     return(new CodeBinaryOperatorExpression(
                Generate(condition.Left, condition.Right),
                type,
                Generate(condition.Right, condition.Left)));
 }
 private void ValidateBinaryCondition <T>(ValidationContext context, BinaryCondition <T> condition)
     where T : IComparable <T>
 {
     context.AssertStringNotEmpty(condition.Variable, PropertyNames.VARIABLE);
     context.AssertIsValidJsonPath(condition.Variable, PropertyNames.VARIABLE);
     context.AssertNotNull(condition.ExpectedValue, "ExpectedValue");
 }
示例#3
0
        private ConditionControlBase GetControlForCondition(ICondition c, ConditionControlBase parent)
        {
            ConditionControlBase control = null;

            if (c == null)
            {
                ConditionPlaceholderControl cpc = new ConditionPlaceholderControl();
                cpc.ParentConditionControl = parent;
                cpc.InsertCondition       += new EventHandler <InsertConditionEventArgs>(InsertCondition);
                Controls.Add(cpc);
                control = cpc;
            }
            else if (c.GetType() == typeof(ResponseStatusCodeEqualToCondition))
            {
                ResponseStatusEqualToControl ctl = new ResponseStatusEqualToControl();
                ctl.Condition = c;
                Controls.Add(ctl);
                control = ctl;
            }
            else if (c.GetType() == typeof(ResponseStatusCodeEqualToNotCondition))
            {
                ResponseStatusNotEqualToControl ctl = new ResponseStatusNotEqualToControl();
                ctl.Condition = c;
                Controls.Add(ctl);
                control = ctl;
            }
            else if (c.GetType() == typeof(ResponseBodyContainsCondition))
            {
                ResponseBodyContainsControl ctl = new ResponseBodyContainsControl();
                ctl.Condition = c;
                Controls.Add(ctl);
                control = ctl;
            }
            else if (c.GetType() == typeof(ResponseBodyContainsNotCondition))
            {
                ResponseBodyContainsNotControl ctl = new ResponseBodyContainsNotControl();
                ctl.Condition = c;
                Controls.Add(ctl);
                control = ctl;
            }
            else if (c.GetType() == typeof(ResponseBodyRegexMatchCondition))
            {
                ResponseBodyContainsRegexControl ctl = new ResponseBodyContainsRegexControl();
                ctl.Condition = c;
                Controls.Add(ctl);
                control = ctl;
            }
            else if (c.GetType() == typeof(ResponseBodyRegexMatchNotCondition))
            {
                ResponseBodyContainsRegexNotControl ctl = new ResponseBodyContainsRegexNotControl();
                ctl.Condition = c;
                Controls.Add(ctl);
                control = ctl;
            }
            else if (c.GetType() == typeof(AndCondition) || c.GetType() == typeof(OrCondition))
            {
                BinaryCondition        bc  = c as BinaryCondition;
                BinaryConditionControl ctl = (c.GetType() == typeof(AndCondition) ? (BinaryConditionControl) new AndControl() : (BinaryConditionControl) new OrControl());
                ctl.Condition = c;
                Controls.Add(ctl);
                control = ctl;

                ctl.SubconditionControls.Add(GetControlForCondition(bc.Condition2 as ICondition, ctl));

                ctl.SubconditionControls.Add(GetControlForCondition(bc.Condition1 as ICondition, ctl));
            }

            control.ParentConditionControl = parent;

            //if (parent != null)
            //    parent.SubconditionControls.Add(control);

            control.DeleteCondition += new EventHandler <DeleteConditionEventArgs>(DeleteCondition);

            return(control);
        }