From 615db6be6d91c2ff348956d1c4049861c3c6a959 Mon Sep 17 00:00:00 2001 From: pantonshire Date: Sun, 1 Oct 2023 13:45:42 +0100 Subject: [PATCH] tests for serde deserialize --- enumscribe_tests/tests/test_serde.rs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 enumscribe_tests/tests/test_serde.rs diff --git a/enumscribe_tests/tests/test_serde.rs b/enumscribe_tests/tests/test_serde.rs new file mode 100644 index 0000000..a3aed39 --- /dev/null +++ b/enumscribe_tests/tests/test_serde.rs @@ -0,0 +1,25 @@ +use enumscribe::EnumDeserialize; + +#[test] +fn test_deserialize() { + #[derive(EnumDeserialize, Eq, PartialEq, Debug)] + enum E0 { + V0, + #[enumscribe(str = "baa", case_insensitive)] + V1, + #[enumscribe(str = "bAz\n", case_insensitive)] + V2, + #[enumscribe(str = "蟹")] + V3, + } + + assert_eq!(serde_json::from_str::(r#""V0""#).unwrap(), E0::V0); + assert!(serde_json::from_str::(r#""v0""#).is_err()); + assert_eq!(serde_json::from_str::(r#""baa""#).unwrap(), E0::V1); + assert_eq!(serde_json::from_str::(r#""BAA""#).unwrap(), E0::V1); + assert_eq!(serde_json::from_str::(r#""BaA""#).unwrap(), E0::V1); + assert_eq!(serde_json::from_str::(r#""baz\n""#).unwrap(), E0::V2); + assert_eq!(serde_json::from_str::(r#""BAZ\n""#).unwrap(), E0::V2); + assert_eq!(serde_json::from_str::(r#""BaZ\n""#).unwrap(), E0::V2); + assert_eq!(serde_json::from_str::(r#""\u87f9""#).unwrap(), E0::V3); +}