38 lines
1.1 KiB
Rust
38 lines
1.1 KiB
Rust
use oa_core::{
|
|
validation::{Severity, validate},
|
|
*,
|
|
};
|
|
#[test]
|
|
fn sequence_gaps_name_occurrences_exchanges_and_endpoints() {
|
|
let mut p = Project::demo();
|
|
let first = p
|
|
.relations
|
|
.values()
|
|
.find(|r| r.kind() == RelationKind::Interaction)
|
|
.unwrap()
|
|
.clone();
|
|
let process = p
|
|
.elements
|
|
.values()
|
|
.find(|e| e.kind() == Kind::Process)
|
|
.unwrap()
|
|
.id;
|
|
let other = p.add(Kind::Activity, "Unrelated work", 0., 0.);
|
|
let reply = p.relate(
|
|
RelationKind::Interaction,
|
|
"Unrelated message",
|
|
other,
|
|
first.source(),
|
|
);
|
|
let p = execute_batch(&p, &[Command::AddStep(process, reply)]).unwrap();
|
|
let issue = validate(&p)
|
|
.into_iter()
|
|
.find(|i| i.code == "sequence_gap")
|
|
.unwrap();
|
|
assert_eq!(issue.severity, Severity::Warning);
|
|
assert_eq!(issue.element, Some(process));
|
|
assert!(issue.message.contains("steps 1 and 2"));
|
|
assert!(issue.message.contains("Distress signal"));
|
|
assert!(issue.message.contains("Unrelated message"));
|
|
}
|