Made request pass session to message.
This commit is contained in:
32
src/queue.rs
32
src/queue.rs
@ -58,15 +58,20 @@ impl Message {
|
||||
}
|
||||
|
||||
impl From<Request> for Message {
|
||||
fn from(_value: Request) -> Self {
|
||||
let msg = Message::new(MsgType::ClientRequest);
|
||||
msg.reply(MsgType::ClientRequest)
|
||||
fn from(value: Request) -> Self {
|
||||
let mut msg = Message::new(MsgType::ClientRequest);
|
||||
match value.session {
|
||||
Some(id) => msg.add_data("sess_id", id),
|
||||
None => {}
|
||||
}
|
||||
msg
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod messages {
|
||||
use super::*;
|
||||
use crate::client::requests::{get_root_document, get_root_document_eith_session};
|
||||
|
||||
#[test]
|
||||
fn new_message() {
|
||||
@ -130,6 +135,27 @@ mod messages {
|
||||
let msg = Message::new(MsgType::Session);
|
||||
assert_eq!(msg.get_id(), msg.id);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn from_request_no_session() {
|
||||
let req = get_root_document();
|
||||
let msg: Message = req.into();
|
||||
assert!(
|
||||
msg.get_data("sess_id").is_none(),
|
||||
"should not have a session id"
|
||||
)
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn from_request_with_session() {
|
||||
let id = Uuid::new_v4();
|
||||
let req = get_root_document_eith_session(id.clone());
|
||||
let msg: Message = req.into();
|
||||
match msg.get_data("sess_id") {
|
||||
Some(result) => assert_eq!(result.to_uuid().unwrap(), id),
|
||||
None => unreachable!("should return an id"),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
|
Reference in New Issue
Block a user