Establish OA/SA prototype baseline and first-release work
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
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"));
|
||||
}
|
||||
Reference in New Issue
Block a user