Skip to content

Commit

Permalink
Add test cases
Browse files Browse the repository at this point in the history
  • Loading branch information
billy1624 committed Apr 20, 2023
1 parent 7170c57 commit b68f9de
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 2 deletions.
41 changes: 40 additions & 1 deletion tests/cursor_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ pub mod common;

pub use common::{features::*, setup::*, TestContext};
use pretty_assertions::assert_eq;
use sea_orm::{entity::prelude::*, FromQueryResult};
use sea_orm::{entity::prelude::*, DerivePartialModel, FromQueryResult};
use serde_json::json;

#[sea_orm_macros::test]
Expand Down Expand Up @@ -219,6 +219,45 @@ pub async fn cursor_pagination(db: &DatabaseConnection) -> Result<(), DbErr> {
[Row { id: 6 }, Row { id: 7 }]
);

#[derive(DerivePartialModel, FromQueryResult, Debug, PartialEq)]
#[sea_orm(entity = "Entity")]
struct PartialRow {
#[sea_orm(from_col = "id")]
id: i32,
#[sea_orm(from_expr = "sea_query::Expr::col(Column::Id).add(1000)")]
id_shifted: i32,
}

let mut cursor = cursor.into_partial_model::<PartialRow>();

assert_eq!(
cursor.first(2).all(db).await?,
[
PartialRow {
id: 6,
id_shifted: 1006,
},
PartialRow {
id: 7,
id_shifted: 1007,
}
]
);

assert_eq!(
cursor.first(3).all(db).await?,
[
PartialRow {
id: 6,
id_shifted: 1006,
},
PartialRow {
id: 7,
id_shifted: 1007,
}
]
);

// Fetch JSON value

let mut cursor = cursor.into_json();
Expand Down
26 changes: 25 additions & 1 deletion tests/relational_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ pub use chrono::offset::Utc;
pub use common::{bakery_chain::*, setup::*, TestContext};
pub use rust_decimal::prelude::*;
pub use rust_decimal_macros::dec;
pub use sea_orm::{entity::*, query::*, DbErr, FromQueryResult};
pub use sea_orm::{entity::*, query::*, DbErr, DerivePartialModel, FromQueryResult};
pub use sea_query::{Alias, Expr, Func, SimpleExpr};
pub use uuid::Uuid;

// Run the test locally:
Expand Down Expand Up @@ -66,6 +67,7 @@ pub async fn left_join() {
.filter(baker::Column::Name.contains("Baker 1"));

let result = select
.clone()
.into_model::<SelectResult>()
.one(&ctx.db)
.await
Expand All @@ -74,6 +76,28 @@ pub async fn left_join() {
assert_eq!(result.name.as_str(), "Baker 1");
assert_eq!(result.bakery_name, Some("SeaSide Bakery".to_string()));

#[derive(DerivePartialModel, FromQueryResult, Debug, PartialEq)]
#[sea_orm(entity = "Baker")]
struct PartialSelectResult {
name: String,
#[sea_orm(from_expr = "Expr::col((bakery::Entity, bakery::Column::Name))")]
bakery_name: Option<String>,
#[sea_orm(
from_expr = r#"SimpleExpr::FunctionCall(Func::upper(Expr::col((bakery::Entity, bakery::Column::Name))))"#
)]
bakery_name_upper: Option<String>,
}

let result = select
.into_partial_model::<PartialSelectResult>()
.one(&ctx.db)
.await
.unwrap()
.unwrap();
assert_eq!(result.name.as_str(), "Baker 1");
assert_eq!(result.bakery_name, Some("SeaSide Bakery".to_string()));
assert_eq!(result.bakery_name_upper, Some("SEASIDE BAKERY".to_string()));

let select = baker::Entity::find()
.left_join(bakery::Entity)
.select_only()
Expand Down

0 comments on commit b68f9de

Please sign in to comment.