86 lines
2.2 KiB
Rust
86 lines
2.2 KiB
Rust
|
use std::fs;
|
||
|
|
||
|
use musichoard::{
|
||
|
library::{
|
||
|
beets::{Beets, SystemExecutor},
|
||
|
Library, Query, QueryOption,
|
||
|
},
|
||
|
Artist,
|
||
|
};
|
||
|
|
||
|
use crate::COLLECTION;
|
||
|
|
||
|
#[test]
|
||
|
fn test_no_config_list() {
|
||
|
let executor = SystemExecutor::new("beet", None);
|
||
|
|
||
|
let mut beets = Beets::new(Box::new(executor));
|
||
|
let output = beets.list(&Query::default()).unwrap();
|
||
|
|
||
|
let expected: Vec<Artist> = vec![];
|
||
|
assert_eq!(output, expected);
|
||
|
}
|
||
|
|
||
|
#[test]
|
||
|
fn test_full_list() {
|
||
|
let executor = SystemExecutor::new(
|
||
|
"beet",
|
||
|
Some(&fs::canonicalize("./tests/files/library/config.yml").unwrap()),
|
||
|
);
|
||
|
|
||
|
let mut beets = Beets::new(Box::new(executor));
|
||
|
let output = beets.list(&Query::default()).unwrap();
|
||
|
|
||
|
let expected: Vec<Artist> = COLLECTION.to_owned();
|
||
|
assert_eq!(output, expected);
|
||
|
}
|
||
|
|
||
|
#[test]
|
||
|
fn test_album_artist_query() {
|
||
|
let executor = SystemExecutor::new(
|
||
|
"beet",
|
||
|
Some(&fs::canonicalize("./tests/files/library/config.yml").unwrap()),
|
||
|
);
|
||
|
|
||
|
let mut beets = Beets::new(Box::new(executor));
|
||
|
let output = beets
|
||
|
.list(&Query::default().album_artist(QueryOption::Include(String::from("Аркона"))))
|
||
|
.unwrap();
|
||
|
|
||
|
let expected: Vec<Artist> = COLLECTION[0..1].to_owned();
|
||
|
assert_eq!(output, expected);
|
||
|
}
|
||
|
|
||
|
#[test]
|
||
|
fn test_album_title_query() {
|
||
|
let executor = SystemExecutor::new(
|
||
|
"beet",
|
||
|
Some(&fs::canonicalize("./tests/files/library/config.yml").unwrap()),
|
||
|
);
|
||
|
|
||
|
let mut beets = Beets::new(Box::new(executor));
|
||
|
let output = beets
|
||
|
.list(&Query::default().album_title(QueryOption::Include(String::from("Slovo"))))
|
||
|
.unwrap();
|
||
|
|
||
|
|
||
|
let expected: Vec<Artist> = COLLECTION[0..1].to_owned();
|
||
|
assert_eq!(output, expected);
|
||
|
}
|
||
|
|
||
|
#[test]
|
||
|
fn test_exclude_query() {
|
||
|
let executor = SystemExecutor::new(
|
||
|
"beet",
|
||
|
Some(&fs::canonicalize("./tests/files/library/config.yml").unwrap()),
|
||
|
);
|
||
|
|
||
|
let mut beets = Beets::new(Box::new(executor));
|
||
|
let output = beets
|
||
|
.list(&Query::default().album_artist(QueryOption::Exclude(String::from("Аркона"))))
|
||
|
.unwrap();
|
||
|
|
||
|
let expected: Vec<Artist> = COLLECTION[1..].to_owned();
|
||
|
assert_eq!(output, expected);
|
||
|
}
|