Browse Source

Rework control request serde tests.

wip
Titouan Rigoudy 4 years ago
parent
commit
4274d5a1a4
1 changed files with 33 additions and 22 deletions
  1. +33
    -22
      client/src/control/request.rs

+ 33
- 22
client/src/control/request.rs View File

@ -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::<Request>(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::<Request>(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::<Request>(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::<Request>(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::<Request>(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::<Request>(
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"}}"#
})
);
}
}

Loading…
Cancel
Save