Finished document skeleton.
This commit is contained in:
parent
a82cf51413
commit
744f2077f4
@ -34,6 +34,13 @@ impl Document {
|
|||||||
fn listen(&mut self) {
|
fn listen(&mut self) {
|
||||||
loop {
|
loop {
|
||||||
let msg = self.rx.recv().unwrap();
|
let msg = self.rx.recv().unwrap();
|
||||||
|
let mut reply = msg.reply(MsgType::Document);
|
||||||
|
reply.add_data(
|
||||||
|
"sess_id",
|
||||||
|
msg.get_data("sess_id").unwrap().to_uuid().unwrap(),
|
||||||
|
);
|
||||||
|
reply.add_data("doc", "Something goes hwew");
|
||||||
|
self.queue.send(reply).unwrap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -41,10 +48,33 @@ impl Document {
|
|||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod documents {
|
mod documents {
|
||||||
use super::*;
|
use super::*;
|
||||||
|
use std::time::Duration;
|
||||||
|
use uuid::Uuid;
|
||||||
|
|
||||||
|
const TIMEOUT: Duration = Duration::from_millis(500);
|
||||||
|
|
||||||
|
fn setup_document(listen_for: Vec<MsgType>) -> (Queue, Receiver<Message>) {
|
||||||
|
let queue = Queue::new();
|
||||||
|
let (tx, rx) = channel();
|
||||||
|
queue.add(tx, listen_for);
|
||||||
|
Document::start(queue.clone());
|
||||||
|
(queue, rx)
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn start_service() {
|
fn start_service() {
|
||||||
let queue = Queue::new();
|
let (queue, rx) = setup_document([MsgType::Document].to_vec());
|
||||||
Document::start(queue);
|
let id = Uuid::new_v4();
|
||||||
|
let mut msg = Message::new(MsgType::DocumentRequest);
|
||||||
|
msg.add_data("sess_id", id.clone());
|
||||||
|
queue.send(msg.clone()).unwrap();
|
||||||
|
let reply = rx.recv_timeout(TIMEOUT).unwrap();
|
||||||
|
assert_eq!(reply.get_id(), msg.get_id());
|
||||||
|
match reply.get_class() {
|
||||||
|
MsgType::Document => {}
|
||||||
|
_ => unreachable!("got {:?} should have gotten document", msg.get_class()),
|
||||||
|
}
|
||||||
|
assert_eq!(reply.get_data("sess_id").unwrap().to_uuid().unwrap(), id);
|
||||||
|
assert!(reply.get_data("doc").is_some());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,10 +8,10 @@ use uuid::Uuid;
|
|||||||
#[derive(Clone, Debug, Eq, Hash, PartialEq)]
|
#[derive(Clone, Debug, Eq, Hash, PartialEq)]
|
||||||
pub enum MsgType {
|
pub enum MsgType {
|
||||||
ClientRequest,
|
ClientRequest,
|
||||||
ClientDoc,
|
Document,
|
||||||
DocumentRequest,
|
DocumentRequest,
|
||||||
SessionValidate,
|
|
||||||
Session,
|
Session,
|
||||||
|
SessionValidate,
|
||||||
Time,
|
Time,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user