51 lines
1.5 KiB
Rust
51 lines
1.5 KiB
Rust
use archlens_domain::{
|
|
FilePath, Relationship, RelationshipKind,
|
|
};
|
|
use archlens_rendering_primitives::{non_import_rels, sanitize_identifier};
|
|
|
|
fn rel(src: &str, tgt: &str, kind: RelationshipKind) -> Relationship {
|
|
Relationship::new(src, tgt, kind).unwrap()
|
|
}
|
|
|
|
#[test]
|
|
fn non_import_rels_excludes_import_relationships() {
|
|
let rels = vec![
|
|
rel("A", "B", RelationshipKind::Composition),
|
|
rel("C", "D", RelationshipKind::Import),
|
|
rel("E", "F", RelationshipKind::Inheritance),
|
|
];
|
|
let filtered: Vec<_> = non_import_rels(&rels).collect();
|
|
assert_eq!(filtered.len(), 2);
|
|
assert!(filtered.iter().all(|r| r.kind() != RelationshipKind::Import));
|
|
}
|
|
|
|
#[test]
|
|
fn non_import_rels_passes_all_non_import_kinds() {
|
|
let rels = vec![
|
|
rel("A", "B", RelationshipKind::Composition),
|
|
rel("C", "D", RelationshipKind::Inheritance),
|
|
];
|
|
let filtered: Vec<_> = non_import_rels(&rels).collect();
|
|
assert_eq!(filtered.len(), 2);
|
|
}
|
|
|
|
#[test]
|
|
fn sanitize_identifier_replaces_double_colon_with_underscore() {
|
|
assert_eq!(sanitize_identifier("foo::bar"), "foo_bar");
|
|
}
|
|
|
|
#[test]
|
|
fn sanitize_identifier_replaces_hyphen_with_underscore() {
|
|
assert_eq!(sanitize_identifier("my-crate"), "my_crate");
|
|
}
|
|
|
|
#[test]
|
|
fn sanitize_identifier_replaces_dot_with_underscore() {
|
|
assert_eq!(sanitize_identifier("v1.2"), "v1_2");
|
|
}
|
|
|
|
#[test]
|
|
fn sanitize_identifier_replaces_space_with_underscore() {
|
|
assert_eq!(sanitize_identifier("my crate"), "my_crate");
|
|
}
|