native_theme/model/
dialog_order.rs1use serde::{Deserialize, Serialize};
4
5#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
10#[serde(rename_all = "snake_case")]
11pub enum DialogButtonOrder {
12 #[default]
14 TrailingAffirmative,
15 LeadingAffirmative,
17}
18
19#[cfg(test)]
20#[allow(clippy::unwrap_used, clippy::expect_used)]
21mod tests {
22 use super::*;
23
24 #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
26 struct Wrapper {
27 order: DialogButtonOrder,
28 }
29
30 #[test]
31 fn trailing_affirmative_serializes_correctly() {
32 let w = Wrapper {
33 order: DialogButtonOrder::TrailingAffirmative,
34 };
35 let toml_str = toml::to_string(&w).unwrap();
36 assert!(toml_str.contains("trailing_affirmative"), "got: {toml_str}");
37 }
38
39 #[test]
40 fn leading_affirmative_serializes_correctly() {
41 let w = Wrapper {
42 order: DialogButtonOrder::LeadingAffirmative,
43 };
44 let toml_str = toml::to_string(&w).unwrap();
45 assert!(toml_str.contains("leading_affirmative"), "got: {toml_str}");
46 }
47
48 #[test]
49 fn trailing_affirmative_round_trip() {
50 let original = Wrapper {
51 order: DialogButtonOrder::TrailingAffirmative,
52 };
53 let serialized = toml::to_string(&original).unwrap();
54 let deserialized: Wrapper = toml::from_str(&serialized).unwrap();
55 assert_eq!(deserialized, original);
56 }
57
58 #[test]
59 fn leading_affirmative_round_trip() {
60 let original = Wrapper {
61 order: DialogButtonOrder::LeadingAffirmative,
62 };
63 let serialized = toml::to_string(&original).unwrap();
64 let deserialized: Wrapper = toml::from_str(&serialized).unwrap();
65 assert_eq!(deserialized, original);
66 }
67
68 #[test]
69 fn trailing_affirmative_deserializes_from_toml_value() {
70 let toml_str = r#"order = "trailing_affirmative""#;
71 let w: Wrapper = toml::from_str(toml_str).unwrap();
72 assert_eq!(w.order, DialogButtonOrder::TrailingAffirmative);
73 }
74
75 #[test]
76 fn leading_affirmative_deserializes_from_toml_value() {
77 let toml_str = r#"order = "leading_affirmative""#;
78 let w: Wrapper = toml::from_str(toml_str).unwrap();
79 assert_eq!(w.order, DialogButtonOrder::LeadingAffirmative);
80 }
81}