mod cloning;
mod utils;
#[cfg(all(feature = "sqlite3", feature = "pg", feature = "mysql"))]
mod runtime;
use crate::types::{BaseType, Type, WrappedDefault};
use crate::Migration;
#[test]
fn create_multiple_tables() {
let mut migr = Migration::new();
migr.create_table("foo", |_| {});
migr.create_table("bar", |_| {});
assert!(migr.changes.len() == 2);
}
#[test]
fn create_table_if_not_exists() {
let mut migr = Migration::new();
migr.create_table_if_not_exists("foo", |_| {});
assert!(migr.changes.len() == 1);
}
#[test]
fn pin_public_api() {
let tt = Type::new(BaseType::Custom("GAY"));
assert_eq!(tt.nullable, false);
assert_eq!(tt.indexed, false);
assert_eq!(tt.unique, false);
assert_eq!(tt.increments, false);
assert_eq!(tt.default, None);
assert_eq!(tt.size, None);
assert_eq!(tt.inner, BaseType::Custom("GAY"));
}
#[test]
fn pin_struct_layout() {
let tt = Type {
nullable: false,
indexed: false,
primary: false,
unique: false,
increments: false,
default: None,
size: None,
inner: BaseType::Custom("GAY"),
};
assert_eq!(tt.nullable, false);
assert_eq!(tt.indexed, false);
assert_eq!(tt.primary, false);
assert_eq!(tt.unique, false);
assert_eq!(tt.increments, false);
assert_eq!(tt.default, None);
assert_eq!(tt.size, None);
assert_eq!(tt.inner, BaseType::Custom("GAY"));
}
#[test]
fn default_render_anytext() {
use self::WrappedDefault::*;
assert_eq!(format!("{}", AnyText("hello".into())), "hello".to_owned());
}
#[test]
fn default_render_integer() {
use self::WrappedDefault::*;
assert_eq!(format!("{}", Integer(42)), "42".to_owned());
}
#[test]
fn default_render_float() {
use self::WrappedDefault::*;
assert_eq!(format!("{}", Float(42000.0)), "42000".to_owned());
}
#[test]
fn default_render_double() {
use self::WrappedDefault::*;
assert_eq!(
format!("{}", Double(123456789.123456789)),
"123456789.12345679".to_owned()
);
}
#[test]
fn default_render_uuid() {
use self::WrappedDefault::*;
assert_eq!(
format!("{}", UUID("b616ab2a-e13c-11e8-9f32-f2801f1b9fd1".into())),
"b616ab2a-e13c-11e8-9f32-f2801f1b9fd1".to_owned()
);
}
#[test]
fn default_render_binary() {
use self::WrappedDefault::*;
assert_eq!(
format!(
"{}",
Binary(&[
0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xA, 0xB, 0xC, 0xD, 0xE, 0xF
])
),
"[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]".to_owned()
);
}