mirror of
https://github.com/PR0M3TH3AN/Marlin.git
synced 2025-09-08 07:08:44 +00:00
55 lines
1.3 KiB
Rust
55 lines
1.3 KiB
Rust
mod cli {
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub enum Format {
|
|
Text,
|
|
Json,
|
|
}
|
|
}
|
|
|
|
#[path = "../src/cli/coll.rs"]
|
|
mod coll;
|
|
|
|
use libmarlin::db;
|
|
|
|
#[test]
|
|
fn coll_run_creates_and_adds() {
|
|
let mut conn = db::open(":memory:").unwrap();
|
|
conn.execute(
|
|
"INSERT INTO files(path,size,mtime) VALUES ('a.txt',0,0)",
|
|
[],
|
|
)
|
|
.unwrap();
|
|
conn.execute(
|
|
"INSERT INTO files(path,size,mtime) VALUES ('b.txt',0,0)",
|
|
[],
|
|
)
|
|
.unwrap();
|
|
|
|
let create = coll::CollCmd::Create(coll::CreateArgs { name: "Set".into() });
|
|
coll::run(&create, &mut conn, cli::Format::Text).unwrap();
|
|
|
|
let coll_id: i64 = conn
|
|
.query_row("SELECT id FROM collections WHERE name='Set'", [], |r| {
|
|
r.get(0)
|
|
})
|
|
.unwrap();
|
|
|
|
let add = coll::CollCmd::Add(coll::AddArgs {
|
|
name: "Set".into(),
|
|
file_pattern: "*.txt".into(),
|
|
});
|
|
coll::run(&add, &mut conn, cli::Format::Text).unwrap();
|
|
|
|
let cnt: i64 = conn
|
|
.query_row(
|
|
"SELECT COUNT(*) FROM collection_files WHERE collection_id=?1",
|
|
[coll_id],
|
|
|r| r.get(0),
|
|
)
|
|
.unwrap();
|
|
assert_eq!(cnt, 2);
|
|
|
|
let list = coll::CollCmd::List(coll::ListArgs { name: "Set".into() });
|
|
coll::run(&list, &mut conn, cli::Format::Text).unwrap();
|
|
}
|