Browse Source

Move tests from room/map.rs to room/state.rs.

main
Titouan Rigoudy 2 years ago
parent
commit
eff56ac051
3 changed files with 111 additions and 108 deletions
  1. +1
    -1
      client/src/control/response.rs
  2. +4
    -107
      client/src/room/map.rs
  3. +106
    -0
      client/src/room/state.rs

+ 1
- 1
client/src/control/response.rs View File

@ -110,7 +110,7 @@ mod tests {
use solstice_proto::{User, UserStatus}; use solstice_proto::{User, UserStatus};
use crate::room::{ use crate::room::{
RoomMessage, RoomMessageHistory, RoomMembership, RoomState, RoomVisibility,
RoomMembership, RoomMessage, RoomMessageHistory, RoomState, RoomVisibility,
}; };
use super::{ use super::{


+ 4
- 107
client/src/room/map.rs View File

@ -273,122 +273,19 @@ impl RoomMap {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use std::time::{Duration, SystemTime};
use solstice_proto::server::RoomListResponse; use solstice_proto::server::RoomListResponse;
use crate::room::{
RoomMessage, RoomMessageHistory, RoomMembership, RoomState, RoomVisibility,
};
use super::RoomMap;
#[test]
fn deserialize_membership() {
assert_eq!(
serde_json::from_str::<RoomMembership>(r#""Member""#).unwrap(),
RoomMembership::Member
);
}
#[test]
fn deserialize_visibility() {
assert_eq!(
serde_json::from_str::<RoomVisibility>(r#""Public""#).unwrap(),
RoomVisibility::Public
);
}
use crate::room::{RoomState, RoomVisibility};
#[test]
fn deserialize_message() {
assert_eq!(
serde_json::from_str::<RoomMessage>(
r#"{
"received_at": { "secs_since_epoch": 42, "nanos_since_epoch": 1337 },
"user_name":"karandeep",
"message":"namaste"
}"#
)
.unwrap(),
RoomMessage {
received_at: SystemTime::UNIX_EPOCH
+ Duration::from_secs(42)
+ Duration::from_nanos(1337),
user_name: "karandeep".to_string(),
message: "namaste".to_string()
}
);
}
#[test]
fn deserialize_room() {
assert_eq!(
serde_json::from_str::<RoomState>(
r#"{
"membership": "Joining",
"visibility": "PrivateOwned",
"operated": false,
"user_count": 3,
"owner": null,
"operators": ["op1", "op2"],
"members": ["m1", "m2"],
"messages": [
{
"received_at": { "secs_since_epoch": 43, "nanos_since_epoch": 0 },
"user_name": "u2",
"message": "msg2"
},
{
"received_at": { "secs_since_epoch": 42, "nanos_since_epoch": 0 },
"user_name": "u1",
"message": "msg1"
}
],
"tickers": [["t11", "t12"], ["t21", "t22"]]
}"#
)
.unwrap(),
RoomState {
membership: RoomMembership::Joining,
visibility: RoomVisibility::PrivateOwned,
operated: false,
user_count: 3,
owner: None,
operators: ["op1".to_string(), "op2".to_string()]
.iter()
.cloned()
.collect(),
members: ["m1".to_string(), "m2".to_string()]
.iter()
.cloned()
.collect(),
messages: RoomMessageHistory::new(vec![
RoomMessage {
received_at: SystemTime::UNIX_EPOCH + Duration::from_secs(42),
user_name: "u1".to_string(),
message: "msg1".to_string(),
},
RoomMessage {
received_at: SystemTime::UNIX_EPOCH + Duration::from_secs(43),
user_name: "u2".to_string(),
message: "msg2".to_string(),
}
]),
tickers: vec![
("t11".to_string(), "t12".to_string()),
("t21".to_string(), "t22".to_string()),
],
}
);
}
use super::*;
#[test] #[test]
fn room_map_new_is_empty() {
fn new_is_empty() {
assert_eq!(RoomMap::new().get_room_list(), vec![]); assert_eq!(RoomMap::new().get_room_list(), vec![]);
} }
#[test] #[test]
fn room_map_get_strict() {
fn get_strict() {
let mut rooms = RoomMap::new(); let mut rooms = RoomMap::new();
rooms.set_room_list(RoomListResponse { rooms.set_room_list(RoomListResponse {
rooms: vec![("room a".to_string(), 42), ("room b".to_string(), 1337)], rooms: vec![("room a".to_string(), 42), ("room b".to_string(), 1337)],


+ 106
- 0
client/src/room/state.rs View File

@ -144,3 +144,109 @@ impl RoomState {
} }
} }
} }
#[cfg(test)]
mod tests {
use std::time::{Duration, SystemTime};
use super::*;
#[test]
fn deserialize_membership() {
assert_eq!(
serde_json::from_str::<RoomMembership>(r#""Member""#).unwrap(),
RoomMembership::Member
);
}
#[test]
fn deserialize_visibility() {
assert_eq!(
serde_json::from_str::<RoomVisibility>(r#""Public""#).unwrap(),
RoomVisibility::Public
);
}
#[test]
fn deserialize_message() {
assert_eq!(
serde_json::from_str::<RoomMessage>(
r#"{
"received_at": { "secs_since_epoch": 42, "nanos_since_epoch": 1337 },
"user_name":"karandeep",
"message":"namaste"
}"#
)
.unwrap(),
RoomMessage {
received_at: SystemTime::UNIX_EPOCH
+ Duration::from_secs(42)
+ Duration::from_nanos(1337),
user_name: "karandeep".to_string(),
message: "namaste".to_string()
}
);
}
#[test]
fn deserialize_room() {
assert_eq!(
serde_json::from_str::<RoomState>(
r#"{
"membership": "Joining",
"visibility": "PrivateOwned",
"operated": false,
"user_count": 3,
"owner": null,
"operators": ["op1", "op2"],
"members": ["m1", "m2"],
"messages": [
{
"received_at": { "secs_since_epoch": 43, "nanos_since_epoch": 0 },
"user_name": "u2",
"message": "msg2"
},
{
"received_at": { "secs_since_epoch": 42, "nanos_since_epoch": 0 },
"user_name": "u1",
"message": "msg1"
}
],
"tickers": [["t11", "t12"], ["t21", "t22"]]
}"#
)
.unwrap(),
RoomState {
membership: RoomMembership::Joining,
visibility: RoomVisibility::PrivateOwned,
operated: false,
user_count: 3,
owner: None,
operators: ["op1".to_string(), "op2".to_string()]
.iter()
.cloned()
.collect(),
members: ["m1".to_string(), "m2".to_string()]
.iter()
.cloned()
.collect(),
messages: RoomMessageHistory::new(vec![
RoomMessage {
received_at: SystemTime::UNIX_EPOCH + Duration::from_secs(42),
user_name: "u1".to_string(),
message: "msg1".to_string(),
},
RoomMessage {
received_at: SystemTime::UNIX_EPOCH + Duration::from_secs(43),
user_name: "u2".to_string(),
message: "msg2".to_string(),
}
]),
tickers: vec![
("t11".to_string(), "t12".to_string()),
("t21".to_string(), "t22".to_string()),
],
}
);
}
}

Loading…
Cancel
Save