use assert2::{assert};
#[test]
fn test_convert_char_size() {
assert!(serial2::CharSize::Bits5.as_u8() == 5);
assert!(serial2::CharSize::Bits6.as_u8() == 6);
assert!(serial2::CharSize::Bits7.as_u8() == 7);
assert!(serial2::CharSize::Bits8.as_u8() == 8);
assert!(let Ok(serial2::CharSize::Bits5) = serial2::CharSize::try_from(5));
assert!(let Ok(serial2::CharSize::Bits6) = serial2::CharSize::try_from(6));
assert!(let Ok(serial2::CharSize::Bits7) = serial2::CharSize::try_from(7));
assert!(let Ok(serial2::CharSize::Bits8) = serial2::CharSize::try_from(8));
assert!(let Err(e) = serial2::CharSize::try_from(-8i8));
assert!(e.to_string() == "invalid value: -8, expected the number 5, 6, 7 or 8");
assert!(let Err(e) = serial2::CharSize::try_from(-1i16));
assert!(e.to_string() == "invalid value: -1, expected the number 5, 6, 7 or 8");
assert!(let Err(e) = serial2::CharSize::try_from(0u8));
assert!(e.to_string() == "invalid value: 0, expected the number 5, 6, 7 or 8");
assert!(let Err(e) = serial2::CharSize::try_from(4u16));
assert!(e.to_string() == "invalid value: 4, expected the number 5, 6, 7 or 8");
assert!(let Err(e) = serial2::CharSize::try_from(9usize));
assert!(e.to_string() == "invalid value: 9, expected the number 5, 6, 7 or 8");
}
#[test]
fn test_convert_stop_bits() {
assert!(serial2::StopBits::One.as_u8() == 1);
assert!(serial2::StopBits::Two.as_u8() == 2);
assert!(let Ok(serial2::StopBits::One) = serial2::StopBits::try_from(1));
assert!(let Ok(serial2::StopBits::Two) = serial2::StopBits::try_from(2));
assert!(let Err(e) = serial2::StopBits::try_from(0u8));
assert!(e.to_string() == "invalid value: 0, expected the number 1 or 2");
assert!(let Err(e) = serial2::StopBits::try_from(3u16));
assert!(e.to_string() == "invalid value: 3, expected the number 1 or 2");
assert!(let Err(e) = serial2::StopBits::try_from(-8isize));
assert!(e.to_string() == "invalid value: -8, expected the number 1 or 2");
}
#[test]
fn test_serde_parity() {
assert!(serial2::Parity::None.as_str() == "none");
assert!(serial2::Parity::Odd.as_str() == "odd");
assert!(serial2::Parity::Even.as_str() == "even");
assert!(let Ok(serial2::Parity::None) = serial2::Parity::from_str("none"));
assert!(let Ok(serial2::Parity::Odd) = serial2::Parity::from_str("odd"));
assert!(let Ok(serial2::Parity::Even) = serial2::Parity::from_str("even"));
assert!(let Err(e) = serial2::Parity::from_str("even-then-odd"));
assert!(e.to_string() == "invalid value: \"even-then-odd\", expected the string \"none\", \"odd\" or \"even\"");
}
#[test]
fn test_serde_flow_control() {
assert!(serial2::FlowControl::None.as_str() == "none");
assert!(serial2::FlowControl::XonXoff.as_str() == "xon/xoff");
assert!(serial2::FlowControl::RtsCts.as_str() == "rts/cts");
assert!(let Ok(serial2::FlowControl::None) = serial2::FlowControl::from_str("none"));
assert!(let Ok(serial2::FlowControl::XonXoff) = serial2::FlowControl::from_str("xon/xoff"));
assert!(let Ok(serial2::FlowControl::RtsCts) = serial2::FlowControl::from_str("rts/cts"));
assert!(let Err(e) = serial2::FlowControl::from_str("plug-in/plug-out"));
assert!(e.to_string() == "invalid value: \"plug-in/plug-out\", expected the string \"none\", \"xon/xoff\" or \"rts/cts\"");
}