toasty 0.11.0

An async ORM for Rust supporting SQL and NoSQL databases
Documentation
use super::*;
use crate::engine::test_util::test_schema;
use stmt::{Expr, Query, Value, Values};

#[test]
fn evaluable_expressions_build_and_run() {
    let schema = test_schema();
    for (expr, expected) in [
        (Expr::Static(Value::I64(42)), Value::I64(42)),
        (Expr::in_list(42, Expr::list([42])), Value::Bool(true)),
        (Expr::any(Expr::list([false, true])), Value::Bool(true)),
        (
            Expr::exists(Query::values(Values::new(vec![42.into()]))),
            Value::Bool(true),
        ),
    ] {
        let func = Func::try_from_stmt(&expr, vec![]).unwrap();
        assert_eq!(func.eval_const(&schema), expected);
        let func = Func::from_stmt(expr, vec![]);
        assert_eq!(func.eval_const(&schema), expected);
    }
}

#[test]
fn unsupported_expressions_return_none() {
    for expr in [
        Expr::between(2, 1, 3),
        Expr::match_expr(1, vec![], Expr::count_star()),
    ] {
        assert!(Func::try_from_stmt(&expr, vec![]).is_none());
    }
}