query_builder 0.3.1

Easy to use library for creating SQL-Statements
Documentation

#[cfg(test)]
mod tests {
	extern crate query_builder;
	use self::query_builder::*;
	#[test]
    fn select_simple() {
        let q = SelectQuery::select(&["user"]).from("users");

        assert_eq!(q.as_string(), "SELECT user FROM users")
    }

    #[test]
    fn select_simple_where() {
        let mut q = SelectQuery::select(&["user, name"]).from("users");
        q.whre.push(WhereClause::new("name", Value::Varchar("ezio"), None));

        assert_eq!(
            q.as_string(),
            "SELECT user, name FROM users WHERE name = 'ezio'"
        );
    }

    #[test]
    fn select_simple_where_limt() {
        let mut q = SelectQuery::select(&["user"]).from("users");
        q.whre.push(WhereClause::new("name", Value::Varchar("connor"), None));
        q.limit(42);

        assert_eq!(
            q.as_string(),
            "SELECT user FROM users WHERE name = 'connor' LIMIT 42"
        );
    }

    #[test]
    fn select_simple_order_by() {
        let mut q  = SelectQuery::select(&["user"]).from("users");
        
        q.order_by(OrderBy::Row("name"));

        assert_eq!(q.as_string(), "SELECT user FROM users ORDER BY name")
    }

    #[test]
    fn insert_simple() {
        let mut q = InsertQuery::into("users");
        q.values.insert("name", Value::Varchar("greg"));

        assert_eq!(q.as_string(), "INSERT INTO users(name) VALUES('greg')")
    }

    #[test]
    fn delete_simple() {
        let mut q = DeleteQuery::from("users");
        q.whre.push(WhereClause::new("name", Value::Varchar("george"), None));

        assert_eq!(q.as_string(), "DELETE FROM users WHERE name = 'george'")
    }

    #[test]
    fn delete_simple_limit() {
        let mut q = DeleteQuery::from("countries");
        q.limit(1);

        assert_eq!(q.as_string(), "DELETE FROM countries LIMIT 1")
    }

    #[test]
    fn update_simple() {
        let mut q = UpdateQuery::update("users");
        q.set.insert("name", Value::Varchar("george"));

        assert_eq!(q.as_string(), "UPDATE users SET name = 'george'")
    }

    #[test]
    fn update_simple_where() {
        let mut q = UpdateQuery::update("users");
        q.set.insert("name", Value::Varchar("george"));
        q.whre.push(WhereClause::new("name", Value::Varchar("steve"), None));

        assert_eq!(
            q.as_string(),
            "UPDATE users SET name = 'george' WHERE name = 'steve'"
        )
    }

    #[test]
    fn update_simple_where_limit() {
        let mut q = UpdateQuery::update("users");
        q.set.insert("name", Value::Varchar("george"));
        q.whre.push(WhereClause::new("name", Value::Varchar("steve"), None));
        q.limit(1);

        assert_eq!(
            q.as_string(),
            "UPDATE users SET name = 'george' WHERE name = 'steve' LIMIT 1"
        );
    }
}