#![cfg(feature = "dialect-firebird")]
use sz_orm_core::dialect::{ColumnDef, Dialect, FirebirdDialect};
use sz_orm_core::DbType;
#[test]
fn test_firebird_db_type() {
let dialect = FirebirdDialect;
assert_eq!(dialect.db_type(), DbType::Firebird);
}
#[test]
fn test_firebird_quote() {
let dialect = FirebirdDialect;
assert_eq!(dialect.quote("users"), "\"users\"");
assert_eq!(dialect.quote("user\"id"), "\"user\"\"id\"");
}
#[test]
fn test_firebird_escape_string() {
let dialect = FirebirdDialect;
assert_eq!(dialect.escape_string("hello"), "hello");
assert_eq!(dialect.escape_string("it's"), "it''s");
}
#[test]
fn test_firebird_pagination() {
let dialect = FirebirdDialect;
let sql = dialect.build_pagination("SELECT * FROM users", 2, 10);
assert_eq!(sql, "SELECT * FROM users ROWS 11 TO 20");
}
#[test]
fn test_firebird_auto_increment() {
let dialect = FirebirdDialect;
assert_eq!(
dialect.auto_increment_keyword(),
"GENERATED BY DEFAULT AS IDENTITY"
);
}
#[test]
fn test_firebird_supports_returning() {
let dialect = FirebirdDialect;
assert!(dialect.supports_returning());
}
#[test]
fn test_firebird_create_table() {
let dialect = FirebirdDialect;
let cols = vec![
ColumnDef {
name: "id".to_string(),
sql_type: "BIGINT".to_string(),
nullable: false,
default: None,
auto_increment: true,
primary_key: true,
},
ColumnDef {
name: "name".to_string(),
sql_type: "VARCHAR(100)".to_string(),
nullable: false,
default: None,
auto_increment: false,
primary_key: false,
},
];
let sql = dialect.build_create_table("users", &cols);
assert!(sql.contains("CREATE TABLE"));
assert!(sql.contains("GENERATED BY DEFAULT AS IDENTITY"));
assert!(sql.contains("PRIMARY KEY"));
}
#[test]
fn test_firebird_concat() {
let dialect = FirebirdDialect;
assert_eq!(dialect.concat(&["a", "b", "c"]), "a || b || c");
assert_eq!(dialect.concat(&[]), "''");
}
#[test]
fn test_firebird_json_type() {
let dialect = FirebirdDialect;
assert_eq!(dialect.json_type(), "BLOB SUB_TYPE TEXT");
}
#[test]
fn test_firebird_if_exists() {
let dialect = FirebirdDialect;
assert!(dialect.supports_if_exists());
assert!(dialect.supports_if_not_exists());
}