From 3835700aab52b133ef0e7fc302c10842e52dcfb5 Mon Sep 17 00:00:00 2001 From: phoenix Date: Sat, 22 Mar 2025 16:35:04 -0400 Subject: [PATCH 1/7] Removing file --- tests/97h357j59j.flac | Bin 13795 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 tests/97h357j59j.flac diff --git a/tests/97h357j59j.flac b/tests/97h357j59j.flac deleted file mode 100644 index b018649c66699a09eb7e75037f1757e0ce559b8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13795 zcmeI2X;4=88O2{klbX2iC{1Wwh*)I_dMsE z{}*GzqsBTMj@LRnI(z=p(c$Rw@=33yj_xzBjypLZ_K@54Jol|LL%ow81+;Rs=+xHp zXTqbBVuAw)4I32bbiUx>uAYC~OXkK!yQ62%S?&stn-@FRH!?o1gJ&KcmFRW_IfI4< zIEMrT1z97{ABhv7`zxn<9Bja8FDL|^j*KRoAl+T^A*lV-$kxYwQ?Nnaa%Hq~V$~~PHzmTJxxya%d3zUDH zX7Nwzm76}cxJ{$-r3i~(I;uRai^VV3DG&6sxNU{Nd zyeAfSe4?D2VsWSMlirt&wT7WX!k3zIDNxuQI#+2Wsmp&ax_i(k2>ysyCG zSO2X1WvRu!bCl2Fc|UV2AHn-xTcqrV^YmG$JPGIRyGl6|&+E5b`A593|5D|JIFH|l z$~|%3*JmhCgPsH4QyvJt{U<3mVIKqERlbCM{rpYkuFx}JjPg9_J!qWr6YOJfgmNnO z<+T3x5PtFSQ(!mc7Vuk;k8&>jIHb4oUHJ7E?UhHuPea=%Pk`To6&=^$$6+t(pc;M+ z@mKx^dHQ95av}0IysvUQB9+fV?{O=YQ*fT~ z$;#j2yuVIRj=}f5ov7Rm-y0sKd=Yv~h*3TRy(Y#f`$Nx&`O4FwcjQpz{qW;&f|Rer zukXB}91cIfJ3@IB{61-b^4G}2$MPA;2Rk;Xxnr;2PHT)hRZ@(>9ZpQPX_9|!KeRHan zy>Xto2b34!ywRtW>+n2xlk!=-FXn{uWSnPSt#W^ycm59L80Z;WtlSNHFW9D>f_*H^ zRsI(HT9m5n4?P#JQ=SgJmt-qn#6IFSD4)T;mR?p4ho6@HNqH3f7Jox|Km3?*Q~5gl zns`Ck0Y824sd57Rmh^k&ui?iJ&noA^uOIzQ`7-jf{DE=>@|Ju{c?k0O@onYN$m@#7 z%0Z|@Jm!p@lWLL;T%h|FW z9dUFW)H=!baY{{UoMMynbsX$Y*%} z8i=})!XVe9u#Hqk{Q?@@NMjkyLS-9kSQmrQ>Bd?X%2SlKkeWUx@;aCsS-tQ;TQZblYMX(O&L zBb&ALJ?=Lnhe2+G0ynlW>d9z$V=K$xAu8P1#=6*!jyG~yC}AjZBaf96jFva@SxTj- zaif5>^*MUpC}faxaFH2BjQTCybVf1DAPHBQQNp@tjl0g+&O*6~%gorp%BjI^XY6Dt z4aaq6>|$+=$9-q)W{_veL-#Q1gXOh*SqAlTuu|5=1vz>d3#Fqxw49YQS6*AeQhF)} z+sE2Um!nrQ$e)PFRgC&^S;KyoK_6LEHR~c$R(XJhvQb1n$jbR%)^LcW6eo+SVQu-y zDr*_!hhnJj>mpgKeUyb#DyBQe%K2Pud7PybCdNI%+6oqHpJb4e zB!s6J_0|&8dX_Sij< zKM|^%X|(nYY|dOm^H*YX=2}K<8B{mZ8N!xO-CW0r6<~AbdWP^eHfL_2waef_b0f`v z6)rS4(b}PKvbmY&4}_D=3`Xo8Txe!8ge7pHnZ<~;hm*~0hHxdEZ04}~vY@)Th2{7I zR5!P>`sQPE<~EjNZ*0!YWd)yy>Si8G`mm^;&kF8~&6x!(>8aS9S;*?^0T-G@EXQcL z&@5*4J%*Fb5|(2coNR7q1$-zo#{)uw*GDfUG9$L;2-j>%^Fk;K(VEY)tmU8q;T02xkuA=z^Wexjj?J`+Z zHO+rjR(XICYcC=nWC&Nv8V)gH_heBu3}K0^vX<31UrcwH<=9(nd4$!MCC05|IsPEl zKFSL2E2cZflAbEIJkAO}FUCE=l0GcfKFR8PEFnC_a!iw$*0cJ0NRUsn9HS-b4Xofs TPY9EJ%*IYvS~&joyT0|G#2-_X -- 2.43.0 From f7c4d6446fd78689885afca76bdf394f485e877a Mon Sep 17 00:00:00 2001 From: phoenix Date: Sat, 22 Mar 2025 16:43:29 -0400 Subject: [PATCH 2/7] Added module in tests --- tests/tests.rs | 47 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 15 deletions(-) diff --git a/tests/tests.rs b/tests/tests.rs index ab96494..98726eb 100644 --- a/tests/tests.rs +++ b/tests/tests.rs @@ -1,19 +1,12 @@ -mod song_tests { +mod utils { use std::fs; - use std::fs::File; - use std::io::{Read, Write}; use std::path::Path; - use tempfile::tempdir; - - use icarus_models::song; - use icarus_models::types; - - fn get_tests_directory() -> String { + pub fn get_tests_directory() -> String { String::from(env!("CARGO_MANIFEST_DIR").to_owned() + "/tests/") } - fn does_directory_exists(directory: &String) -> bool { + pub fn does_directory_exists(directory: &String) -> bool { let path = Path::new(directory); if let Ok(dir_i) = fs::metadata(path) { dir_i.is_dir() @@ -21,6 +14,18 @@ mod song_tests { false } } +} + +mod song_tests { + use std::fs::File; + use std::io::{Read, Write}; + + use tempfile::tempdir; + + use icarus_models::song; + use icarus_models::types; + + use crate::utils; fn extract_data_from_file(filepath: &String) -> Result, std::io::Error> { match std::fs::File::open(filepath) { @@ -43,11 +48,11 @@ mod song_tests { println!("Getting track"); let mut song = song::Song::default(); - song.directory = get_tests_directory(); + song.directory = utils::get_tests_directory(); song.filename = String::from("track01.flac"); assert!( - does_directory_exists(&song.directory), + utils::does_directory_exists(&song.directory), "Directory does not exist" ); @@ -81,11 +86,11 @@ mod song_tests { #[test] fn test_song_path_check() { let mut song = song::Song::default(); - song.directory = get_tests_directory(); + song.directory = utils::get_tests_directory(); song.filename = String::from("track01.flac"); assert!( - does_directory_exists(&song.directory), + utils::does_directory_exists(&song.directory), "Directory does not exist" ); } @@ -93,7 +98,7 @@ mod song_tests { #[test] fn test_song_generate_filename() { let mut song = song::Song::default(); - song.directory = get_tests_directory(); + song.directory = utils::get_tests_directory(); song.filename = String::from("track01.flac"); match song.song_path() { @@ -144,3 +149,15 @@ mod song_tests { } } } + +mod album_tests { + + use crate::utils; + use icarus_models::album; + + #[test] + fn parse_album() { + let test_dir = utils::get_tests_directory(); + if utils::does_directory_exists(&test_dir) {} + } +} -- 2.43.0 From 80ca1177a45df7d82af207549ab8b7f4b12b52c1 Mon Sep 17 00:00:00 2001 From: phoenix Date: Sat, 22 Mar 2025 16:45:24 -0400 Subject: [PATCH 3/7] Added to utils module in tests --- tests/tests.rs | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/tests/tests.rs b/tests/tests.rs index 98726eb..03db9b4 100644 --- a/tests/tests.rs +++ b/tests/tests.rs @@ -1,5 +1,7 @@ mod utils { use std::fs; + use std::fs::File; + use std::io::{Read, Write}; use std::path::Path; pub fn get_tests_directory() -> String { @@ -14,20 +16,8 @@ mod utils { false } } -} -mod song_tests { - use std::fs::File; - use std::io::{Read, Write}; - - use tempfile::tempdir; - - use icarus_models::song; - use icarus_models::types; - - use crate::utils; - - fn extract_data_from_file(filepath: &String) -> Result, std::io::Error> { + pub fn extract_data_from_file(filepath: &String) -> Result, std::io::Error> { match std::fs::File::open(filepath) { Ok(mut file) => { let mut buffer: Vec = Vec::new(); @@ -37,6 +27,18 @@ mod song_tests { Err(err) => Err(err), } } +} + +mod song_tests { + // use std::fs::File; + // use std::io::{Read, Write}; + + use tempfile::tempdir; + + use icarus_models::song; + use icarus_models::types; + + use crate::utils; #[test] fn test_song_to_data() { -- 2.43.0 From 46922b671d97678f1935b712eb454dbe4ad683aa Mon Sep 17 00:00:00 2001 From: phoenix Date: Sat, 22 Mar 2025 16:47:56 -0400 Subject: [PATCH 4/7] Changes --- tests/tests.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/tests.rs b/tests/tests.rs index 03db9b4..d775738 100644 --- a/tests/tests.rs +++ b/tests/tests.rs @@ -1,7 +1,6 @@ mod utils { use std::fs; - use std::fs::File; - use std::io::{Read, Write}; + use std::io::Read; use std::path::Path; pub fn get_tests_directory() -> String { @@ -30,7 +29,8 @@ mod utils { } mod song_tests { - // use std::fs::File; + use std::fs::File; + use std::io::Write; // use std::io::{Read, Write}; use tempfile::tempdir; @@ -61,7 +61,7 @@ mod song_tests { println!("Directory: {}", song.directory); match song.song_path() { - Ok(filepath) => match extract_data_from_file(&filepath) { + Ok(filepath) => match utils::extract_data_from_file(&filepath) { Ok(buffer) => { assert_eq!(buffer.is_empty(), false); @@ -104,7 +104,7 @@ mod song_tests { song.filename = String::from("track01.flac"); match song.song_path() { - Ok(songpath) => match extract_data_from_file(&songpath) { + Ok(songpath) => match utils::extract_data_from_file(&songpath) { Ok(buffer) => { let mut song_cpy = song.clone(); let temp_dir = tempdir().expect("Failed to create temp dir"); -- 2.43.0 From 79d3b1caebf496e7fb90e9b0c54bc87e133139b7 Mon Sep 17 00:00:00 2001 From: phoenix Date: Sat, 22 Mar 2025 16:53:54 -0400 Subject: [PATCH 5/7] Saving changes --- src/album.rs | 5 +++-- tests/tests.rs | 7 +++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/album.rs b/src/album.rs index f0db09b..5161a88 100644 --- a/src/album.rs +++ b/src/album.rs @@ -1,11 +1,12 @@ pub mod collection { use serde::{Deserialize, Serialize}; + use std::default::Default; fn is_set(num: &i32) -> bool { *num >= 0 } - #[derive(Clone, Debug, Deserialize, Serialize)] + #[derive(Clone, Debug, Default, Deserialize, Serialize)] pub struct Album { #[serde(skip_serializing_if = "String::is_empty")] #[serde(alias = "album")] @@ -19,7 +20,7 @@ pub mod collection { pub tracks: Vec, } - #[derive(Clone, Debug, Deserialize, Serialize)] + #[derive(Clone, Debug, Default, Deserialize, Serialize)] pub struct Track { pub title: String, pub artist: String, diff --git a/tests/tests.rs b/tests/tests.rs index d775738..f511c74 100644 --- a/tests/tests.rs +++ b/tests/tests.rs @@ -155,11 +155,14 @@ mod song_tests { mod album_tests { use crate::utils; - use icarus_models::album; + use icarus_models::album::collection::Album; #[test] fn parse_album() { let test_dir = utils::get_tests_directory(); - if utils::does_directory_exists(&test_dir) {} + if utils::does_directory_exists(&test_dir) { + let album = Album::default(); + println!("Album title: {}", album.title); + } } } -- 2.43.0 From cdce0d0a35211a55e39223c1def76e7d41313729 Mon Sep 17 00:00:00 2001 From: phoenix Date: Sat, 22 Mar 2025 17:14:09 -0400 Subject: [PATCH 6/7] Test works --- src/album.rs | 13 +++++++++++++ tests/tests.rs | 19 ++++++++++++++++--- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/src/album.rs b/src/album.rs index 5161a88..356d23b 100644 --- a/src/album.rs +++ b/src/album.rs @@ -2,15 +2,28 @@ pub mod collection { use serde::{Deserialize, Serialize}; use std::default::Default; + use std::fs::File; + use std::io::BufReader; + fn is_set(num: &i32) -> bool { *num >= 0 } + pub fn parse_album(filepath: &String) -> Result { + let file = File::open(filepath).expect("Failed to open file"); + let reader = BufReader::new(file); + + serde_json::from_reader(reader) + } + #[derive(Clone, Debug, Default, Deserialize, Serialize)] pub struct Album { #[serde(skip_serializing_if = "String::is_empty")] #[serde(alias = "album")] pub title: String, + #[serde(skip_serializing_if = "String::is_empty")] + #[serde(alias = "album_artist")] + pub artist: String, pub genre: String, pub year: i32, pub track_count: i32, diff --git a/tests/tests.rs b/tests/tests.rs index f511c74..03bece2 100644 --- a/tests/tests.rs +++ b/tests/tests.rs @@ -155,14 +155,27 @@ mod song_tests { mod album_tests { use crate::utils; - use icarus_models::album::collection::Album; + use icarus_models::album; #[test] fn parse_album() { let test_dir = utils::get_tests_directory(); if utils::does_directory_exists(&test_dir) { - let album = Album::default(); - println!("Album title: {}", album.title); + let album_file: String = test_dir + &String::from("album.json"); + println!("Album file: {:?}", album_file); + + // let album = Album::default(); + match album::collection::parse_album(&album_file) { + Ok(album) => { + println!("Album title: {}", album.title); + assert_eq!(album.title.is_empty(), false); + assert_eq!(album.artist.is_empty(), false); + assert_eq!(album.tracks.is_empty(), false); + } + Err(err) => { + assert!(false, "Error parsing album json file: {:?}", err); + } + } } } } -- 2.43.0 From 4bb340c64869723a096da66a5248d9972bcbb44a Mon Sep 17 00:00:00 2001 From: phoenix Date: Sat, 22 Mar 2025 17:15:38 -0400 Subject: [PATCH 7/7] Cleanup --- tests/tests.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/tests.rs b/tests/tests.rs index 03bece2..7df899b 100644 --- a/tests/tests.rs +++ b/tests/tests.rs @@ -31,7 +31,6 @@ mod utils { mod song_tests { use std::fs::File; use std::io::Write; - // use std::io::{Read, Write}; use tempfile::tempdir; @@ -164,7 +163,6 @@ mod album_tests { let album_file: String = test_dir + &String::from("album.json"); println!("Album file: {:?}", album_file); - // let album = Album::default(); match album::collection::parse_album(&album_file) { Ok(album) => { println!("Album title: {}", album.title); -- 2.43.0