#[cfg(all(feature = "xiaomi", feature = "debug"))]
#[test]
fn contact_sensor_mccgq11lm() {
let json = serde_json::json!({
"voltage": 2995,
"battery": 97,
"device_temperature": 19,
"power_outage_count": 6,
"linkquality": 247,
"contact": false,
})
.to_string();
let parsed: zigbee2mqtt_types::xiaomi::ZigbeeMccgq11lm = match serde_json::from_str(&json) {
Ok(contact) => contact,
Err(err) => {
println!("{:?}", err);
assert!(false);
unimplemented!()
}
};
assert_eq!(None, parsed.last_seen);
assert_eq!(None, parsed.elapsed);
assert_eq!(2995.0, parsed.voltage);
assert_eq!(97.0, parsed.battery);
assert_eq!(19.0, parsed.device_temperature);
assert_eq!(6.0, parsed.power_outage_count);
assert_eq!(247.0, parsed.linkquality);
assert_eq!(false, parsed.contact);
}
#[cfg(all(feature = "xiaomi", feature = "debug"))]
#[test]
fn contact_sensor_mccgq11lm_last_seen_iso_8601() {
let json = serde_json::json!({
"voltage": 2995,
"battery": 97,
"device_temperature": 19,
"last_seen": "2022_10_20T11:55:07.199z", "power_outage_count": 6,
"linkquality": 247,
"contact": false,
})
.to_string();
let parsed: zigbee2mqtt_types::xiaomi::ZigbeeMccgq11lm = match serde_json::from_str(&json) {
Ok(contact) => contact,
Err(err) => {
println!("{:?}", err);
assert!(false);
unimplemented!()
}
};
match parsed.last_seen.unwrap() {
zigbee2mqtt_types_base_types::LastSeen::Iso8601(val) => {
assert_eq!("2022_10_20T11:55:07.199z", val);
}
zigbee2mqtt_types_base_types::LastSeen::Epoch(_) => {
panic!("Value parsed as epoch instead of Iso8601")
}
}
assert_eq!(2995.0, parsed.voltage);
assert_eq!(97.0, parsed.battery);
assert_eq!(19.0, parsed.device_temperature);
assert_eq!(6.0, parsed.power_outage_count);
assert_eq!(247.0, parsed.linkquality);
assert_eq!(false, parsed.contact);
}
#[cfg(all(feature = "xiaomi", feature = "debug"))]
#[test]
fn contact_sensor_mccgq11lm_last_seen_iso_8601_elapsed() {
let json = serde_json::json!({
"voltage": 2995,
"battery": 97,
"device_temperature": 19,
"last_seen": "2022_10_20T11:55:07.199z", "power_outage_count": 6,
"linkquality": 247,
"contact": false,
"elapsed": 2547593 })
.to_string();
let parsed: zigbee2mqtt_types::xiaomi::ZigbeeMccgq11lm = match serde_json::from_str(&json) {
Ok(contact) => contact,
Err(err) => {
println!("{:?}", err);
assert!(false);
unimplemented!()
}
};
match parsed.last_seen.unwrap() {
zigbee2mqtt_types_base_types::LastSeen::Iso8601(val) => {
assert_eq!("2022_10_20T11:55:07.199z", val);
}
zigbee2mqtt_types_base_types::LastSeen::Epoch(_) => {
panic!("Value parsed as epoch instead of Iso8601")
}
}
assert_eq!(Some(2547593), parsed.elapsed);
assert_eq!(2995.0, parsed.voltage);
assert_eq!(97.0, parsed.battery);
assert_eq!(19.0, parsed.device_temperature);
assert_eq!(6.0, parsed.power_outage_count);
assert_eq!(247.0, parsed.linkquality);
assert_eq!(false, parsed.contact);
}
#[cfg(all(feature = "xiaomi", feature = "debug"))]
#[test]
fn contact_sensor_mccgq11lm_elapsed() {
let json = serde_json::json!({
"voltage": 2995,
"battery": 97,
"device_temperature": 19,
"power_outage_count": 6,
"linkquality": 247,
"contact": false,
"elapsed": 2547593 })
.to_string();
let parsed: zigbee2mqtt_types::xiaomi::ZigbeeMccgq11lm = match serde_json::from_str(&json) {
Ok(contact) => contact,
Err(err) => {
println!("{:?}", err);
assert!(false);
unimplemented!()
}
};
assert_eq!(Some(2547593), parsed.elapsed);
assert_eq!(2995.0, parsed.voltage);
assert_eq!(97.0, parsed.battery);
assert_eq!(19.0, parsed.device_temperature);
assert_eq!(6.0, parsed.power_outage_count);
assert_eq!(247.0, parsed.linkquality);
assert_eq!(false, parsed.contact);
}
#[cfg(all(feature = "philips", feature = "debug"))]
#[test]
fn motion_sensor_9290012607() {
let json = serde_json::json!({
"occupancy": true,
"occupancy_timeout": 0,
"temperature": 17,
"battery": 100,
"motion_sensitivity": "high",
"update": { "state":"available"},
"illuminance": 0,
"illuminance_lux": 0,
"update_available": true,
"linkquality": 255,
"led_indication": true
})
.to_string();
let parsed: zigbee2mqtt_types::philips::Zigbee9290012607 = match serde_json::from_str(&json) {
Ok(contact) => contact,
Err(err) => {
println!("{:?}", err);
assert!(false);
unimplemented!()
}
};
assert_eq!(0.0, parsed.illuminance);
assert_eq!(0.0, parsed.illuminance_lux);
assert_eq!(100.0, parsed.battery);
assert_eq!(17.0, parsed.temperature);
assert_eq!(255.0, parsed.linkquality);
assert_eq!(true, parsed.occupancy);
assert_eq!(true, parsed.led_indication);
assert_eq!(
zigbee2mqtt_types::philips::Zigbee9290012607Motionsensitivity::High,
parsed.motion_sensitivity
);
}