From bf2762cc67ff4007a94a79bc2638685ce31a3dbd Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Fri, 24 May 2024 15:10:36 -0700 Subject: [PATCH] hardware: Add enum round-trip tests --- src/hardware.rs | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/hardware.rs b/src/hardware.rs index 09f8dc8..dca0859 100644 --- a/src/hardware.rs +++ b/src/hardware.rs @@ -159,7 +159,7 @@ impl FanControl { #[cfg(test)] mod test { use super::*; - use crate::testing; + use crate::{enum_roundtrip, testing}; use tokio::fs::{create_dir_all, write}; #[tokio::test] @@ -194,4 +194,29 @@ mod test { .expect("write"); assert_eq!(variant().await.unwrap(), HardwareVariant::Unknown); } + + #[test] + fn hardware_currently_supported_roundtrip() { + enum_roundtrip!(HardwareCurrentlySupported { + 0: u32 = Unsupported, + 1: u32 = Supported, + }); + assert!(HardwareCurrentlySupported::try_from(2).is_err()); + assert_eq!(HardwareCurrentlySupported::Unsupported.to_string(), "Unsupported"); + assert_eq!(HardwareCurrentlySupported::Supported.to_string(), "Supported"); + } + + #[test] + fn fan_control_state_roundtrip() { + enum_roundtrip!(FanControlState { + 0: u32 = Bios, + 1: u32 = Os, + "BIOS": str = Bios, + "OS": str = Os, + }); + assert_eq!(FanControlState::from_str("os").unwrap(), FanControlState::Os); + assert_eq!(FanControlState::from_str("bios").unwrap(), FanControlState::Bios); + assert!(FanControlState::try_from(2).is_err()); + assert!(FanControlState::from_str("on").is_err()); + } }