From aecf217ba315d4ea8ab4d0e953605f9123ac7ad2 Mon Sep 17 00:00:00 2001 From: master-main-hub Date: Sat, 9 Nov 2024 05:57:19 +0000 Subject: [PATCH] =?UTF-8?q?[ISSUE=20#1121]=F0=9F=A7=AAAdd=20test=20case=20?= =?UTF-8?q?for=20AccessChannel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rocketmq-client/src/base/access_channel.rs | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/rocketmq-client/src/base/access_channel.rs b/rocketmq-client/src/base/access_channel.rs index 337ea2e3..e6b47153 100644 --- a/rocketmq-client/src/base/access_channel.rs +++ b/rocketmq-client/src/base/access_channel.rs @@ -54,3 +54,45 @@ impl<'de> Deserialize<'de> for AccessChannel { } } } + +#[cfg(test)] +mod tests { + use serde_json; + + use super::*; + + #[test] + fn serialize_access_channel_local() { + let channel = AccessChannel::Local; + let serialized = serde_json::to_string(&channel).unwrap(); + assert_eq!(serialized, r#"{"AccessChannel":"LOCAL"}"#); + } + + #[test] + fn serialize_access_channel_cloud() { + let channel = AccessChannel::Cloud; + let serialized = serde_json::to_string(&channel).unwrap(); + assert_eq!(serialized, r#"{"AccessChannel":"CLOUD"}"#); + } + + #[test] + fn deserialize_access_channel_local() { + let json = r#""LOCAL""#; + let deserialized: AccessChannel = serde_json::from_str(json).unwrap(); + assert_eq!(deserialized, AccessChannel::Local); + } + + #[test] + fn deserialize_access_channel_cloud() { + let json = r#""CLOUD""#; + let deserialized: AccessChannel = serde_json::from_str(json).unwrap(); + assert_eq!(deserialized, AccessChannel::Cloud); + } + + #[test] + fn deserialize_access_channel_unknown_variant() { + let json = r#""UNKNOWN""#; + let result: Result = serde_json::from_str(json); + assert!(result.is_err()); + } +}