#![cfg(feature = "discovery")]
use affidavit::chain::ChainAssembler;
use affidavit::discovery::{project_to_event_log, ACTIVITY_KEY};
use affidavit::ocel::{build_event, object_ref, SeqCounter};
#[test]
fn get_activities_extracts_the_receipts_event_types() {
let mut asm = ChainAssembler::new();
let mut counter = SeqCounter::new();
for act in ["create", "transform", "release", "create"] {
let ev = build_event(
act,
vec![object_ref("o", "artifact")],
act.as_bytes(),
&mut counter,
)
.expect("event");
asm.append(ev).expect("append");
}
let receipt = asm.finalize();
let log = project_to_event_log(&receipt);
let mut activities = log.get_activities(ACTIVITY_KEY);
activities.sort_unstable();
activities.dedup();
assert_eq!(
activities,
vec![
"create".to_string(),
"release".to_string(),
"transform".to_string()
],
"the discovered activity vocabulary is the receipt's distinct event types"
);
}