void AssumeException(object o1, SoqlRelationalOperator op, object o2)
 {
     try
     {
         // Console.WriteLine("Checking that {0} ({1}) {2} {3} ({4}) will throw... ", o1, o1.GetType(), op, o2, o2.GetType());
         SoqlBooleanRelationalExpression.Compare(o1, o2, op);
         // Assert.IsTrue("Failed. Exception was expected!", false);
     }
     catch (Exception)
     {
         Assert.IsTrue(true);
     }
 }
        public static object Compare(object v1, object v2, SoqlRelationalOperator op)
        {
            v1 = Sooda.Utils.SqlTypesUtil.Unwrap(v1);
            v2 = Sooda.Utils.SqlTypesUtil.Unwrap(v2);

            if (v1 == null || v2 == null)
            {
                return(null);
            }

            IComparer comparer = Comparer.Default;

            PromoteTypes(ref v1, ref v2);
            switch (op)
            {
            case SoqlRelationalOperator.Equal:
                return(comparer.Compare(v1, v2) == 0);

            case SoqlRelationalOperator.NotEqual:
                return(comparer.Compare(v1, v2) != 0);

            case SoqlRelationalOperator.Greater:
                return(comparer.Compare(v1, v2) > 0);

            case SoqlRelationalOperator.GreaterOrEqual:
                return(comparer.Compare(v1, v2) >= 0);

            case SoqlRelationalOperator.LessOrEqual:
                return(comparer.Compare(v1, v2) <= 0);

            case SoqlRelationalOperator.Less:
                return(comparer.Compare(v1, v2) < 0);

            case SoqlRelationalOperator.Like:
                string s1 = Convert.ToString(v1);
                string s2 = Convert.ToString(v2);

                return(SoqlUtils.Like(s1, s2));

            default:
                throw new NotSupportedException("Relational operator " + op + " is not supported.");
            }
        }
Ejemplo n.º 3
0
        protected void OutputRelationalOperator(SoqlRelationalOperator op)
        {
            Output.Write(' ');
            switch (op)
            {
            case SoqlRelationalOperator.Greater:
                Output.Write('>');
                break;

            case SoqlRelationalOperator.Less:
                Output.Write('<');
                break;

            case SoqlRelationalOperator.LessOrEqual:
                Output.Write("<=");
                break;

            case SoqlRelationalOperator.GreaterOrEqual:
                Output.Write(">=");
                break;

            case SoqlRelationalOperator.Equal:
                Output.Write('=');
                break;

            case SoqlRelationalOperator.NotEqual:
                Output.Write("<>");
                break;

            case SoqlRelationalOperator.Like:
                Output.Write("like");
                break;

            default:
                throw new NotImplementedException(op.ToString());
            }
            Output.Write(' ');
        }
Ejemplo n.º 4
0
        protected void OutputRelationalOperator(SoqlRelationalOperator op)
        {
            Output.Write(' ');
            switch (op)
            {
                case SoqlRelationalOperator.Greater:
                    Output.Write('>');
                    break;

                case SoqlRelationalOperator.Less:
                    Output.Write('<');
                    break;

                case SoqlRelationalOperator.LessOrEqual:
                    Output.Write("<=");
                    break;

                case SoqlRelationalOperator.GreaterOrEqual:
                    Output.Write(">=");
                    break;

                case SoqlRelationalOperator.Equal:
                    Output.Write('=');
                    break;

                case SoqlRelationalOperator.NotEqual:
                    Output.Write("<>");
                    break;

                case SoqlRelationalOperator.Like:
                    Output.Write("like");
                    break;

                default:
                    throw new NotImplementedException(op.ToString());
            }
            Output.Write(' ');
        }
 public SoqlBooleanRelationalExpression(SoqlExpression par1, SoqlExpression par2, SoqlRelationalOperator op)
 {
     this.par1 = par1;
     this.par2 = par2;
     this.op   = op;
 }
 void AssumeAntiSymmetric(object o1, SoqlRelationalOperator op, object o2, bool value)
 {
     Assume(o1, op, o2, value);
     Assume(o2, op, o1, !value);
 }
 void Assume(object o1, SoqlRelationalOperator op, object o2, bool value)
 {
     // Console.WriteLine("Checking that {0} ({1}) {2} {3} ({4}) = {5}...", o1, o1.GetType(), op, o2, o2.GetType(), value);
     Assert.AreEqual(value, (bool)SoqlBooleanRelationalExpression.Compare(o1, o2, op));
 }
 void AssumeSymmetric(object o1, SoqlRelationalOperator op, object o2, bool value)
 {
     Assume(o1, op, o2, value);
     Assume(o2, op, o1, value);
 }
 void AssumeException(object o1, SoqlRelationalOperator op, object o2)
 {
     try
     {
         // Console.WriteLine("Checking that {0} ({1}) {2} {3} ({4}) will throw... ", o1, o1.GetType(), op, o2, o2.GetType());
         SoqlBooleanRelationalExpression.Compare(o1, o2, op);
         // Assert.IsTrue("Failed. Exception was expected!", false);
     }
     catch (Exception)
     {
         Assert.IsTrue(true);
     }
 }
 void Assume(object o1, SoqlRelationalOperator op, object o2, bool value)
 {
     // Console.WriteLine("Checking that {0} ({1}) {2} {3} ({4}) = {5}...", o1, o1.GetType(), op, o2, o2.GetType(), value);
     Assert.AreEqual(value, (bool)SoqlBooleanRelationalExpression.Compare(o1, o2, op));
 }
 public SoqlBooleanRelationalExpression(SoqlExpression par1, SoqlExpression par2, SoqlRelationalOperator op)
 {
     this.par1 = par1;
     this.par2 = par2;
     this.op = op;
 }
        public static object Compare(object v1, object v2, SoqlRelationalOperator op)
        {
            v1 = Sooda.Utils.SqlTypesUtil.Unwrap(v1);
            v2 = Sooda.Utils.SqlTypesUtil.Unwrap(v2);

            if (v1 == null || v2 == null)
                return null;

            IComparer comparer = Comparer.Default;
            PromoteTypes(ref v1, ref v2);
            switch (op)
            {
                case SoqlRelationalOperator.Equal:
                    return comparer.Compare(v1, v2) == 0;

                case SoqlRelationalOperator.NotEqual:
                    return comparer.Compare(v1, v2) != 0;

                case SoqlRelationalOperator.Greater:
                    return comparer.Compare(v1, v2) > 0;

                case SoqlRelationalOperator.GreaterOrEqual:
                    return comparer.Compare(v1, v2) >= 0;

                case SoqlRelationalOperator.LessOrEqual:
                    return comparer.Compare(v1, v2) <= 0;

                case SoqlRelationalOperator.Less:
                    return comparer.Compare(v1, v2) < 0;

                case SoqlRelationalOperator.Like:
                    string s1 = Convert.ToString(v1);
                    string s2 = Convert.ToString(v2);

                    return SoqlUtils.Like(s1, s2);

                default:
                    throw new NotSupportedException("Relational operator " + op + " is not supported.");
            }
        }