myid 0.1.10

Rust client library for MyID SDK API — user identification and verification
Documentation
use myid::types::PassportData;

#[test]
fn valid_passport_parses() {
    let p = PassportData::parse("AB1234567").unwrap();
    assert_eq!(p.as_str(), "AB1234567");
}

#[test]
fn lowercase_normalized_to_uppercase() {
    let p = PassportData::parse("ab1234567").unwrap();
    assert_eq!(p.as_str(), "AB1234567");
}

#[test]
fn series_and_number_split() {
    let p = PassportData::parse("AB1234567").unwrap();
    assert_eq!(p.series(), "AB");
    assert_eq!(p.number(), "1234567");
}

#[test]
fn too_short_rejected() {
    assert!(PassportData::parse("AB123456").is_err());
}

#[test]
fn too_long_rejected() {
    assert!(PassportData::parse("AB12345678").is_err());
}

#[test]
fn digit_in_series_rejected() {
    assert!(PassportData::parse("1B1234567").is_err());
}

#[test]
fn letter_in_number_rejected() {
    assert!(PassportData::parse("AB123456A").is_err());
}

#[test]
fn serde_roundtrip() {
    let p = PassportData::parse("CD9876543").unwrap();
    let json = serde_json::to_string(&p).unwrap();
    let back: PassportData = serde_json::from_str(&json).unwrap();
    assert_eq!(p, back);
}

#[test]
fn into_string_conversion() {
    let p = PassportData::parse("AB1234567").unwrap();
    let s: String = p.into();
    assert_eq!(s, "AB1234567");
}