use mpdclient::connection::ProtoVerCmp;
use crate::common::setup_mpd;
mod common;
pub static MPD_PROTO_VER: (u32, u32, u32) = (0, 24, 0);
#[test]
fn version() -> eyre::Result<()> {
setup_mpd(
|_| Ok(()),
|conn| {
assert_eq!(conn.version()?, MPD_PROTO_VER);
Ok(())
},
)
}
#[test]
fn cmp_version() -> eyre::Result<()> {
setup_mpd(
|_| Ok(()),
|conn| {
assert_eq!(conn.cmp_version(MPD_PROTO_VER)?, ProtoVerCmp::Equal);
assert_eq!(conn.cmp_version((0, 23, 0))?, ProtoVerCmp::Newer);
assert_eq!(conn.cmp_version((1, 30, 0))?, ProtoVerCmp::Older);
Ok(())
},
)
}
#[test]
fn keepalive() -> eyre::Result<()> {
setup_mpd(
|_| Ok(()),
|conn| {
assert!(conn.set_keepalive(true).is_ok());
Ok(())
},
)
}
#[test]
fn keepalive_disable() -> eyre::Result<()> {
setup_mpd(
|_| Ok(()),
|conn| {
assert!(conn.set_keepalive(true).is_ok());
assert!(conn.set_keepalive(false).is_ok());
Ok(())
},
)
}
#[test]
fn change_timeout() -> eyre::Result<()> {
setup_mpd(
|_| Ok(()),
|conn| {
assert!(conn.set_timeout(2001).is_ok());
Ok(())
},
)
}
#[test]
fn change_timeout_zero() -> eyre::Result<()> {
setup_mpd(
|_| Ok(()),
|conn| {
assert!(conn.set_timeout(0).is_err());
Ok(())
},
)
}
#[test]
fn playlists() -> eyre::Result<()> {
setup_mpd(
|setup| {
setup.playlist()?;
Ok(())
},
|conn| {
assert_eq!(conn.stored_playlists()?.receive_all()?.len(), 1);
Ok(())
},
)
}