2021-03-24 07:32:31 +00:00
|
|
|
use fcpv2::types::SSK;
|
|
|
|
use serde_derive::{Deserialize, Serialize};
|
2021-03-26 18:49:08 +00:00
|
|
|
use serde_json::Result;
|
2021-04-12 12:44:14 +00:00
|
|
|
use std::sync::atomic::AtomicU32;
|
2021-03-24 07:32:31 +00:00
|
|
|
|
2021-04-12 12:44:14 +00:00
|
|
|
use crate::db::types::Id;
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize, Debug, PartialEq)]
|
|
|
|
#[serde(rename_all = "camelCase")]
|
|
|
|
#[serde(tag = "type")]
|
2021-04-12 14:05:11 +00:00
|
|
|
pub enum Request {
|
2021-04-12 12:44:14 +00:00
|
|
|
StartApp,
|
|
|
|
StopApp,
|
|
|
|
LoadUsers,
|
|
|
|
#[serde(rename_all = "camelCase")]
|
|
|
|
SendMessage {
|
|
|
|
user_id: Id,
|
|
|
|
message: String,
|
|
|
|
},
|
|
|
|
#[serde(rename_all = "camelCase")]
|
|
|
|
LoadMessages {
|
|
|
|
user_id: Id,
|
|
|
|
count: u32,
|
|
|
|
start_index: u32,
|
|
|
|
},
|
|
|
|
#[serde(rename_all = "camelCase")]
|
|
|
|
AddUser {
|
|
|
|
name: String,
|
|
|
|
sign_key: String,
|
|
|
|
insert_key: String,
|
|
|
|
}, // CreateInstance TODO v0.3
|
|
|
|
}
|
2021-04-01 12:44:13 +00:00
|
|
|
|
2021-04-06 10:03:57 +00:00
|
|
|
#[test]
|
|
|
|
fn request_StoppApp_are_correct() {
|
2021-04-12 12:44:14 +00:00
|
|
|
let json = "{\"type\":\"stopApp\"}";
|
|
|
|
let parsed: Request = serde_json::from_str(json).unwrap();
|
|
|
|
assert_eq!(Request::StopApp, parsed);
|
2021-04-06 10:03:57 +00:00
|
|
|
}
|
|
|
|
#[test]
|
2021-04-12 12:44:14 +00:00
|
|
|
fn request_StartApp_are_correct() {
|
|
|
|
let json = "{\"type\":\"startApp\"}";
|
|
|
|
let parsed: Request = serde_json::from_str(json).unwrap();
|
|
|
|
assert_eq!(Request::StartApp, parsed);
|
|
|
|
}
|
2021-04-06 10:03:57 +00:00
|
|
|
#[test]
|
2021-04-12 12:44:14 +00:00
|
|
|
fn request_LoadUsers_are_correct() {
|
|
|
|
let json = "{\"type\":\"loadUsers\"}";
|
|
|
|
let parsed: Request = serde_json::from_str(json).unwrap();
|
|
|
|
assert_eq!(Request::LoadUsers, parsed);
|
|
|
|
}
|
2021-04-06 10:03:57 +00:00
|
|
|
#[test]
|
2021-04-12 12:44:14 +00:00
|
|
|
fn request_SendMessage_are_correct() {
|
|
|
|
let id = uuid::Uuid::new_v4();
|
|
|
|
let json = "{\"type\":\"sendMessage\",\"userId\":\"".to_owned()
|
|
|
|
+ &id.to_string()[..]
|
|
|
|
+ "\",\"message\":\"hey jon\"}";
|
|
|
|
let parsed: Request = serde_json::from_str(&json).unwrap();
|
|
|
|
assert_eq!(Request::SendMessage{user_id: Id(id), message: "hey jon".to_string()}, parsed);
|
|
|
|
}
|
2021-04-06 10:03:57 +00:00
|
|
|
#[test]
|
2021-04-12 12:44:14 +00:00
|
|
|
fn request_LoadMessages_are_correct() {
|
|
|
|
let id = uuid::Uuid::new_v4();
|
|
|
|
let json = "{\"type\":\"loadMessages\",\"userId\":\"".to_owned()
|
|
|
|
+ &id.to_string()[..]
|
|
|
|
+ "\",\"count\":10,\"startIndex\":343}";
|
|
|
|
let parsed: Request = serde_json::from_str(&json).unwrap();
|
|
|
|
assert_eq!(
|
|
|
|
parsed,
|
|
|
|
Request::LoadMessages {
|
|
|
|
user_id: Id(id),
|
|
|
|
count: 10,
|
|
|
|
start_index: 343
|
|
|
|
}
|
|
|
|
);
|
|
|
|
}
|
2021-04-06 10:03:57 +00:00
|
|
|
#[test]
|
2021-04-12 12:44:14 +00:00
|
|
|
fn request_AddUser_are_correct() {
|
|
|
|
let json = "{\"type\":\"addUser\",\"name\":\"john\",\"signKey\":\"USK@bxouok43eKpx3g4WmURjviGispWzYxeByiWRsmYOy5k,Y9j~lPDUoNlSTbZfDNaUajfePBrW~KM6uvHyOGWeA7Q,AQECAAE\",\"insertKey\":\"USK@bxouok43eKpx3g4WmURjviGispWzYxeByiWRsmYOy5k,Y9j~lPDUoNlSTbZfDNaUajfePBrW~KM6uvHyOGWeA7Q,AQECAAE\"}";
|
|
|
|
let parsed: Request = serde_json::from_str(json).unwrap();
|
|
|
|
assert_eq!(parsed, Request::AddUser{
|
|
|
|
name: "john".to_string(),
|
|
|
|
sign_key: "USK@bxouok43eKpx3g4WmURjviGispWzYxeByiWRsmYOy5k,Y9j~lPDUoNlSTbZfDNaUajfePBrW~KM6uvHyOGWeA7Q,AQECAAE".to_string(),
|
|
|
|
insert_key: "USK@bxouok43eKpx3g4WmURjviGispWzYxeByiWRsmYOy5k,Y9j~lPDUoNlSTbZfDNaUajfePBrW~KM6uvHyOGWeA7Q,AQECAAE".to_string(),
|
|
|
|
})
|
|
|
|
|
|
|
|
}
|