diff --git a/client/src/control/request.rs b/client/src/control/request.rs index 47b11b7..44e9f52 100644 --- a/client/src/control/request.rs +++ b/client/src/control/request.rs @@ -2,7 +2,9 @@ use serde::{Deserialize, Serialize}; /// This enumeration is the list of possible control requests made by the /// controller client to the client. -#[derive(Debug, RustcDecodable, RustcEncodable, Serialize, Deserialize)] +#[derive( + Debug, PartialEq, Eq, RustcDecodable, RustcEncodable, Serialize, Deserialize, +)] pub enum Request { /// The controller wants to join a room. Contains the room name. RoomJoinRequest(String), @@ -19,7 +21,9 @@ pub enum Request { } /// This structure contains the chat room message request from the controller. -#[derive(Debug, RustcDecodable, RustcEncodable, Deserialize, Serialize)] +#[derive( + Debug, PartialEq, Eq, RustcDecodable, RustcEncodable, Deserialize, Serialize, +)] pub struct RoomMessageRequest { /// The name of the chat room in which to send the message. pub room_name: String, @@ -32,56 +36,63 @@ mod tests { use super::{Request, RoomMessageRequest}; #[test] - fn serialize_room_join_request() { + fn deserialize_room_join_request() { assert_eq!( - serde_json::to_string(&Request::RoomJoinRequest("bleep".to_string())) + serde_json::from_str::(r#"{"RoomJoinRequest": "bleep"}"#) .unwrap(), - r#"{"RoomJoinRequest":"bleep"}"# + Request::RoomJoinRequest("bleep".to_string()) ); } #[test] - fn serialize_room_leave_request() { + fn deserialize_room_leave_request() { assert_eq!( - serde_json::to_string(&Request::RoomLeaveRequest("bleep".to_string())) + serde_json::from_str::(r#"{"RoomLeaveRequest": "bleep"}"#) .unwrap(), - r#"{"RoomLeaveRequest":"bleep"}"# + Request::RoomLeaveRequest("bleep".to_string()) ); } #[test] - fn serialize_login_status_request() { + fn deserialize_login_status_request() { assert_eq!( - serde_json::to_string(&Request::LoginStatusRequest).unwrap(), - r#""LoginStatusRequest""# + serde_json::from_str::(r#""LoginStatusRequest""#).unwrap(), + Request::LoginStatusRequest ); } #[test] - fn serialize_room_list_request() { + fn deserialize_room_list_request() { assert_eq!( - serde_json::to_string(&Request::RoomListRequest).unwrap(), - r#""RoomListRequest""# + serde_json::from_str::(r#""RoomListRequest""#).unwrap(), + Request::RoomListRequest ); } #[test] - fn serialize_user_list_request() { + fn deserialize_user_list_request() { assert_eq!( - serde_json::to_string(&Request::UserListRequest).unwrap(), - r#""UserListRequest""# + serde_json::from_str::(r#""UserListRequest""#).unwrap(), + Request::UserListRequest ); } #[test] - fn serialize_room_message_request() { + fn deserialize_room_message_request() { assert_eq!( - serde_json::to_string(&Request::RoomMessageRequest(RoomMessageRequest { + serde_json::from_str::( + r#"{ + "RoomMessageRequest": { + "room_name":"bleep", + "message":"heyo" + } + }"# + ) + .unwrap(), + Request::RoomMessageRequest(RoomMessageRequest { room_name: "bleep".to_string(), message: "heyo".to_string(), - })) - .unwrap(), - r#"{"RoomMessageRequest":{"room_name":"bleep","message":"heyo"}}"# + }) ); } }