musichoard/tests/lib.rs
Wojciech Kozlowski ba85505c9a
All checks were successful
Cargo CI / Build and Test (push) Successful in 1m2s
Cargo CI / Lint (push) Successful in 44s
Cargo CI / Build and Test (pull_request) Successful in 2m23s
Cargo CI / Lint (pull_request) Successful in 44s
Split lib.rs into smaller files (#115)
Closes #110

Reviewed-on: #115
2024-01-22 23:01:34 +01:00

65 lines
2.2 KiB
Rust

mod database;
mod library;
mod testlib;
use musichoard::MusicHoard;
#[cfg(feature = "database-json")]
use musichoard::database::json::{backend::JsonDatabaseFileBackend, JsonDatabase};
#[cfg(feature = "library-beets")]
use musichoard::library::beets::{executor::BeetsLibraryProcessExecutor, BeetsLibrary};
use crate::testlib::COLLECTION;
#[test]
#[cfg(feature = "database-json")]
#[cfg(feature = "library-beets")]
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 = JsonDatabaseFileBackend::new(&*database::json::DATABASE_TEST_FILE);
let database = JsonDatabase::new(backend);
let mut music_hoard = MusicHoard::new(library, database);
music_hoard.rescan_library().unwrap();
music_hoard.load_from_database().unwrap();
assert_eq!(music_hoard.get_collection(), &*COLLECTION);
}
#[test]
#[cfg(feature = "database-json")]
#[cfg(feature = "library-beets")]
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 = JsonDatabaseFileBackend::new(&*database::json::DATABASE_TEST_FILE);
let database = JsonDatabase::new(backend);
let mut music_hoard = MusicHoard::new(library, database);
music_hoard.load_from_database().unwrap();
music_hoard.rescan_library().unwrap();
assert_eq!(music_hoard.get_collection(), &*COLLECTION);
}