#![cfg(feature = "database-sqlite")] #![cfg(feature = "library-beets")] mod database; mod library; mod testlib; use musichoard::{ external::{ database::sql::{backend::SqlDatabaseSqliteBackend, SqlDatabase}, library::beets::{executor::BeetsLibraryProcessExecutor, BeetsLibrary}, }, IMusicHoardBase, IMusicHoardDatabase, IMusicHoardLibrary, MusicHoard, }; use crate::testlib::COLLECTION; #[test] fn merge_library_then_database() { // Acquired the lock on the beets config file. We need to own the underlying object so later we // create a new one. This is okay as the purpose of the lock is to prevent other tests to access // the same Beets library at the same time. let _arc = library::beets::BEETS_TEST_CONFIG.clone(); let _ = &mut _arc.lock().unwrap(); let executor = BeetsLibraryProcessExecutor::default() .config(Some(&*library::beets::BEETS_TEST_CONFIG_PATH)); let library = BeetsLibrary::new(executor); let backend = SqlDatabaseSqliteBackend::new(&*database::sql::DATABASE_TEST_FILE).unwrap(); let database = SqlDatabase::new(backend).unwrap(); let mut music_hoard = MusicHoard::new(database, library); music_hoard.rescan_library().unwrap(); music_hoard.reload_database().unwrap(); assert_eq!(music_hoard.get_collection(), &*COLLECTION); } #[test] fn merge_database_then_library() { // Acquired the lock on the beets config file. We need to own the underlying object so later we // create a new one. This is okay as the purpose of the lock is to prevent other tests to access // the same Beets library at the same time. let _arc = library::beets::BEETS_TEST_CONFIG.clone(); let _ = &mut _arc.lock().unwrap(); let executor = BeetsLibraryProcessExecutor::default() .config(Some(&*library::beets::BEETS_TEST_CONFIG_PATH)); let library = BeetsLibrary::new(executor); let backend = SqlDatabaseSqliteBackend::new(&*database::sql::DATABASE_TEST_FILE).unwrap(); let database = SqlDatabase::new(backend).unwrap(); let mut music_hoard = MusicHoard::new(database, library); music_hoard.reload_database().unwrap(); music_hoard.rescan_library().unwrap(); assert_eq!(music_hoard.get_collection(), &*COLLECTION); }