From 92eb31a6872ce21006d66ddd7f424962a53e285b Mon Sep 17 00:00:00 2001 From: KD Date: Tue, 25 Mar 2025 22:43:42 -0400 Subject: [PATCH] Add test (#41) * Code refactoring * Cleanup * Added test and moved test files * Cleanup * Removed test mod file * Tests reorganizing * Removed test file --- src/main.rs | 113 ++++++++++++++++++++++++++++++++ src/managers/action_managers.rs | 68 ------------------- 2 files changed, 113 insertions(+), 68 deletions(-) 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 b4d3553..42ed6ca 100644 --- a/src/managers/action_managers.rs +++ b/src/managers/action_managers.rs @@ -166,71 +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 all_flags_found = false; - 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()); - } - } - - 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"); - } -}