Setup document testing.
This commit is contained in:
parent
96e6c48dbe
commit
de009308c7
@ -122,7 +122,7 @@ mod msgactions {
|
|||||||
let value = DocDef::new();
|
let value = DocDef::new();
|
||||||
let result: MsgAction = value.into();
|
let result: MsgAction = value.into();
|
||||||
match result {
|
match result {
|
||||||
MsgAction::Create(_) => {},
|
MsgAction::Create(_) => {}
|
||||||
_ => unreachable!("Got {:?}: dhould have been create", result),
|
_ => unreachable!("Got {:?}: dhould have been create", result),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -155,7 +155,7 @@ mod msgactions {
|
|||||||
let value = Access::new();
|
let value = Access::new();
|
||||||
let result: MsgAction = value.into();
|
let result: MsgAction = value.into();
|
||||||
match result {
|
match result {
|
||||||
MsgAction::Query(_) => {},
|
MsgAction::Query(_) => {}
|
||||||
_ => unreachable!("Got {:?}: dhould have been query", result),
|
_ => unreachable!("Got {:?}: dhould have been query", result),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -165,7 +165,7 @@ mod msgactions {
|
|||||||
let value = Response::new();
|
let value = Response::new();
|
||||||
let result: MsgAction = value.into();
|
let result: MsgAction = value.into();
|
||||||
match result {
|
match result {
|
||||||
MsgAction::Reply(_) => {},
|
MsgAction::Reply(_) => {}
|
||||||
_ => unreachable!("Got {:?}: dhould have been reply", result),
|
_ => unreachable!("Got {:?}: dhould have been reply", result),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -981,11 +981,47 @@ impl Document {
|
|||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod documents {
|
mod documents {
|
||||||
use super::support_test::TIMEOUT;
|
use super::{support_test::TIMEOUT, *};
|
||||||
use super::*;
|
use std::sync::mpsc::RecvTimeoutError;
|
||||||
|
|
||||||
|
struct TestDoc {
|
||||||
|
queue: Queue,
|
||||||
|
rx: Receiver<Message>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl TestDoc {
|
||||||
|
fn new(name: &str, docdef: DocDef) -> Self {
|
||||||
|
let mut queue = Queue::new();
|
||||||
|
let msg = Message::new(name, docdef);
|
||||||
|
Document::start(queue.clone(), msg);
|
||||||
|
let (tx, rx) = channel();
|
||||||
|
let routes = [RouteRequest::new(Include::All, Include::All, Include::All)].to_vec();
|
||||||
|
queue.register(tx, name.to_string(), routes);
|
||||||
|
Self {
|
||||||
|
queue: queue,
|
||||||
|
rx: rx,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn send(&self, msg: Message) -> Result<(), MTTError> {
|
||||||
|
match self.queue.send(msg) {
|
||||||
|
// Removes the just sent message from the queue.
|
||||||
|
Ok(_) => self.rx.recv_timeout(TIMEOUT).unwrap(),
|
||||||
|
Err(err) => return Err(err),
|
||||||
|
};
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
|
fn recv(&self) -> Result<Message, RecvTimeoutError> {
|
||||||
|
self.rx.recv_timeout(TIMEOUT)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn has_data_fields() {
|
fn has_data_fields() {
|
||||||
|
let docdef = DocDef::new();
|
||||||
|
let name = "first";
|
||||||
|
let doc = TestDoc::new(name, docdef);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user