Setup document testing.

This commit is contained in:
Jeff Baskin 2025-08-02 09:55:13 -04:00
parent 96e6c48dbe
commit de009308c7

View File

@ -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);
} }
} }