use super::*;
#[test]
fn simple_checks() {
assert!(check_requirement(
[pn!("meili.index-name.read")].iter(),
[pn!("meili")].iter()
));
assert!(check_requirement(
[pn!("meili.index-name.read")].iter(),
[pn!("meili.index-name")].iter()
));
assert!(check_requirement(
[pn!("meili")].iter(),
[pn!("meili")].iter()
));
assert!(check_requirement(
[pn!("meili.asd")].iter(),
[pn!("meili.asd")].iter()
));
assert!(!check_requirement(
[pn!("meili.asd")].iter(),
[pn!("meili.bcd")].iter()
));
assert!(!check_requirement(
[pn!("meili.index-name2.read")].iter(),
[pn!("meili.index-name")].iter()
));
assert!(!check_requirement(
[pn!("meili")].iter(),
[pn!("meili.bcd")].iter()
));
}
#[test]
fn context_works() {
assert!(check_requirement(
[pn!("meili").set_ctx("server", "home")].iter(),
[pn!("meili")].iter()
));
assert!(check_requirement(
[pn!("meili").set_ctx("server", "home")].iter(),
[pn!("meili").set_ctx("server", "home")].iter()
));
assert!(!check_requirement(
[pn!("meili")].iter(),
[pn!("meili").set_ctx("server", "home")].iter()
));
assert!(!check_requirement(
[pn!("meili").set_ctx("server", "prod")].iter(),
[pn!("meili").set_ctx("server", "home")].iter()
));
}
#[test]
fn multiple_requirements() {
assert!(check_requirement(
[pn!("meili"), pn!("otherstuff")].iter(),
[pn!("otherstuff"), pn!("meili")].iter()
));
assert!(!check_requirement(
[pn!("meili"), pn!("otherstuff")].iter(),
[pn!("meili")].iter()
));
}
#[test]
fn test_traits() {
assert!(format!("{}", pn!("test.of.traits")) == "test.of.traits");
assert!(format!("{}", pn!("test.of.*")) == "test.of");
assert!(format!("{}", pn!("test.of.")) == "test.of");
}
#[test]
fn test_star_and_empty_rules() {
assert!(!check_requirement([pn!("")].iter(), [pn!("*")].iter()));
assert!(check_requirement(
[pn!("asdasdasd"), pn!("qweqwe"), pn!("fghfgh"),].iter(),
[pn!("*")].iter()
));
let mut pn = pn!("");
pn.push("");
assert!(!check_requirement([pn].iter(), [pn!("*")].iter()));
let mut pn = pn!("");
pn.push("*");
assert!(check_requirement([pn.clone()].iter(), [pn!("*")].iter()));
let mut pn_c = pn.clone();
pn_c.push("*");
assert_eq!(pn, pn_c);
}