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 = 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 = 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 = 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 = 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 = COLLECTION[1..].to_owned(); assert_eq!(output, expected); }