mod error;
mod generator;
mod validator;
pub use error::{LicenseError, Result};
pub use generator::LicenseGenerator;
pub use validator::{LicenseInfo, LicenseValidator};
pub const LICENSE_PREFIX: &str = "alvan-";
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_license_generation_and_validation() {
let secret = "test-secret-key";
let generator = LicenseGenerator::new(secret);
let validator = LicenseValidator::new(secret);
let license = generator.generate_key(1).unwrap();
assert!(license.starts_with(LICENSE_PREFIX));
let info = validator.validate_key(&license).unwrap();
assert!(info.is_valid);
assert!(info.hours_remaining > 0.0);
}
#[test]
fn test_invalid_secret_key() {
let generator = LicenseGenerator::new("secret1");
let validator = LicenseValidator::new("secret2");
let license = generator.generate_key(1).unwrap();
let result = validator.validate_key(&license);
assert!(result.is_err());
}
}