use openehr_postgresql::PostgresqlDialect;
use openehr_store::{Dialect, conformance, ddl_script};
#[test]
fn the_dialect_is_self_consistent() {
conformance::check_dialect(&PostgresqlDialect);
}
#[test]
fn the_ddl_is_this_engine_and_not_another() {
let sql = ddl_script(&PostgresqlDialect);
assert!(
sql.contains("jsonb"),
"PostgreSQL stores canonical JSON as jsonb"
);
assert!(sql.contains("timestamptz"));
assert!(!sql.contains("VARCHAR2"), "that is Oracle");
assert!(!sql.contains("nvarchar"), "that is SQL Server");
assert!(!sql.contains("TINYINT"), "that is MySQL");
assert!(!sql.contains('`'), "backticks are MySQL quoting");
}
#[test]
fn identifiers_are_quoted_for_this_engine() {
assert_eq!(
PostgresqlDialect.quote("openehr_version"),
"\"openehr_version\""
);
let sql = ddl_script(&PostgresqlDialect);
assert!(sql.contains(&PostgresqlDialect.quote("openehr_composition_index")));
}
#[test]
fn every_table_and_index_is_emitted() {
let sql = ddl_script(&PostgresqlDialect);
for table in openehr_store::TABLES {
assert!(sql.contains(table.name), "missing table {}", table.name);
for index in table.indexes {
assert!(sql.contains(index.name), "missing index {}", index.name);
}
}
}