use rsp::config::Config; use std::path::PathBuf; #[test] fn test_config_get_scan_interval() { let config = Config { config_path: PathBuf::from("/test/config.toml"), music_paths: vec![], scan_interval: Some(3600), socket_path: None, lastfm_api_key: None, lastfm_api_secret: None, lastfm_session_key: None, listenbrainz_token: None, volume: None, shuffle: None, }; assert_eq!(config.get("scan_interval").unwrap(), "3600"); } #[test] fn test_config_get_not_set() { let config = Config { config_path: PathBuf::from("/test/config.toml"), ..Default::default() }; assert_eq!(config.get("scan_interval").unwrap(), "not set"); } #[test] fn test_config_get_volume() { let config = Config { config_path: PathBuf::from("/test/config.toml"), music_paths: vec![], scan_interval: None, socket_path: None, lastfm_api_key: None, lastfm_api_secret: None, lastfm_session_key: None, listenbrainz_token: None, volume: Some(75), shuffle: None, }; assert_eq!(config.get("volume").unwrap(), "75"); } #[test] fn test_config_get_unknown_key() { let config = Config::default(); let result = config.get("unknown_key"); assert!(result.is_err()); } #[test] fn test_config_set_scan_interval() { let mut config = Config::default(); config.set("scan_interval", "7200").unwrap(); assert_eq!(config.scan_interval, Some(7200)); } #[test] fn test_config_set_invalid_scan_interval() { let mut config = Config::default(); let result = config.set("scan_interval", "invalid"); assert!(result.is_err()); } #[test] fn test_config_set_volume() { let mut config = Config::default(); config.set("volume", "50").unwrap(); assert_eq!(config.volume, Some(50)); } #[test] fn test_config_set_invalid_volume() { let mut config = Config::default(); let result = config.set("volume", "256"); assert!(result.is_err()); } #[test] fn test_config_set_shuffle_valid() { let mut config = Config::default(); config.set("shuffle", "all").unwrap(); assert_eq!(config.shuffle, Some("all".to_string())); } #[test] fn test_config_set_shuffle_off() { let mut config = Config::default(); config.set("shuffle", "off").unwrap(); assert_eq!(config.shuffle, None); } #[test] fn test_config_set_shuffle_invalid() { let mut config = Config::default(); let result = config.set("shuffle", "invalid"); assert!(result.is_err()); } #[test] fn test_config_set_unknown_key() { let mut config = Config::default(); let result = config.set("unknown_key", "value"); assert!(result.is_err()); } #[test] fn test_config_unset_volume() { let mut config = Config { config_path: PathBuf::from("/test/config.toml"), music_paths: vec![], scan_interval: None, socket_path: None, lastfm_api_key: None, lastfm_api_secret: None, lastfm_session_key: None, listenbrainz_token: None, volume: Some(50), shuffle: None, }; config.unset("volume").unwrap(); assert_eq!(config.volume, None); } #[test] fn test_config_unset_unknown_key() { let mut config = Config::default(); let result = config.unset("unknown_key"); assert!(result.is_err()); }