sntl 0.1.1

Compile-time guarded ORM for PostgreSQL — your data's guardian from compile to production
Documentation
use sntl::core::Column;
use sntl::core::query::ModelQuery;

#[test]
fn pascal_find_builds_select() {
    let q: ModelQuery = ModelQuery::from_table("users");
    let (sql, _) = q.Build();
    assert_eq!(sql, "SELECT \"users\".* FROM \"users\"");
}

#[test]
fn pascal_where_and_order() {
    let col = Column::new("users", "email");
    let q: ModelQuery = ModelQuery::from_table("users")
        .Where(col.eq("test@test.com"))
        .OrderBy(Column::new("users", "name").asc())
        .Limit(10);
    let (sql, binds) = q.Build();
    assert!(sql.contains("WHERE"));
    assert!(sql.contains("ORDER BY"));
    assert!(sql.contains("LIMIT 10"));
    assert_eq!(binds.len(), 1);
}

#[test]
fn pascal_offset() {
    let q: ModelQuery = ModelQuery::from_table("users").Limit(10).Offset(20);
    let (sql, _) = q.Build();
    assert!(sql.contains("LIMIT 10"));
    assert!(sql.contains("OFFSET 20"));
}