use dml_tools::sql::*;
use dml_tools::type_writers::Postgresql;
mod common;
use common::*;
#[test]
fn test_tables() {
use std::fs;
let afields = read_test_tables("tests/fixtures/test-tables.yaml").expect("to open test-tables.yaml");
let fields: Fields = afields.basic.iter().map(|(k,v)| Field::new( k, v)).collect();
let table_path = ObjectPath::new_table("demo", "prueba");
let fk = ForeignKey{
table:table_path.to_owned(),
fields:vec!["ws_id".to_owned(), "user_id".to_owned()],
ref_table:ObjectPath::new_table("demo", "cache"),
ref_fields:vec!["ws".to_owned(), "user".to_owned()],
on_delete:FKOn::Restrict, on_update:FKOn::Restrict,
};
let tbl = Table::new(&&table_path, fields, Some(vec![fk]));
let ttf="tests/fixtures/test-table.sql";
let type_writer = Box::new(Postgresql{});
let (left, right) = (tbl.to_sql(type_writer.as_ref()), fs::read_to_string(ttf).expect(ttf));
print_if_different(&left, &right);
assert_eq!(left, right);
if let Some(indexes) = tbl.indexes() {
let tif="tests/fixtures/test-table-idx.sql";
assert_eq!(indexes[0].to_sql(type_writer.as_ref()), fs::read_to_string(tif).expect(tif));
}
}