From 2bba146e9bb31052d8d9ac37e5050cf1b56725db Mon Sep 17 00:00:00 2001 From: Panagiotis Karatakis Date: Tue, 22 Nov 2022 12:24:18 +0200 Subject: [PATCH] Add load_one tests --- src/entity/loader.rs | 48 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/src/entity/loader.rs b/src/entity/loader.rs index 3946e3bb..3b325e7a 100644 --- a/src/entity/loader.rs +++ b/src/entity/loader.rs @@ -284,6 +284,54 @@ where mod tests { #[tokio::test] + async fn test_load_one() { + use crate::{ + entity::prelude::*, tests_cfg::*, DbBackend, IntoMockRow, LoaderTrait, MockDatabase, + }; + + let db = MockDatabase::new(DbBackend::Postgres) + .append_query_results(vec![ + vec![ + cake::Model { + id: 1, + name: "New York Cheese".to_owned(), + }.into_mock_row(), + cake::Model { + id: 2, + name: "London Cheese".to_owned(), + }.into_mock_row() + ], + ]) + .into_connection(); + + let fruits = vec![ + fruit::Model { + id: 1, + name: "Apple".to_owned(), + cake_id: Some(1), + } + ]; + + let cakes = fruits + .load_one(cake::Entity::find(), &db) + .await + .expect("Should return something"); + + assert_eq!( + cakes, + vec![ + Some( + cake::Model { + id: 1, + name: "New York Cheese".to_owned(), + } + ) + ] + ); + } + + #[tokio::test] + async fn test_load_many() { use crate::{ entity::prelude::*, tests_cfg::*, DbBackend, IntoMockRow, LoaderTrait, MockDatabase,