use auth_framework::audit::RequestMetadata;
use auth_framework::permissions::PermissionChecker;
use auth_framework::session::DeviceFingerprintGenerator;
#[tokio::test]
async fn test_resource_hierarchy_works() {
let mut checker = PermissionChecker::new();
checker.create_default_roles();
checker.add_resource_hierarchy("parent".to_string(), vec!["child".to_string()]);
let children = checker.get_child_resources("parent");
assert!(children.is_some());
assert_eq!(children.unwrap().len(), 1);
let _result = checker.check_hierarchical_permission("admin", "read", "child");
println!("✅ Resource hierarchy integration working");
}
#[tokio::test]
async fn test_device_fingerprinting_works() {
let generator = DeviceFingerprintGenerator::new();
let metadata = RequestMetadata {
ip_address: Some("192.168.1.1".to_string()),
user_agent: Some("Test Browser".to_string()),
request_id: Some("test-123".to_string()),
endpoint: Some("/test".to_string()),
http_method: Some("GET".to_string()),
geolocation: None,
device_info: None,
};
let fingerprint = generator.generate_fingerprint(&metadata);
assert!(!fingerprint.is_empty());
let fingerprint2 = generator.generate_fingerprint(&metadata);
assert_eq!(fingerprint, fingerprint2);
}