mitrid_core 0.9.4

Core library of the Mitrid framework
use mitrid_core::util::regex;

const EMAIL_PATTERN: &str = "(^(?P<username>[a-zA-Z0-9_.+-]+)@(?P<host>[a-zA-Z0-9-]+)\\.(?P<domain>[a-zA-Z0-9-.]+)$)";

#[test]
fn test_regex_is_match() {
    let valid_email = "test@example.com";

    let res = regex::is_match(EMAIL_PATTERN, valid_email);
    assert!(res.is_ok());
    assert!(res.unwrap());

    let invalid_email = "test/@example.com";

    let res = regex::is_match(EMAIL_PATTERN, invalid_email);
    assert!(res.is_ok());
    assert!(!res.unwrap())
}

#[test]
fn test_regex_captures() {
    let valid_email = "test@example.com";

    let res = regex::captures(EMAIL_PATTERN, valid_email);
    assert!(res.is_ok());

    let captures = res.unwrap();

    let username_ = captures.get("username");
    assert!(username_.is_some());
    let username = username_.unwrap();
    assert_eq!(username, "test");
    
    let host_ = captures.get("host");
    assert!(host_.is_some());
    let host = host_.unwrap();
    assert_eq!(host, "example");
    
    let domain_ = captures.get("domain");
    assert!(domain_.is_some());
    let domain = domain_.unwrap();
    assert_eq!(domain, "com");

    let invalid_email = "test/@example.com";

    let res = regex::captures(EMAIL_PATTERN, invalid_email);
    assert!(res.is_err());
}