use securiety::{CurieParser, CurieParsing, CurieRegexValidator, CurieValidation};
#[test]
fn test_integration_parsing() {
let raw_hp_curie = "HP:0000054";
let parser = CurieParser::hp();
let curie = parser.parse(raw_hp_curie).unwrap();
assert_eq!(curie.prefix(), "HP");
assert_eq!(curie.reference(), "0000054");
assert_eq!(curie.to_string(), raw_hp_curie);
assert!(parser.parse("NotACurie").is_err());
assert!(parser.parse("MONDO:0000054").is_err());
}
#[test]
fn test_integration_parsing_from_prefix() {
let raw_hp_curie = "HP:0000054";
let parser = CurieParser::from_prefix("HP").unwrap();
let curie = parser.parse(raw_hp_curie).unwrap();
assert_eq!(curie.prefix(), "HP");
assert_eq!(curie.reference(), "0000054");
assert_eq!(curie.to_string(), raw_hp_curie);
assert!(parser.parse("NotACurie").is_err());
assert!(parser.parse("MONDO:0000054").is_err());
}
#[test]
fn test_integration_regex_validation_from_prefix() {
let validator = CurieRegexValidator::from_prefix("HP").unwrap();
assert!(validator.validate("HP:0000054"));
assert!(!validator.validate("MONDO:0000054"));
}
#[test]
fn test_integration_regex_validation() {
let validator = CurieRegexValidator::hp();
assert!(validator.validate("HP:0000054"));
assert!(!validator.validate("MONDO:0000054"));
}
#[test]
fn test_integration_regex_validation_general() {
let validator = CurieRegexValidator::general();
assert!(validator.validate("HP:0000054")); assert!(validator.validate("MONDO:0000054")); assert!(validator.validate("LOINC:0000054-6")); assert!(validator.validate("FOO:123")); assert!(validator.validate("ICD9CM:123"));
assert!(validator.validate("urn:uuid:1234-5678"));
assert!(validator.validate("doi:10.1038/nphys1170"));
assert!(validator.validate("refseq:NC_000001.11"));
assert!(validator.validate("wikipedia:Page#Section"));
assert!(validator.validate("my.prop:123"));
assert!(validator.validate("my_prop:123"));
assert!(validator.validate("a:b"));
assert!(!validator.validate("LOINC0000054-6"));
assert!(!validator.validate(":0000054-6"));
assert!(!validator.validate("0000054-6"));
assert!(!validator.validate("LOINC:"));
assert!(!validator.validate("LOINC: "));
assert!(!validator.validate(" HP:0000054")); assert!(!validator.validate("HP:0000054 ")); assert!(!validator.validate("HP: 0000054")); assert!(!validator.validate("HP :0000054"));
assert!(!validator.validate("HP:00\n054"));
}