use vn::ReleaseField::{AltTitle, Title};
use vn::{ReleaseId, Vndb};
const KUSARIHIME: &str = "Kusarihime ~Euthanasia~ Download Edition";
const KUSARIHIME_ID: u16 = 80;
#[tokio::test]
async fn get_release() {
let vndb = Vndb::new();
let filters = r#"["id", "=", "r80"]"#;
let results = vndb
.post()
.release()
.filters(filters.try_into().unwrap())
.fields([Title, AltTitle])
.results(5)
.send()
.await
.unwrap()
.results;
let release = results
.iter()
.find(|it| {
it.title
.as_deref()
.unwrap()
.eq_ignore_ascii_case(KUSARIHIME)
})
.unwrap();
let title = release.title.as_deref().unwrap();
assert_eq!(release.id, ReleaseId::from(KUSARIHIME_ID));
assert!(title.eq_ignore_ascii_case(KUSARIHIME));
}
#[tokio::test]
async fn find_release() {
let release = Vndb::new()
.find_release(KUSARIHIME_ID)
.fields([Title, AltTitle])
.send()
.await
.unwrap()
.swap_remove(0);
assert_eq!(release.id, ReleaseId::from(KUSARIHIME_ID));
assert_eq!(release.title.as_deref(), Some(KUSARIHIME));
}
#[tokio::test]
async fn search_release() {
let results = Vndb::new()
.search_release("Kusarihime")
.fields([Title, AltTitle])
.send()
.await
.unwrap()
.results;
let release = results
.iter()
.find(|it| {
it.title
.as_deref()
.unwrap()
.eq_ignore_ascii_case(KUSARIHIME)
})
.unwrap();
assert_eq!(release.id, ReleaseId::from(KUSARIHIME_ID));
assert_eq!(release.title.as_deref(), Some(KUSARIHIME));
}