Finished name rebuild.
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 1s
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 1s
This commit is contained in:
parent
85477775c4
commit
0079aa42c5
@ -1674,13 +1674,18 @@ impl CreateDoc {
|
|||||||
|
|
||||||
fn start(mut queue: Queue) {
|
fn start(mut queue: Queue) {
|
||||||
let (tx, rx) = channel();
|
let (tx, rx) = channel();
|
||||||
let routes = [RouteRequest::new(
|
let routes = [Path::new(
|
||||||
Include::All,
|
Include::All,
|
||||||
Include::All,
|
Include::All,
|
||||||
Include::Some(Action::Create),
|
Include::Some(Action::Create),
|
||||||
)]
|
)]
|
||||||
.to_vec();
|
.to_vec();
|
||||||
//let id = queue.register(tx, "document".to_string(), routes).unwrap();
|
let id = queue.add_sender(tx);
|
||||||
|
for route in routes.iter() {
|
||||||
|
let regmsg = Register::new(id.clone(), RegMsg::AddRoute(route.clone()));
|
||||||
|
queue.send(Message::new(NameType::None, regmsg));
|
||||||
|
rx.recv().unwrap();
|
||||||
|
}
|
||||||
let doc = CreateDoc::new(queue, rx);
|
let doc = CreateDoc::new(queue, rx);
|
||||||
spawn(move || {
|
spawn(move || {
|
||||||
doc.listen();
|
doc.listen();
|
||||||
@ -3816,9 +3821,16 @@ impl DocumentFile {
|
|||||||
let name = docdef.get_document_name();
|
let name = docdef.get_document_name();
|
||||||
let id = queue.add_sender(tx);
|
let id = queue.add_sender(tx);
|
||||||
let reg_msg = Register::new(id, RegMsg::AddDocName(name.clone()));
|
let reg_msg = Register::new(id, RegMsg::AddDocName(name.clone()));
|
||||||
let msg = Message::new(NameType::None, reg_msg.clone());
|
let rmsg = msg.response(reg_msg.clone());
|
||||||
queue.send(msg.clone()).unwrap();
|
queue.send(rmsg.clone()).unwrap();
|
||||||
rx.recv().unwrap();
|
let name_result = rx.recv().unwrap();
|
||||||
|
match name_result.get_action() {
|
||||||
|
MsgAction::Register(data) => match data.get_msg() {
|
||||||
|
RegMsg::Error(err) => queue.send(msg.response(err.clone())).unwrap(),
|
||||||
|
_ => {}
|
||||||
|
},
|
||||||
|
_ => unreachable!("should return registration"),
|
||||||
|
}
|
||||||
let routes = [
|
let routes = [
|
||||||
Path::new(
|
Path::new(
|
||||||
Include::All,
|
Include::All,
|
||||||
@ -3848,7 +3860,7 @@ impl DocumentFile {
|
|||||||
];
|
];
|
||||||
for route in routes.iter() {
|
for route in routes.iter() {
|
||||||
let request = reg_msg.response(RegMsg::AddRoute(route.clone()));
|
let request = reg_msg.response(RegMsg::AddRoute(route.clone()));
|
||||||
let add_route = msg.response(request);
|
let add_route = rmsg.response(request);
|
||||||
queue.send(add_route).unwrap();
|
queue.send(add_route).unwrap();
|
||||||
rx.recv().unwrap();
|
rx.recv().unwrap();
|
||||||
}
|
}
|
||||||
@ -4257,6 +4269,7 @@ mod document_files {
|
|||||||
test_doc.get_receiver().recv_timeout(TIMEOUT).unwrap();
|
test_doc.get_receiver().recv_timeout(TIMEOUT).unwrap();
|
||||||
let msg_actions = [
|
let msg_actions = [
|
||||||
MsgAction::Addition(Addition::new()),
|
MsgAction::Addition(Addition::new()),
|
||||||
|
MsgAction::Create(DocDef::new(name.clone())),
|
||||||
MsgAction::Delete(Delete::new()),
|
MsgAction::Delete(Delete::new()),
|
||||||
MsgAction::Query(Query::new()),
|
MsgAction::Query(Query::new()),
|
||||||
MsgAction::Show,
|
MsgAction::Show,
|
||||||
@ -5263,34 +5276,38 @@ mod createdocs {
|
|||||||
use super::support_test::TIMEOUT;
|
use super::support_test::TIMEOUT;
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
fn setup_create_doc(routes: Vec<RouteRequest>) -> (Queue, Receiver<Message>) {
|
fn setup_create_doc() -> (Queue, Receiver<Message>) {
|
||||||
|
let routes = [
|
||||||
|
Path::new(Include::All, Include::All, Include::Some(Action::Reply)),
|
||||||
|
Path::new(Include::All, Include::All, Include::Some(Action::Records)),
|
||||||
|
Path::new(Include::All, Include::All, Include::Some(Action::Error)),
|
||||||
|
]
|
||||||
|
.to_vec();
|
||||||
let mut queue = Queue::new();
|
let mut queue = Queue::new();
|
||||||
let (tx, rx) = channel();
|
let (tx, rx) = channel();
|
||||||
/*
|
let id = queue.add_sender(tx);
|
||||||
queue
|
for route in routes.iter() {
|
||||||
.register(tx, Uuid::new_v4().to_string(), routes)
|
let regmsg = Register::new(id.clone(), RegMsg::AddRoute(route.clone()));
|
||||||
.unwrap();
|
queue.send(Message::new(NameType::None, regmsg));
|
||||||
*/
|
rx.recv_timeout(TIMEOUT).unwrap();
|
||||||
|
}
|
||||||
CreateDoc::start(queue.clone());
|
CreateDoc::start(queue.clone());
|
||||||
(queue, rx)
|
(queue, rx)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[ignore]
|
|
||||||
fn create_document_creation() {
|
fn create_document_creation() {
|
||||||
let name = Name::english("project");
|
let name = Name::english("project");
|
||||||
let routes = [RouteRequest::new(
|
let (queue, rx) = setup_create_doc();
|
||||||
Include::All,
|
let msg1 = Message::new(NameType::None, MsgAction::Create(DocDef::new(name.clone())));
|
||||||
Include::All,
|
|
||||||
Include::Some(Action::Reply),
|
|
||||||
)]
|
|
||||||
.to_vec();
|
|
||||||
let (queue, rx) = setup_create_doc(routes);
|
|
||||||
let msg1 = Message::new(name.clone(), MsgAction::Create(DocDef::new(name.clone())));
|
|
||||||
queue.send(msg1.clone()).unwrap();
|
queue.send(msg1.clone()).unwrap();
|
||||||
let result1 = rx.recv_timeout(TIMEOUT).unwrap();
|
let result1 = rx.recv_timeout(TIMEOUT).unwrap();
|
||||||
assert_eq!(result1.get_message_id(), msg1.get_message_id());
|
assert_eq!(
|
||||||
assert_eq!(result1.get_document_id(), msg1.get_document_id());
|
result1.get_message_id(),
|
||||||
|
msg1.get_message_id(),
|
||||||
|
"received {:?} from create message.",
|
||||||
|
rx
|
||||||
|
);
|
||||||
match result1.get_action() {
|
match result1.get_action() {
|
||||||
MsgAction::Reply(_) => {}
|
MsgAction::Reply(_) => {}
|
||||||
_ => unreachable!("got {:?}: should have been a reply.", result1.get_action()),
|
_ => unreachable!("got {:?}: should have been a reply.", result1.get_action()),
|
||||||
@ -5301,32 +5318,26 @@ mod createdocs {
|
|||||||
assert_eq!(result2.get_message_id(), msg2.get_message_id());
|
assert_eq!(result2.get_message_id(), msg2.get_message_id());
|
||||||
assert_eq!(result2.get_document_id(), msg2.get_document_id());
|
assert_eq!(result2.get_document_id(), msg2.get_document_id());
|
||||||
match result2.get_action() {
|
match result2.get_action() {
|
||||||
MsgAction::Reply(_) => {}
|
MsgAction::Records(data) => assert_eq!(data.len(), 0),
|
||||||
_ => unreachable!("got {:?}: should have been a reply.", result1.get_action()),
|
_ => unreachable!("got {:?}: should have been a reply.", result1.get_action()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[ignore]
|
|
||||||
fn does_duplicates_generate_error() {
|
fn does_duplicates_generate_error() {
|
||||||
let name = Name::english("duplicate");
|
let name = Name::english("duplicate");
|
||||||
let routes = [
|
let (queue, rx) = setup_create_doc();
|
||||||
RouteRequest::new(Include::All, Include::All, Include::Some(Action::Reply)),
|
let msg1 = Message::new(NameType::None, MsgAction::Create(DocDef::new(name.clone())));
|
||||||
RouteRequest::new(Include::All, Include::All, Include::Some(Action::Error)),
|
let msg2 = Message::new(NameType::None, MsgAction::Create(DocDef::new(name.clone())));
|
||||||
]
|
queue.send(msg1.clone()).unwrap();
|
||||||
.to_vec();
|
|
||||||
let (queue, rx) = setup_create_doc(routes);
|
|
||||||
let msg = Message::new(name.clone(), MsgAction::Create(DocDef::new(name.clone())));
|
|
||||||
queue.send(msg.clone()).unwrap();
|
|
||||||
rx.recv_timeout(TIMEOUT).unwrap();
|
rx.recv_timeout(TIMEOUT).unwrap();
|
||||||
queue.send(msg.clone()).unwrap();
|
queue.send(msg2.clone()).unwrap();
|
||||||
let result = rx.recv_timeout(TIMEOUT).unwrap();
|
let result = rx.recv_timeout(TIMEOUT).unwrap();
|
||||||
assert_eq!(result.get_message_id(), msg.get_message_id());
|
assert_eq!(result.get_message_id(), msg2.get_message_id());
|
||||||
assert_eq!(result.get_document_id(), msg.get_document_id());
|
|
||||||
match result.get_action() {
|
match result.get_action() {
|
||||||
MsgAction::Error(err) => match err {
|
MsgAction::Error(err) => match err {
|
||||||
MTTError::DocumentAlreadyExists(data) => assert_eq!(data, &name.to_string()),
|
MTTError::NameDuplicate(data) => assert_eq!(data, &name),
|
||||||
_ => unreachable!("got {:?}: should have been a reply.", err),
|
_ => unreachable!("got {:?}: should have been a duplicate name", err),
|
||||||
},
|
},
|
||||||
_ => unreachable!("got {:?}: should have been a reply.", result.get_action()),
|
_ => unreachable!("got {:?}: should have been a reply.", result.get_action()),
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user