use pleme_codegen::{DomainModel, GraphQLBridge, BrazilianEntity};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize, DomainModel, GraphQLBridge, BrazilianEntity)]
#[domain(table = "test_entities", cache_ttl = 300)]
struct TestEntity {
pub name: String,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_domain_model_macro() {
let entity = TestEntity {
name: "Test".to_string(),
};
let _cache_key = entity.cache_key();
assert_eq!(TestEntity::TABLE_NAME, "TestEntitys");
}
#[test]
fn test_graphql_bridge_macro() {
let entity = TestEntity {
name: "Test".to_string(),
};
let _json = entity.to_graphql();
let _result = entity.validate_for_graphql();
}
#[test]
fn test_brazilian_entity_macro() {
assert!(TestEntity::validate_cpf("111.444.777-35")); assert!(!TestEntity::validate_cpf("123.456.789-09")); assert!(!TestEntity::validate_cpf("invalid"));
assert!(TestEntity::validate_cep("12345-678"));
assert!(!TestEntity::validate_cep("invalid"));
let formatted_cpf = TestEntity::format_cpf("12345678909");
assert_eq!(formatted_cpf, "123.456.789-09");
}
}