From 08497f1767aa954c9919b361f56ac51e4bf3bd3d Mon Sep 17 00:00:00 2001 From: Chris Tsang Date: Sat, 7 Aug 2021 19:10:30 +0800 Subject: [PATCH] Cleanup --- tests/pg_tests.rs | 103 ---------------------------------------------- 1 file changed, 103 deletions(-) delete mode 100644 tests/pg_tests.rs diff --git a/tests/pg_tests.rs b/tests/pg_tests.rs deleted file mode 100644 index ca0dfa82..00000000 --- a/tests/pg_tests.rs +++ /dev/null @@ -1,103 +0,0 @@ -use sea_orm::{ - entity::prelude::*, Database, DatabaseBackend, DatabaseConnection, DbErr, ExecResult, Set, - Statement, -}; - -pub mod common; -pub use common::bakery_chain::*; - -use sea_query::{ColumnDef, TableCreateStatement}; - -// cargo test --test pg_tests -- --nocapture -#[cfg_attr(feature = "runtime-async-std", async_std::test)] -#[cfg_attr(feature = "runtime-actix", actix_rt::test)] -#[cfg_attr(feature = "runtime-tokio", tokio::test)] -#[cfg(feature = "sqlx-postgres")] -async fn main() { - let base_url = "postgres://root:root@localhost"; - let db_name = "bakery_chain_schema_crud_tests"; - - let db = setup(base_url, db_name).await; - setup_schema(&db).await; - create_entities(&db).await; -} - -pub async fn setup(base_url: &str, db_name: &str) -> DatabaseConnection { - let url = format!("{}/postgres", base_url); - let db = Database::connect(&url).await.unwrap(); - - let _drop_db_result = db - .execute(Statement::from_string( - DatabaseBackend::Postgres, - format!("DROP DATABASE IF EXISTS \"{}\";", db_name), - )) - .await - .unwrap(); - - let _create_db_result = db - .execute(Statement::from_string( - DatabaseBackend::Postgres, - format!("CREATE DATABASE \"{}\";", db_name), - )) - .await - .unwrap(); - - let url = format!("{}/{}", base_url, db_name); - Database::connect(&url).await.unwrap() -} - -async fn setup_schema(db: &DatabaseConnection) { - assert!(create_bakery_table(db).await.is_ok()); -} - -async fn create_table( - db: &DatabaseConnection, - stmt: &TableCreateStatement, -) -> Result { - let builder = db.get_database_backend(); - db.execute(builder.build(stmt)).await -} - -pub async fn create_bakery_table(db: &DatabaseConnection) -> Result { - let stmt = sea_query::Table::create() - .table(bakery::Entity) - .if_not_exists() - .col( - ColumnDef::new(bakery::Column::Id) - .integer() - .not_null() - .auto_increment() - .primary_key(), - ) - .col(ColumnDef::new(bakery::Column::Name).string()) - .col(ColumnDef::new(bakery::Column::ProfitMargin).double()) - .to_owned(); - - create_table(db, &stmt).await -} - -async fn create_entities(db: &DatabaseConnection) { - test_create_bakery(db).await; -} - -pub async fn test_create_bakery(db: &DatabaseConnection) { - let seaside_bakery = bakery::ActiveModel { - name: Set("SeaSide Bakery".to_owned()), - profit_margin: Set(10.4), - ..Default::default() - }; - let res = Bakery::insert(seaside_bakery) - .exec(db) - .await - .expect("could not insert bakery"); - - let bakery = Bakery::find_by_id(res.last_insert_id) - .one(db) - .await - .expect("could not find bakery"); - - assert!(bakery.is_some()); - let bakery_model = bakery.unwrap(); - assert_eq!(bakery_model.name, "SeaSide Bakery"); - assert_eq!(bakery_model.profit_margin, 10.4); -}