From 3cf50a13444b718b0bda8ba893c906ec84c23a7d Mon Sep 17 00:00:00 2001 From: phoenix Date: Tue, 25 Mar 2025 22:27:36 -0400 Subject: [PATCH] Tests reorganizing --- src/main.rs | 113 ++++++++++++++++++ src/managers/action_managers.rs | 67 ----------- src/tests/tests.rs | 4 +- .../tests => tests}/sample2_tracks/album.json | 0 .../sample2_tracks/coverart.jpg | Bin .../sample2_tracks/track01.flac | Bin .../sample2_tracks/track02.flac | Bin .../sample2_tracks/track03.flac | Bin 8 files changed, 115 insertions(+), 69 deletions(-) rename {src/tests => tests}/sample2_tracks/album.json (100%) rename {src/tests => tests}/sample2_tracks/coverart.jpg (100%) rename {src/tests => tests}/sample2_tracks/track01.flac (100%) rename {src/tests => tests}/sample2_tracks/track02.flac (100%) rename {src/tests => tests}/sample2_tracks/track03.flac (100%) diff --git a/src/main.rs b/src/main.rs index 5c9e438..69039e8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -31,3 +31,116 @@ fn main() { cmt_mgr.commit_action(); } + +#[cfg(test)] +mod tests { + use crate::managers; + + #[test] + fn test_song_prep_upload() { + let meta_path = String::from("tests/sample2_tracks/album.json"); + + if !std::path::Path::new(&meta_path).exists() { + assert!(false, "File does not exists: {:?}", meta_path); + } + + match icarus_models::album::collection::parse_album(&meta_path) { + Ok(album) => { + for track in 1..3 { + let directory_path = std::path::Path::new(&meta_path); + let directory: String = directory_path.parent().unwrap().display().to_string(); + let filename: String = if track < 10 { + String::from("track0") + + &track.to_string() + + icarus_models::constants::DEFAULTMUSICEXTENSION + } else { + String::from("track") + + &track.to_string() + + icarus_models::constants::DEFAULTMUSICEXTENSION + }; + let disc = 1; + match managers::commit_manager::retrieve_song( + &album, track, disc, &directory, &filename, + ) { + Ok(song) => match song.to_data() { + Ok(_) => { + print!("Success"); + } + Err(err) => { + assert!(false, "Error: {:?}", err.to_string()); + } + }, + Err(err) => { + assert!(false, "Error: {:?}", err.to_string()); + } + } + } + } + Err(err) => { + assert!(false, "Error: {:?}", err.to_string()); + } + } + } + + #[test] + fn test_minimum_action_and_args() { + let args: Vec = vec![ + "icarus-dm".to_string(), + "download".to_string(), + "-u".to_string(), + "jamborie".to_string(), + "-p".to_string(), + "somethingsecr3t!".to_string(), + "-h".to_string(), + "https://music-server.com".to_string(), + ]; + let arg_count = args.len() as i32; + let minimum_arg_count = 8; + assert!(arg_count >= minimum_arg_count); + + let mut act_mgr = managers::action_managers::ActionManager { + action: String::new(), + flags: Vec::new(), + params: args, + param_count: arg_count, + }; + act_mgr.initialize(); + let ica = act_mgr.retrieve_icarus_action(); + let action = &ica.action; + let flags = &ica.flags; + + assert!(action != ""); + assert!(flags.len() > 2); + assert!( + !(action != "download" + && action != "upload" + && action != "retrieve" + && action != "upload-meta") + ); + + let mut found_count = 0; + let mut flags_already_read = Vec::new(); + + for flag in flags { + if flags_already_read.contains(&flag.flag) { + continue; + } + + if flag.flag == "-u" { + found_count += 1; + flags_already_read.push(flag.flag.clone()); + } else if flag.flag == "-p" { + found_count += 1; + flags_already_read.push(flag.flag.clone()); + } else if flag.flag == "-h" { + found_count += 1; + flags_already_read.push(flag.flag.clone()); + } + } + + let all_flags_found = found_count == 3; + + assert_eq!(found_count, 3, "Three flags are required: -u, -p, -h"); + assert!(all_flags_found, "All flags have not been found"); + } +} diff --git a/src/managers/action_managers.rs b/src/managers/action_managers.rs index 867687e..42ed6ca 100644 --- a/src/managers/action_managers.rs +++ b/src/managers/action_managers.rs @@ -166,70 +166,3 @@ impl ActionManager { return parsed; } } - -#[cfg(test)] -mod tests { - use crate::managers::action_managers::ActionManager; - - #[test] - fn minimum_action_and_args() { - let args: Vec = vec![ - "icarus-dm".to_string(), - "download".to_string(), - "-u".to_string(), - "jamborie".to_string(), - "-p".to_string(), - "somethingsecr3t!".to_string(), - "-h".to_string(), - "https://music-server.com".to_string(), - ]; - let arg_count = args.len() as i32; - let minimum_arg_count = 8; - assert!(arg_count >= minimum_arg_count); - - let mut act_mgr = ActionManager { - action: String::new(), - flags: Vec::new(), - params: args, - param_count: arg_count, - }; - act_mgr.initialize(); - let ica = act_mgr.retrieve_icarus_action(); - let action = &ica.action; - let flags = &ica.flags; - - assert!(action != ""); - assert!(flags.len() > 2); - assert!( - !(action != "download" - && action != "upload" - && action != "retrieve" - && action != "upload-meta") - ); - - let mut found_count = 0; - let mut flags_already_read = Vec::new(); - - for flag in flags { - if flags_already_read.contains(&flag.flag) { - continue; - } - - if flag.flag == "-u" { - found_count += 1; - flags_already_read.push(flag.flag.clone()); - } else if flag.flag == "-p" { - found_count += 1; - flags_already_read.push(flag.flag.clone()); - } else if flag.flag == "-h" { - found_count += 1; - flags_already_read.push(flag.flag.clone()); - } - } - - let all_flags_found = found_count == 3; - - assert_eq!(found_count, 3, "Three flags are required: -u, -p, -h"); - assert!(all_flags_found, "All flags have not been found"); - } -} diff --git a/src/tests/tests.rs b/src/tests/tests.rs index b020a27..85fbf8c 100644 --- a/src/tests/tests.rs +++ b/src/tests/tests.rs @@ -1,6 +1,7 @@ + #[cfg(test)] mod tests { - #[cfg(test)] + #[test] fn test_song_prep_upload() { use crate::managers; @@ -15,7 +16,6 @@ mod tests { for track in 1..3 { let directory_path = std::path::Path::new(&meta_path); let directory: String = directory_path.parent().unwrap().display().to_string(); - // let track = 1; let filename: String = if track < 10 { String::from("track0") + &track.to_string() diff --git a/src/tests/sample2_tracks/album.json b/tests/sample2_tracks/album.json similarity index 100% rename from src/tests/sample2_tracks/album.json rename to tests/sample2_tracks/album.json diff --git a/src/tests/sample2_tracks/coverart.jpg b/tests/sample2_tracks/coverart.jpg similarity index 100% rename from src/tests/sample2_tracks/coverart.jpg rename to tests/sample2_tracks/coverart.jpg diff --git a/src/tests/sample2_tracks/track01.flac b/tests/sample2_tracks/track01.flac similarity index 100% rename from src/tests/sample2_tracks/track01.flac rename to tests/sample2_tracks/track01.flac diff --git a/src/tests/sample2_tracks/track02.flac b/tests/sample2_tracks/track02.flac similarity index 100% rename from src/tests/sample2_tracks/track02.flac rename to tests/sample2_tracks/track02.flac diff --git a/src/tests/sample2_tracks/track03.flac b/tests/sample2_tracks/track03.flac similarity index 100% rename from src/tests/sample2_tracks/track03.flac rename to tests/sample2_tracks/track03.flac