use crate::error;
use crate::{CapabilityEvent, CapabilityRun, TriggerEvent};
pub(super) fn convert(event: TriggerEvent) -> CapabilityRun {
if let TriggerEvent::Rotation {
index, position, ..
} = event
{
CapabilityRun::Rotate {
state: CapabilityEvent::Any,
index,
increment: position,
}
} else {
error!("Unexpected event {:?}", event);
CapabilityRun::NoOp {
state: CapabilityEvent::None,
}
}
}
#[cfg(test)]
mod tests {
use crate::converters::rotation::convert;
use crate::trigger::Aodo;
use crate::{CapabilityEvent, CapabilityRun, TriggerEvent};
#[test]
fn create_rotate_event() {
let a = TriggerEvent::Rotation {
index: 5,
position: 3,
last_state: 0,
};
assert_eq!(
convert(a),
CapabilityRun::Rotate {
state: CapabilityEvent::Any,
index: 5,
increment: 3,
}
)
}
#[test]
fn convert_unexpected_trigger_event_type_returns_noop() {
let a = TriggerEvent::Sleep {
state: Aodo::Activate,
last_state: 0,
};
let result = convert(a);
assert_eq!(
result,
CapabilityRun::NoOp {
state: CapabilityEvent::None
}
)
}
}