musichoard/tests/library/beets.rs

81 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::default();
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::default().config(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::default().config(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::default().config(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::default().config(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);
}