From 8f9d8d201ed81de53eb54f8457e58254784664a3 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Wed, 17 Jun 2026 13:53:37 +0800 Subject: Add Display and From impls for Languages enum --- shakehand-test/src/lib.rs | 68 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) (limited to 'shakehand-test/src') diff --git a/shakehand-test/src/lib.rs b/shakehand-test/src/lib.rs index 8c60441..a59d993 100644 --- a/shakehand-test/src/lib.rs +++ b/shakehand-test/src/lib.rs @@ -176,6 +176,74 @@ mod test { let greeting = Global::greeting(Global::world()); assert_eq!(greeting, "Hello, world!"); } + + #[test] + fn test_set_lang_from_str() { + let _lock = lock_lang(); + set_lang("en"); + assert_eq!(Global::world(), "world"); + + set_lang("zh_CN"); + assert_eq!(Global::world(), "世界"); + + set_lang("zh-CN"); + assert_eq!(Global::world(), "世界"); + + set_lang(" en "); + assert_eq!(Global::world(), "world"); + } + + #[test] + fn test_set_lang_from_string() { + let _lock = lock_lang(); + set_lang(String::from("fr")); + assert_eq!(Global::world(), "monde"); + + set_lang(String::from("zh_TW")); + assert_eq!(Global::world(), "世界"); + } + + #[test] + fn test_languages_display() { + let _lock = lock_lang(); + + assert_eq!(Languages::en.to_string(), "en"); + assert_eq!(Languages::zh_CN.to_string(), "zh_CN"); + assert_eq!(Languages::fr.to_string(), "fr"); + assert_eq!(format!("{}", Languages::ja), "ja"); + } + + #[test] + fn test_from_str_cases() { + use std::convert::From; + + assert_eq!( + >::from("en") as u8, + Languages::en as u8 + ); + assert_eq!( + >::from("zh_CN") as u8, + Languages::zh_CN as u8 + ); + assert_eq!( + >::from("zh-CN") as u8, + Languages::zh_CN as u8 + ); + assert_eq!( + >::from("ZH_CN") as u8, + Languages::zh_CN as u8 + ); + assert_eq!( + >::from("zh-cn") as u8, + Languages::zh_CN as u8 + ); + } + + #[test] + #[should_panic(expected = "unknown language")] + fn test_from_str_unknown() { + let _ = Languages::from("klingon"); + } } mod locale { -- cgit