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."); } }
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(' '); }
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."); } }