oparl_types/
oparl_version.rs1#[derive(
7 Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, serde::Serialize, serde::Deserialize,
8)]
9pub enum OParlVersion {
10 #[serde(rename = "https://schema.oparl.org/1.1/")]
11 Version1_1,
12}
13
14#[cfg(test)]
15mod serde_tests {
16 use super::OParlVersion;
17 use pretty_assertions::assert_eq;
18 use serde_json::json;
19
20 #[test]
21 fn serialize() {
22 assert_eq!(
23 json!(OParlVersion::Version1_1),
24 json!("https://schema.oparl.org/1.1/")
25 );
26 }
27
28 #[test]
29 fn deserialize_good() {
30 let deserialized: OParlVersion =
31 serde_json::from_value(json!("https://schema.oparl.org/1.1/"))
32 .expect("value must be deserializable as OParlVersion");
33 assert_eq!(deserialized, OParlVersion::Version1_1);
34 }
35
36 #[test]
37 fn deserialize_bad() {
38 assert!(
39 serde_json::from_value::<OParlVersion>(json!("https://schema.opral.org/1.1/")).is_err()
40 );
41 assert!(
42 serde_json::from_value::<OParlVersion>(json!("https://schema.oparl.org/1.0/")).is_err()
43 );
44 assert!(
45 serde_json::from_value::<OParlVersion>(json!("https://schema.oparl.org/1.1")).is_err()
46 );
47 assert!(
48 serde_json::from_value::<OParlVersion>(json!("http://schema.oparl.org/1.1/")).is_err()
49 );
50 }
51}