Import push::Action tests from ruma-events

This commit is contained in:
Jonas Platte 2020-05-04 22:59:32 +02:00
parent cf2747cc70
commit 97255eff60
No known key found for this signature in database
GPG Key ID: 7D261D771D915378
2 changed files with 75 additions and 0 deletions

View File

@ -11,6 +11,7 @@ repository = "https://github.com/ruma/ruma-client-api"
edition = "2018"
[dependencies]
matches = "0.1.8"
ruma-serde = "0.1.3"
serde = { version = "1.0.106", features = ["derive"] }
serde_json = { version = "1.0.52", features = ["raw_value"] }

View File

@ -117,3 +117,77 @@ impl Serialize for Action {
}
}
}
#[cfg(test)]
mod tests {
use matches::assert_matches;
use serde_json::{from_value as from_json_value, json, to_value as to_json_value};
use super::{Action, Tweak};
#[test]
fn serialize_string_action() {
assert_eq!(to_json_value(&Action::Notify).unwrap(), json!("notify"));
}
#[test]
fn serialize_tweak_sound_action() {
assert_eq!(
to_json_value(&Action::SetTweak(Tweak::Sound("default".into()))).unwrap(),
json!({ "set_tweak": "sound", "value": "default" })
);
}
#[test]
fn serialize_tweak_highlight_action() {
assert_eq!(
to_json_value(&Action::SetTweak(Tweak::Highlight(true))).unwrap(),
json!({ "set_tweak": "highlight" })
);
assert_eq!(
to_json_value(&Action::SetTweak(Tweak::Highlight(false))).unwrap(),
json!({ "set_tweak": "highlight", "value": false })
);
}
#[test]
fn deserialize_string_action() {
assert_matches!(
from_json_value::<Action>(json!("notify")).unwrap(),
Action::Notify
);
}
#[test]
fn deserialize_tweak_sound_action() {
let json_data = json!({
"set_tweak": "sound",
"value": "default"
});
assert_matches!(
&from_json_value::<Action>(json_data).unwrap(),
Action::SetTweak(Tweak::Sound(value)) if value == "default"
);
}
#[test]
fn deserialize_tweak_highlight_action() {
let json_data = json!({
"set_tweak": "highlight",
"value": true
});
assert_matches!(
from_json_value::<Action>(json_data).unwrap(),
Action::SetTweak(Tweak::Highlight(true))
);
}
#[test]
fn deserialize_tweak_highlight_action_with_default_value() {
assert_matches!(
from_json_value::<Action>(json!({ "set_tweak": "highlight" })).unwrap(),
Action::SetTweak(Tweak::Highlight(true))
);
}
}