use roomrs::{Entity, dao, database, entity, params};
#[entity] #[derive(Debug, Clone)]
struct Memo {
#[pk(autoincrement)]
id: i64,
body: String,
}
#[dao]
trait MemoDao {
#[insert]
fn add(&self, m: &Memo) -> roomrs::Result<i64>;
#[query("SELECT * FROM Memo ORDER BY id")]
fn all(&self) -> roomrs::Result<Vec<Memo>>;
}
#[database(entities(Memo), daos(MemoDao), version = 1)]
struct Db;
#[test]
fn default_table_is_struct_name() {
assert_eq!(<Memo as Entity>::TABLE, "Memo");
let db = Db::builder().in_memory().build().unwrap();
let h = db.run_sync();
h.memo_dao()
.add(&Memo {
id: 0,
body: "기본 테이블".into(),
})
.unwrap();
assert_eq!(h.memo_dao().all().unwrap().len(), 1);
let n: i64 = h
.query_scalar(
"SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND name='Memo'",
params![],
)
.unwrap();
assert_eq!(n, 1);
}