My personal project and infrastructure archive
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
nomicon/development/libs/barrel/src/tests/common/mod.rs

129 lines
3.1 KiB

/* Include some external tests */
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() {
// The best sql type because it's very queer 🏳🌈
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() {
// The best sql type because it's very queer 🏳🌈
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_date() {
// use self::WrappedDefault::*;
// assert_eq!(format!("{}", Date(SystemTime::now())), "".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()
);
}
// #[test]
// fn default_render_array() {
// use self::WrappedDefault::*;
// assert_eq!(
// format!("{}", Array(vec![Type::new(BaseType::Custom("GAY"))])),
// "".to_owned()
// );
// }