public static And ( |
||
left | ||
right | ||
return |
public static void PrepareFromSqlQuery() { var sqlQuery = new SqlQuery("SELECT * FROM table1 WHERE a = ? AND b = ?", SqlQueryParameterNaming.Marker); sqlQuery.Parameters.Add(new SqlQueryParameter(PrimitiveTypes.Integer(), (SqlNumber)2)); sqlQuery.Parameters.Add(new SqlQueryParameter(PrimitiveTypes.Integer(), (SqlNumber)1023)); var preparer = sqlQuery.ExpressionPreparer; var queryExp = new SqlQueryExpression(); queryExp.From.Table(new ObjectName("table1")); queryExp.Items.Add(SqlExpression.Reference(new ObjectName("*"))); queryExp.Where = SqlExpression.And( SqlExpression.Equal(SqlExpression.Reference(new ObjectName("a")), SqlExpression.Parameter()), SqlExpression.Equal(SqlExpression.Reference(new ObjectName("b")), SqlExpression.Parameter())); var prepared = queryExp.Prepare(preparer); Assert.IsType <SqlQueryExpression>(prepared); var sb = new SqlStringBuilder(); sb.AppendLine("SELECT *"); sb.AppendLine(" FROM table1"); sb.Append(" WHERE a = 2 AND b = 1023"); var expectString = sb.ToString(); Assert.Equal(expectString, prepared.ToString()); }
public void NumericAnd(long a, long b, long expected) { var exp1 = SqlExpression.Constant(Field.Number(new SqlNumber(a))); var exp2 = SqlExpression.Constant(Field.Number(new SqlNumber(b))); var orExp = SqlExpression.And(exp1, exp2); SqlExpression resultExp = null; Assert.DoesNotThrow(() => resultExp = orExp.Evaluate()); Assert.IsNotNull(resultExp); Assert.IsInstanceOf <SqlConstantExpression>(resultExp); var constExp = (SqlConstantExpression)resultExp; Assert.IsNotNull(constExp.Value.Value); Assert.IsInstanceOf <NumericType>(constExp.Value.Type); Assert.IsInstanceOf <SqlNumber>(constExp.Value.Value); var actual = ((SqlNumber)constExp.Value.Value); var expectedResult = new SqlNumber(expected); Assert.AreEqual(expectedResult, actual); }
public void BooleanAnd(bool a, bool b, bool expected) { var exp1 = SqlExpression.Constant(Field.Boolean(new SqlBoolean(a))); var exp2 = SqlExpression.Constant(Field.Boolean(new SqlBoolean(b))); var andExp = SqlExpression.And(exp1, exp2); SqlExpression resultExp = null; Assert.DoesNotThrow(() => resultExp = andExp.Evaluate()); Assert.IsNotNull(resultExp); Assert.IsInstanceOf <SqlConstantExpression>(resultExp); var constExp = (SqlConstantExpression)resultExp; Assert.IsNotNull(constExp.Value.Value); Assert.IsInstanceOf <BooleanType>(constExp.Value.Type); Assert.IsInstanceOf <SqlBoolean>(constExp.Value.Value); var actual = ((SqlBoolean)constExp.Value.Value); var expectedResult = new SqlBoolean(expected); Assert.AreEqual(expectedResult, actual); }