use opentalk_roomserver_types::signaling::module_error::ModuleError;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(tag = "error", rename_all = "snake_case")]
pub enum E2eeError {
InvalidParticipantTarget,
InvalidInvite,
}
impl ModuleError for E2eeError {}
#[cfg(test)]
mod tests {
use serde_json::json;
use super::*;
#[test]
fn invalid_participant_target() {
let sample_serialized = json!({ "error": "invalid_participant_target" });
let sample_err = E2eeError::InvalidParticipantTarget;
let json_value = serde_json::to_value(&sample_err).unwrap();
assert_eq!(json_value, sample_serialized);
let err: E2eeError = serde_json::from_value(sample_serialized).unwrap();
assert_eq!(err, E2eeError::InvalidParticipantTarget);
}
#[test]
fn serialize_invalid_invite() {
let sample_serialized = json!({ "error": "invalid_invite" });
let sample_err = E2eeError::InvalidInvite;
let json_value = serde_json::to_value(&sample_err).unwrap();
assert_eq!(json_value, sample_serialized);
let err: E2eeError = serde_json::from_value(sample_serialized).unwrap();
assert_eq!(err, E2eeError::InvalidInvite);
}
}