summaryrefslogtreecommitdiff
path: root/vendored/mpd/tests/options.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendored/mpd/tests/options.rs')
-rw-r--r--vendored/mpd/tests/options.rs73
1 files changed, 73 insertions, 0 deletions
diff --git a/vendored/mpd/tests/options.rs b/vendored/mpd/tests/options.rs
new file mode 100644
index 0000000..1bfa861
--- /dev/null
+++ b/vendored/mpd/tests/options.rs
@@ -0,0 +1,73 @@
+extern crate mpd;
+
+mod helpers;
+use helpers::connect;
+use std::time::Duration;
+
+#[test]
+fn status() {
+ let mut mpd = connect();
+ let status = mpd.status().unwrap();
+ println!("{:?}", status);
+}
+
+#[test]
+fn stats() {
+ let mut mpd = connect();
+ let stats = mpd.stats().unwrap();
+ println!("{:?}", stats);
+}
+
+macro_rules! test_options_impl {
+ ($name:ident, $val1:expr, $tval1:expr, $val2:expr, $tval2:expr) => {
+ #[test]
+ fn $name() {
+ let mut mpd = connect();
+ mpd.$name($val1).unwrap();
+ assert_eq!(mpd.status().unwrap().$name, $tval1);
+ mpd.$name($val2).unwrap();
+ assert_eq!(mpd.status().unwrap().$name, $tval2);
+ }
+ }
+}
+
+macro_rules! test_option {
+ ($name:ident, $val1:expr, $val2:expr) => {
+ test_options_impl!($name, $val1, $val1, $val2, $val2);
+ };
+ ($name:ident, $val1:expr => $tval1:expr, $val2:expr => $tval2:expr) => {
+ test_options_impl!($name, $val1, $tval1, $val2, $tval2);
+ };
+}
+
+test_option!(consume, true, false);
+test_option!(single, true, false);
+test_option!(random, true, false);
+test_option!(repeat, true, false);
+// test_option!(mixrampdb, 1.0f32, 0.0f32);
+// test_option!(mixrampdelay, 1 => Some(Duration::from_secs(1)), 0 => None);
+
+#[test]
+fn volume() {
+ let mut mpd = connect();
+ if mpd.status().unwrap().volume >= 0 {
+ mpd.volume(100).unwrap();
+ assert_eq!(mpd.status().unwrap().volume, 100);
+ mpd.volume(0).unwrap();
+ assert_eq!(mpd.status().unwrap().volume, 0);
+ }
+}
+
+#[test]
+fn crossfade() {
+ let mut mpd = connect();
+ mpd.crossfade(1000).unwrap();
+ assert_eq!(mpd.status().unwrap().crossfade, Some(Duration::from_secs(1000)));
+ mpd.crossfade(0).unwrap();
+ assert_eq!(mpd.status().unwrap().crossfade,
+ if mpd.version >= mpd::Version(0, 19, 0) {
+ None
+ } else {
+ Some(Duration::from_secs(0))
+ });
+}