use crate::common::setup_mpd;
mod common;
#[test]
fn artists() -> eyre::Result<()> {
setup_mpd(
|setup| setup.song("song"),
|conn| {
assert_eq!(conn.stats()?.artists(), Some(2));
Ok(())
},
)
}
#[test]
fn albums() -> eyre::Result<()> {
setup_mpd(
|setup| setup.song("song"),
|conn| {
assert_eq!(conn.stats()?.albums(), Some(1));
Ok(())
},
)
}
#[test]
fn songs() -> eyre::Result<()> {
setup_mpd(
|setup| {
setup.song("song")?;
setup.song("song2")
},
|conn| {
assert_eq!(conn.stats()?.songs().unwrap(), 2);
Ok(())
},
)
}
#[test]
fn uptime() -> eyre::Result<()> {
setup_mpd(
|_| Ok(()),
|conn| {
assert!(conn.stats()?.uptime().is_none());
std::thread::sleep(std::time::Duration::from_secs(1));
assert!(conn.stats()?.uptime().unwrap() >= 1);
Ok(())
},
)
}
#[test]
fn update_time() -> eyre::Result<()> {
setup_mpd(
|_| Ok(()),
|conn| {
assert!(conn.stats()?.db_update_time().is_some());
Ok(())
},
)
}
#[test]
fn play_time() -> eyre::Result<()> {
setup_mpd(
|setup| setup.song("song"),
|conn| {
assert!(conn.stats()?.play_time().is_none());
conn.queue().add("song.mp3")?;
conn.player().play()?;
std::thread::sleep(std::time::Duration::from_secs(1));
conn.player().pause(true)?;
assert!(conn.stats()?.play_time().unwrap() >= 1);
Ok(())
},
)
}
#[test]
fn db_play_time() -> eyre::Result<()> {
setup_mpd(
|setup| setup.song("song"),
|conn| {
conn.queue().add("song.mp3")?;
conn.player().play()?;
conn.player().pause(true)?;
assert_eq!(conn.stats()?.db_play_time().unwrap(), 30);
Ok(())
},
)
}