Add more tests for Algorithm and EventType

This commit is contained in:
Donough Liu 2020-03-11 05:36:40 +08:00 committed by GitHub
parent 0ff395fe85
commit b03eb0261f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 106 additions and 71 deletions

View File

@ -61,3 +61,21 @@ impl From<Algorithm> for String {
algorithm.to_string() algorithm.to_string()
} }
} }
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn serialize_and_deserialize_from_display_form() {
serde_eq!(r#""m.megolm.v1.aes-sha2""#, Algorithm::MegolmV1AesSha2);
serde_eq!(
r#""m.olm.v1.curve25519-aes-sha2""#,
Algorithm::OlmV1Curve25519AesSha2
);
serde_eq!(
r#""io.ruma.test""#,
Algorithm::Custom("io.ruma.test".to_string())
);
}
}

View File

@ -266,3 +266,81 @@ impl From<EventType> for String {
event_type.to_string() event_type.to_string()
} }
} }
#[cfg(test)]
mod tests {
use super::*;
#[allow(clippy::cognitive_complexity)]
#[test]
fn serialize_and_deserialize_from_display_form() {
serde_eq!(r#""m.call.answer""#, EventType::CallAnswer);
serde_eq!(r#""m.call.candidates""#, EventType::CallCandidates);
serde_eq!(r#""m.call.hangup""#, EventType::CallHangup);
serde_eq!(r#""m.call.invite""#, EventType::CallInvite);
serde_eq!(r#""m.direct""#, EventType::Direct);
serde_eq!(r#""m.dummy""#, EventType::Dummy);
serde_eq!(r#""m.forwarded_room_key""#, EventType::ForwardedRoomKey);
serde_eq!(r#""m.fully_read""#, EventType::FullyRead);
serde_eq!(
r#""m.key.verification.accept""#,
EventType::KeyVerificationAccept
);
serde_eq!(
r#""m.key.verification.cancel""#,
EventType::KeyVerificationCancel
);
serde_eq!(r#""m.key.verification.key""#, EventType::KeyVerificationKey);
serde_eq!(r#""m.key.verification.mac""#, EventType::KeyVerificationMac);
serde_eq!(
r#""m.key.verification.request""#,
EventType::KeyVerificationRequest
);
serde_eq!(
r#""m.key.verification.start""#,
EventType::KeyVerificationStart
);
serde_eq!(r#""m.ignored_user_list""#, EventType::IgnoredUserList);
serde_eq!(r#""m.presence""#, EventType::Presence);
serde_eq!(r#""m.push_rules""#, EventType::PushRules);
serde_eq!(r#""m.receipt""#, EventType::Receipt);
serde_eq!(r#""m.room.aliases""#, EventType::RoomAliases);
serde_eq!(r#""m.room.avatar""#, EventType::RoomAvatar);
serde_eq!(r#""m.room.canonical_alias""#, EventType::RoomCanonicalAlias);
serde_eq!(r#""m.room.create""#, EventType::RoomCreate);
serde_eq!(r#""m.room.encrypted""#, EventType::RoomEncrypted);
serde_eq!(r#""m.room.encryption""#, EventType::RoomEncryption);
serde_eq!(r#""m.room.guest_access""#, EventType::RoomGuestAccess);
serde_eq!(
r#""m.room.history_visibility""#,
EventType::RoomHistoryVisibility
);
serde_eq!(r#""m.room.join_rules""#, EventType::RoomJoinRules);
serde_eq!(r#""m.room.member""#, EventType::RoomMember);
serde_eq!(r#""m.room.message""#, EventType::RoomMessage);
serde_eq!(
r#""m.room.message.feedback""#,
EventType::RoomMessageFeedback
);
serde_eq!(r#""m.room.name""#, EventType::RoomName);
serde_eq!(r#""m.room.pinned_events""#, EventType::RoomPinnedEvents);
serde_eq!(r#""m.room.power_levels""#, EventType::RoomPowerLevels);
serde_eq!(r#""m.room.redaction""#, EventType::RoomRedaction);
serde_eq!(r#""m.room.server_acl""#, EventType::RoomServerAcl);
serde_eq!(
r#""m.room.third_party_invite""#,
EventType::RoomThirdPartyInvite
);
serde_eq!(r#""m.room.tombstone""#, EventType::RoomTombstone);
serde_eq!(r#""m.room.topic""#, EventType::RoomTopic);
serde_eq!(r#""m.room_key""#, EventType::RoomKey);
serde_eq!(r#""m.room_key_request""#, EventType::RoomKeyRequest);
serde_eq!(r#""m.sticker""#, EventType::Sticker);
serde_eq!(r#""m.tag""#, EventType::Tag);
serde_eq!(r#""m.typing""#, EventType::Typing);
serde_eq!(
r#""io.ruma.test""#,
EventType::Custom("io.ruma.test".to_string())
);
}
}

View File

@ -473,74 +473,3 @@ mod custom_state {
} }
} }
} }
#[cfg(test)]
mod tests {
use serde_json::{from_str, to_string};
use super::{Algorithm, EventType};
#[test]
fn event_types_serialize_to_display_form() {
assert_eq!(
to_string(&EventType::RoomCreate).unwrap(),
r#""m.room.create""#
);
}
#[test]
fn custom_event_types_serialize_to_display_form() {
assert_eq!(
to_string(&EventType::Custom("io.ruma.test".to_string())).unwrap(),
r#""io.ruma.test""#
);
}
#[test]
fn event_types_deserialize_from_display_form() {
assert_eq!(
from_str::<EventType>(r#""m.room.create""#).unwrap(),
EventType::RoomCreate
);
}
#[test]
fn custom_event_types_deserialize_from_display_form() {
assert_eq!(
from_str::<EventType>(r#""io.ruma.test""#).unwrap(),
EventType::Custom("io.ruma.test".to_string())
)
}
#[test]
fn algorithms_serialize_to_display_form() {
assert_eq!(
to_string(&Algorithm::MegolmV1AesSha2).unwrap(),
r#""m.megolm.v1.aes-sha2""#
);
}
#[test]
fn custom_algorithms_serialize_to_display_form() {
assert_eq!(
to_string(&Algorithm::Custom("io.ruma.test".to_string())).unwrap(),
r#""io.ruma.test""#
);
}
#[test]
fn algorithms_deserialize_from_display_form() {
assert_eq!(
from_str::<Algorithm>(r#""m.megolm.v1.aes-sha2""#).unwrap(),
Algorithm::MegolmV1AesSha2
);
}
#[test]
fn custom_algorithms_deserialize_from_display_form() {
assert_eq!(
from_str::<Algorithm>(r#""io.ruma.test""#).unwrap(),
Algorithm::Custom("io.ruma.test".to_string())
)
}
}

View File

@ -107,3 +107,13 @@ macro_rules! impl_from_for_enum {
} }
}; };
} }
#[cfg(test)]
macro_rules! serde_eq {
($de:literal, $se:expr) => {
let mut val = $se;
assert_eq!($de, serde_json::to_string(&val).unwrap());
val = serde_json::from_str($de).unwrap();
assert_eq!(val, $se);
};
}