aboutsummaryrefslogtreecommitdiffstats
path: root/tests/config.rs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--tests/config.rs133
1 files changed, 133 insertions, 0 deletions
diff --git a/tests/config.rs b/tests/config.rs
new file mode 100644
index 0000000..70c5034
--- /dev/null
+++ b/tests/config.rs
@@ -0,0 +1,133 @@
1use rsp::config::Config;
2use std::path::PathBuf;
3
4#[test]
5fn test_config_get_scan_interval() {
6 let config = Config {
7 config_path: PathBuf::from("/test/config.toml"),
8 music_paths: vec![],
9 scan_interval: Some(3600),
10 socket_path: None,
11 lastfm_api_key: None,
12 lastfm_api_secret: None,
13 lastfm_session_key: None,
14 listenbrainz_token: None,
15 volume: None,
16 shuffle: None,
17 };
18 assert_eq!(config.get("scan_interval").unwrap(), "3600");
19}
20
21#[test]
22fn test_config_get_not_set() {
23 let config = Config {
24 config_path: PathBuf::from("/test/config.toml"),
25 ..Default::default()
26 };
27 assert_eq!(config.get("scan_interval").unwrap(), "not set");
28}
29
30#[test]
31fn test_config_get_volume() {
32 let config = Config {
33 config_path: PathBuf::from("/test/config.toml"),
34 music_paths: vec![],
35 scan_interval: None,
36 socket_path: None,
37 lastfm_api_key: None,
38 lastfm_api_secret: None,
39 lastfm_session_key: None,
40 listenbrainz_token: None,
41 volume: Some(75),
42 shuffle: None,
43 };
44 assert_eq!(config.get("volume").unwrap(), "75");
45}
46
47#[test]
48fn test_config_get_unknown_key() {
49 let config = Config::default();
50 let result = config.get("unknown_key");
51 assert!(result.is_err());
52}
53
54#[test]
55fn test_config_set_scan_interval() {
56 let mut config = Config::default();
57 config.set("scan_interval", "7200").unwrap();
58 assert_eq!(config.scan_interval, Some(7200));
59}
60
61#[test]
62fn test_config_set_invalid_scan_interval() {
63 let mut config = Config::default();
64 let result = config.set("scan_interval", "invalid");
65 assert!(result.is_err());
66}
67
68#[test]
69fn test_config_set_volume() {
70 let mut config = Config::default();
71 config.set("volume", "50").unwrap();
72 assert_eq!(config.volume, Some(50));
73}
74
75#[test]
76fn test_config_set_invalid_volume() {
77 let mut config = Config::default();
78 let result = config.set("volume", "256");
79 assert!(result.is_err());
80}
81
82#[test]
83fn test_config_set_shuffle_valid() {
84 let mut config = Config::default();
85 config.set("shuffle", "all").unwrap();
86 assert_eq!(config.shuffle, Some("all".to_string()));
87}
88
89#[test]
90fn test_config_set_shuffle_off() {
91 let mut config = Config::default();
92 config.set("shuffle", "off").unwrap();
93 assert_eq!(config.shuffle, None);
94}
95
96#[test]
97fn test_config_set_shuffle_invalid() {
98 let mut config = Config::default();
99 let result = config.set("shuffle", "invalid");
100 assert!(result.is_err());
101}
102
103#[test]
104fn test_config_set_unknown_key() {
105 let mut config = Config::default();
106 let result = config.set("unknown_key", "value");
107 assert!(result.is_err());
108}
109
110#[test]
111fn test_config_unset_volume() {
112 let mut config = Config {
113 config_path: PathBuf::from("/test/config.toml"),
114 music_paths: vec![],
115 scan_interval: None,
116 socket_path: None,
117 lastfm_api_key: None,
118 lastfm_api_secret: None,
119 lastfm_session_key: None,
120 listenbrainz_token: None,
121 volume: Some(50),
122 shuffle: None,
123 };
124 config.unset("volume").unwrap();
125 assert_eq!(config.volume, None);
126}
127
128#[test]
129fn test_config_unset_unknown_key() {
130 let mut config = Config::default();
131 let result = config.unset("unknown_key");
132 assert!(result.is_err());
133}