Removed send once session test.
This commit is contained in:
@ -38,7 +38,10 @@ impl Session {
|
||||
|
||||
fn validate(&self, msg: Message) {
|
||||
let mut reply = msg.reply(MsgType::Session);
|
||||
reply.add_data("sess_id", Uuid::new_v4());
|
||||
match msg.get_data("sess_id") {
|
||||
Some(id) => reply.add_data("sess_id", id.clone()),
|
||||
None => reply.add_data("sess_id", Uuid::new_v4()),
|
||||
}
|
||||
self.queue.send(reply);
|
||||
}
|
||||
}
|
||||
@ -51,12 +54,18 @@ mod sessions {
|
||||
|
||||
static TIMEOUT: Duration = Duration::from_millis(500);
|
||||
|
||||
#[test]
|
||||
fn get_new_session() {
|
||||
fn setup_session(listen_for: Vec<MsgType>) -> (Queue, Receiver<Message>) {
|
||||
let queue = Queue::new();
|
||||
let (tx, rx) = channel();
|
||||
queue.add(tx, [MsgType::Session].to_vec());
|
||||
queue.add(tx, listen_for);
|
||||
Session::start(queue.clone());
|
||||
(queue, rx)
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn get_new_session() {
|
||||
let listen_for = [MsgType::Session];
|
||||
let (queue, rx) = setup_session(listen_for.to_vec());
|
||||
let msg = Message::new(MsgType::SessionValidate);
|
||||
queue.send(msg.clone());
|
||||
let result = rx.recv_timeout(TIMEOUT).unwrap();
|
||||
@ -72,10 +81,8 @@ mod sessions {
|
||||
|
||||
#[test]
|
||||
fn session_id_is_unique() {
|
||||
let queue = Queue::new();
|
||||
let (tx, rx) = channel();
|
||||
queue.add(tx, [MsgType::Session].to_vec());
|
||||
Session::start(queue.clone());
|
||||
let listen_for = [MsgType::Session];
|
||||
let (queue, rx) = setup_session(listen_for.to_vec());
|
||||
let msg = Message::new(MsgType::SessionValidate);
|
||||
let mut ids: Vec<Uuid> = Vec::new();
|
||||
for _ in 0..10 {
|
||||
@ -86,4 +93,19 @@ mod sessions {
|
||||
ids.push(id);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn existing_id_are_returned() {
|
||||
let listen_for = [MsgType::Session];
|
||||
let (queue, rx) = setup_session(listen_for.to_vec());
|
||||
let mut msg = Message::new(MsgType::SessionValidate);
|
||||
queue.send(msg.clone());
|
||||
let holder = rx.recv().unwrap();
|
||||
let id = holder.get_data("sess_id").unwrap().to_uuid().unwrap();
|
||||
msg.add_data("sess_id", id.clone());
|
||||
queue.send(msg);
|
||||
let result = rx.recv().unwrap();
|
||||
let output = result.get_data("sess_id").unwrap().to_uuid().unwrap();
|
||||
assert_eq!(output, id);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user