use sea_orm::{EntityTrait, Select};
pub trait Manager: EntityTrait {
fn objects() -> Select<Self> {
Self::find()
}
}
#[cfg(test)]
mod tests {
use super::Manager;
use sea_orm::{DbBackend, QueryTrait, Select};
mod mock_entity {
use sea_orm::entity::prelude::*;
#[sea_orm::model]
#[derive(Clone, Debug, PartialEq, Eq, DeriveEntityModel)]
#[sea_orm(table_name = "widgets")]
pub struct Model {
#[sea_orm(primary_key)]
pub id: i32,
pub name: String,
}
impl ActiveModelBehavior for ActiveModel {}
}
impl Manager for mock_entity::Entity {}
#[test]
fn manager_objects_returns_entity_select() {
let query: Select<mock_entity::Entity> = mock_entity::Entity::objects();
let sql = query.build(DbBackend::Sqlite).to_string();
assert!(sql.contains("SELECT"), "expected SELECT query, got: {sql}");
assert!(
sql.contains("widgets"),
"expected widgets table, got: {sql}"
);
}
}