use microrm::prelude::*;
use test_log::test;
mod common;
#[derive(Clone, Entity, PartialEq)]
struct Container {
value: usize,
}
#[derive(Schema)]
struct Schema {
containers: microrm::IDMap<Container>,
}
#[test]
fn order_ascending() {
let (pool, db): (_, Schema) = common::open_test_db!();
{
let mut txn = pool.start().unwrap();
db.containers
.insert(&mut txn, Container { value: 5 })
.unwrap();
db.containers
.insert(&mut txn, Container { value: 4 })
.unwrap();
db.containers
.insert(&mut txn, Container { value: 9 })
.unwrap();
db.containers
.insert(&mut txn, Container { value: 7 })
.unwrap();
txn.commit().unwrap();
}
{
let mut txn = pool.start().unwrap();
assert_eq!(
db.containers
.order_by_asc(Container::Value)
.get(&mut txn)
.unwrap(),
vec![
Container { value: 4 },
Container { value: 5 },
Container { value: 7 },
Container { value: 9 }
],
);
}
}
#[test]
fn order_descending() {
let (pool, db): (_, Schema) = common::open_test_db!();
{
let mut txn = pool.start().unwrap();
db.containers
.insert(&mut txn, Container { value: 5 })
.unwrap();
db.containers
.insert(&mut txn, Container { value: 4 })
.unwrap();
db.containers
.insert(&mut txn, Container { value: 9 })
.unwrap();
db.containers
.insert(&mut txn, Container { value: 7 })
.unwrap();
txn.commit().unwrap();
}
{
let mut txn = pool.start().unwrap();
assert_eq!(
db.containers
.order_by_desc(Container::Value)
.get(&mut txn)
.unwrap(),
vec![
Container { value: 9 },
Container { value: 7 },
Container { value: 5 },
Container { value: 4 }
],
);
}
}