123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- use microrm::prelude::*;
- use test_log::test;
- mod common;
- #[derive(Entity)]
- struct SingleItem {
- #[key]
- s: String,
- v: Vec<u8>,
- }
- #[derive(Entity)]
- struct DoubleItem {
- #[key]
- s: String,
- #[key]
- t: String,
- v: usize,
- }
- #[derive(Database)]
- struct ItemDB {
- single_items: microrm::IDMap<SingleItem>,
- double_items: microrm::IDMap<DoubleItem>,
- }
- #[test]
- fn single_item() {
- let db: ItemDB = common::open_test_db!();
- db.single_items
- .insert(SingleItem {
- s: "string 1".into(),
- v: vec![0u8, 1u8, 2u8],
- })
- .expect("couldn't insert test item");
- db.single_items
- .insert(SingleItem {
- s: "string 2".into(),
- v: vec![0u8, 1u8, 2u8],
- })
- .expect("couldn't insert test item");
- assert!(db
- .single_items
- .keyed("string 2")
- .get()
- .expect("couldn't query db")
- .is_some());
- assert!(db
- .single_items
- .keyed("string 3")
- .get()
- .expect("couldn't query db")
- .is_none());
- assert!(db
- .single_items
- .keyed(String::from("string 2"))
- .get()
- .expect("couldn't query db")
- .is_some());
- assert!(db
- .single_items
- .keyed(String::from("string 3"))
- .get()
- .expect("couldn't query db")
- .is_none());
- }
- #[test]
- fn double_item() {
- let db: ItemDB = common::open_test_db!();
- db.double_items
- .insert(DoubleItem {
- s: "string 1".into(),
- t: "second string 1".into(),
- v: 42,
- })
- .expect("couldn't insert test item");
- db.double_items
- .insert(DoubleItem {
- s: "string 2".into(),
- t: "second string 2".into(),
- v: 6,
- })
- .expect("couldn't insert test item");
- assert!(db
- .double_items
- .keyed(("string 2", "second string 2"))
- .get()
- .expect("couldn't query db")
- .is_some());
- assert!(db
- .double_items
- .keyed(("string 3", "second string 3"))
- .get()
- .expect("couldn't query db")
- .is_none());
- assert!(db
- .double_items
- .keyed((String::from("string 2"), String::from("second string 2")))
- .get()
- .expect("couldn't query db")
- .is_some());
- assert!(db
- .double_items
- .keyed((String::from("string 3"), String::from("second string 3")))
- .get()
- .expect("couldn't query db")
- .is_none());
- }
- #[test]
- fn with_test() {
- let db: ItemDB = common::open_test_db!();
- db.single_items
- .insert(SingleItem {
- s: "string 1".into(),
- v: vec![0u8, 1u8, 2u8],
- })
- .expect("couldn't insert test item");
- db.single_items
- .insert(SingleItem {
- s: "string 2".into(),
- v: vec![0u8, 1u8, 2u8],
- })
- .expect("couldn't insert test item");
- assert_eq!(
- db.single_items
- .with(SingleItem::V, [0u8].as_slice())
- .get()
- .expect("couldn't query db")
- .len(),
- 0
- );
- assert_eq!(
- db.single_items
- .with(SingleItem::V, [0u8, 1, 2].as_slice())
- .get()
- .expect("couldn't query db")
- .len(),
- 2
- );
- }
|