aboutsummaryrefslogtreecommitdiff
path: root/shakehand-test
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-06-17 13:53:37 +0800
committer魏曹先生 <1992414357@qq.com>2026-06-17 13:53:37 +0800
commit8f9d8d201ed81de53eb54f8457e58254784664a3 (patch)
treeb4c0741eb489ccaa747f27906283e4fbc07d2e1a /shakehand-test
parent61bcf097efc4d49168aba40e7e87d454cd767d52 (diff)
Add Display and From impls for Languages enum
Diffstat (limited to 'shakehand-test')
-rw-r--r--shakehand-test/src/lib.rs68
1 files changed, 68 insertions, 0 deletions
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!(
+ <Languages as From<&str>>::from("en") as u8,
+ Languages::en as u8
+ );
+ assert_eq!(
+ <Languages as From<&str>>::from("zh_CN") as u8,
+ Languages::zh_CN as u8
+ );
+ assert_eq!(
+ <Languages as From<&str>>::from("zh-CN") as u8,
+ Languages::zh_CN as u8
+ );
+ assert_eq!(
+ <Languages as From<&str>>::from("ZH_CN") as u8,
+ Languages::zh_CN as u8
+ );
+ assert_eq!(
+ <Languages as From<&str>>::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 {