From 1fa7c7e177e98770cbaeab39ab190a813ac39d26 Mon Sep 17 00:00:00 2001 From: Sam Samai Date: Sat, 10 Jul 2021 22:07:57 +1000 Subject: [PATCH] Test delete cake and bakery --- tests/bakery_chain_tests.rs | 3 ++ tests/crud/deletes.rs | 59 +++++++++++++++++++++++++++++++++++++ tests/crud/mod.rs | 1 + 3 files changed, 63 insertions(+) create mode 100644 tests/crud/deletes.rs diff --git a/tests/bakery_chain_tests.rs b/tests/bakery_chain_tests.rs index 9ab3a58d..81f8661f 100644 --- a/tests/bakery_chain_tests.rs +++ b/tests/bakery_chain_tests.rs @@ -34,4 +34,7 @@ async fn create_entities(db: &DbConn) { crud::updates::test_update_cake(db).await; crud::updates::test_update_bakery(db).await; + + crud::deletes::test_delete_cake(db).await; + crud::deletes::test_delete_bakery(db).await; } diff --git a/tests/crud/deletes.rs b/tests/crud/deletes.rs new file mode 100644 index 00000000..08ccada5 --- /dev/null +++ b/tests/crud/deletes.rs @@ -0,0 +1,59 @@ +pub use super::*; +use rust_decimal_macros::dec; + +pub async fn test_delete_cake(db: &DbConn) { + let initial_cakes = Cake::find().all(db).await.unwrap().len(); + + let seaside_bakery = bakery::ActiveModel { + name: Set("SeaSide Bakery".to_owned()), + profit_margin: Set(10.4), + ..Default::default() + }; + let bakery_insert_res: InsertResult = Bakery::insert(seaside_bakery) + .exec(db) + .await + .expect("could not insert bakery"); + + let mud_cake = cake::ActiveModel { + name: Set("Mud Cake".to_owned()), + price: Set(dec!(10.25)), + gluten_free: Set(false), + bakery_id: Set(Some(bakery_insert_res.last_insert_id as i32)), + ..Default::default() + }; + + let cake = mud_cake.save(db).await.expect("could not insert cake"); + + let cakes = Cake::find().all(db).await.unwrap(); + assert_eq!(cakes.len(), initial_cakes + 1); + + let _result = cake.delete(db).await.expect("failed to delete cake"); + + let cakes = Cake::find().all(db).await.unwrap(); + assert_eq!(cakes.len(), initial_cakes); +} + +pub async fn test_delete_bakery(db: &DbConn) { + let initial_bakeries = Bakery::find().all(db).await.unwrap().len(); + + let bakery = bakery::ActiveModel { + name: Set("SeaSide Bakery".to_owned()), + profit_margin: Set(10.4), + ..Default::default() + } + .save(db) + .await + .expect("could not insert bakery"); + + assert_eq!( + Bakery::find().all(db).await.unwrap().len(), + initial_bakeries + 1 + ); + + let _result = bakery.delete(db).await.expect("failed to delete bakery"); + + assert_eq!( + Bakery::find().all(db).await.unwrap().len(), + initial_bakeries + ); +} diff --git a/tests/crud/mod.rs b/tests/crud/mod.rs index c69dee3a..ae2d3c82 100644 --- a/tests/crud/mod.rs +++ b/tests/crud/mod.rs @@ -5,6 +5,7 @@ pub use super::bakery_chain::*; pub mod create_cake; pub mod create_lineitem; pub mod create_order; +pub mod deletes; pub mod updates; pub async fn test_create_bakery(db: &DbConn) {