Browse Source

Write remaining control response serde tests.

wip
Titouan Rigoudy 4 years ago
parent
commit
316dd6d582
1 changed files with 197 additions and 10 deletions
  1. +197
    -10
      client/src/control/response.rs

+ 197
- 10
client/src/control/response.rs View File

@ -124,6 +124,12 @@ pub struct UserListResponse {
#[cfg(test)]
mod tests {
use std::collections::HashSet;
use solstice_proto::{User, UserStatus};
use crate::room::{Membership, Room, Visibility};
use super::{
LoginStatusResponse, Response, RoomJoinResponse, RoomLeaveResponse,
RoomListResponse, RoomMessageResponse, RoomUserJoinedResponse,
@ -183,14 +189,195 @@ mod tests {
);
}
// TODO: Write tests for the other variants:
//
// - RoomJoinResponse
// - RoomLeaveResponse
// - RoomListResponse
// - RoomMessageResponse
// - RoomUserJoinedResponse
// - RoomUserLeftResponse
// - UserInfoResponse
// - UserListResponse
#[test]
fn deserialize_room_join_response() {
assert_eq!(
serde_json::from_str::<RoomJoinResponse>(r#"{ "room_name": "bleep" }"#)
.unwrap(),
RoomJoinResponse {
room_name: "bleep".to_string(),
}
);
}
#[test]
fn deserialize_room_leave_response() {
assert_eq!(
serde_json::from_str::<RoomLeaveResponse>(r#"{ "room_name": "bleep" }"#)
.unwrap(),
RoomLeaveResponse {
room_name: "bleep".to_string(),
}
);
}
#[test]
fn deserialize_room_message_response() {
assert_eq!(
serde_json::from_str::<RoomMessageResponse>(
r#"{
"room_name": "bleep",
"user_name": "karandeep",
"message": "namaste"
}"#
)
.unwrap(),
RoomMessageResponse {
room_name: "bleep".to_string(),
user_name: "karandeep".to_string(),
message: "namaste".to_string(),
}
);
}
#[test]
fn deserialize_room_list_response() {
assert_eq!(
serde_json::from_str::<RoomListResponse>(
r#"{
"rooms": [
["bleep", {
"membership": "Joining",
"visibility": "PrivateOwned",
"operated": false,
"user_count": 3,
"owner": null,
"operators": [],
"members": [],
"messages": [],
"tickers": []
}]
]
}"#
)
.unwrap(),
RoomListResponse {
rooms: vec![(
"bleep".to_string(),
Room {
membership: Membership::Joining,
visibility: Visibility::PrivateOwned,
operated: false,
user_count: 3,
owner: None,
operators: HashSet::new(),
members: HashSet::new(),
messages: vec![],
tickers: vec![],
}
)],
}
);
}
#[test]
fn deserialize_room_user_joined_response() {
assert_eq!(
serde_json::from_str::<RoomUserJoinedResponse>(
r#"{
"room_name": "bleep",
"user_name": "karandeep"
}"#
)
.unwrap(),
RoomUserJoinedResponse {
room_name: "bleep".to_string(),
user_name: "karandeep".to_string(),
}
);
}
#[test]
fn deserialize_room_user_left_response() {
assert_eq!(
serde_json::from_str::<RoomUserLeftResponse>(
r#"{
"room_name": "bleep",
"user_name": "karandeep"
}"#
)
.unwrap(),
RoomUserLeftResponse {
room_name: "bleep".to_string(),
user_name: "karandeep".to_string(),
}
);
}
#[test]
fn deserialize_user_info_response() {
assert_eq!(
serde_json::from_str::<UserInfoResponse>(
r#"{
"user_name": "karandeep",
"user_info": {
"name": "karandeep",
"status": "Online",
"average_speed": 1,
"num_downloads": 2,
"unknown": 3,
"num_files": 4,
"num_folders": 5,
"num_free_slots": 6,
"country": "IN"
}
}"#
)
.unwrap(),
UserInfoResponse {
user_name: "karandeep".to_string(),
user_info: User {
name: "karandeep".to_string(),
status: UserStatus::Online,
average_speed: 1,
num_downloads: 2,
unknown: 3,
num_files: 4,
num_folders: 5,
num_free_slots: 6,
country: "IN".to_string(),
}
}
);
}
#[test]
fn deserialize_user_list_response() {
assert_eq!(
serde_json::from_str::<UserListResponse>(
r#"{
"user_list": [
["karandeep", {
"name": "karandeep",
"status": "Online",
"average_speed": 1,
"num_downloads": 2,
"unknown": 3,
"num_files": 4,
"num_folders": 5,
"num_free_slots": 6,
"country": "IN"
}]
]
}"#
)
.unwrap(),
UserListResponse {
user_list: vec![(
"karandeep".to_string(),
User {
name: "karandeep".to_string(),
status: UserStatus::Online,
average_speed: 1,
num_downloads: 2,
unknown: 3,
num_files: 4,
num_folders: 5,
num_free_slots: 6,
country: "IN".to_string(),
}
)],
}
);
}
}

Loading…
Cancel
Save