Made name ids available to document file.
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
df4671761c
commit
4d54b07276
166
src/message.rs
166
src/message.rs
@ -201,7 +201,7 @@ mod msgactions {
|
|||||||
let value = DocDef::new(name.clone());
|
let value = DocDef::new(name.clone());
|
||||||
let result: MsgAction = value.into();
|
let result: MsgAction = value.into();
|
||||||
match result {
|
match result {
|
||||||
MsgAction::Create(def) => assert_eq!(def.get_document_name(), &name),
|
MsgAction::Create(def) => assert_eq!(def.get_document_names(), &[name].to_vec()),
|
||||||
_ => unreachable!("Got {:?}: dhould have been create", result),
|
_ => unreachable!("Got {:?}: dhould have been create", result),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -590,18 +590,22 @@ impl Names {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn add_name(&mut self, name: Name) -> Result<Uuid, MTTError> {
|
fn add_names(&mut self, names: Vec<Name>) -> Result<Uuid, MTTError> {
|
||||||
|
for name in names.iter() {
|
||||||
if self.names.contains_key(&name) {
|
if self.names.contains_key(&name) {
|
||||||
return Err(MTTError::NameDuplicate(name));
|
return Err(MTTError::NameDuplicate(name.clone()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
let mut id = Uuid::new_v4();
|
let mut id = Uuid::new_v4();
|
||||||
while self.ids.contains_key(&id) {
|
while self.ids.contains_key(&id) {
|
||||||
id = Uuid::new_v4();
|
id = Uuid::new_v4();
|
||||||
}
|
}
|
||||||
|
for name in names.iter() {
|
||||||
self.names.insert(name.clone(), id.clone());
|
self.names.insert(name.clone(), id.clone());
|
||||||
let mut holder: HashMap<Language, Name> = HashMap::new();
|
let mut holder: HashMap<Language, Name> = HashMap::new();
|
||||||
holder.insert(name.get_language().clone(), name);
|
holder.insert(name.get_language().clone(), name.clone());
|
||||||
self.ids.insert(id.clone(), holder);
|
self.ids.insert(id.clone(), holder);
|
||||||
|
}
|
||||||
Ok(id)
|
Ok(id)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -701,7 +705,7 @@ mod names {
|
|||||||
let mut ids: HashSet<Uuid> = HashSet::new();
|
let mut ids: HashSet<Uuid> = HashSet::new();
|
||||||
for item in data.iter() {
|
for item in data.iter() {
|
||||||
let name = Name::english(item.clone());
|
let name = Name::english(item.clone());
|
||||||
ids.insert(names.add_name(name).unwrap());
|
ids.insert(names.add_names([name].to_vec()).unwrap());
|
||||||
}
|
}
|
||||||
assert_eq!(ids.len(), data.len());
|
assert_eq!(ids.len(), data.len());
|
||||||
}
|
}
|
||||||
@ -713,7 +717,7 @@ mod names {
|
|||||||
let mut ids: HashMap<Name, Uuid> = HashMap::new();
|
let mut ids: HashMap<Name, Uuid> = HashMap::new();
|
||||||
for item in data.iter() {
|
for item in data.iter() {
|
||||||
let name = Name::english(item.clone());
|
let name = Name::english(item.clone());
|
||||||
ids.insert(name.clone(), names.add_name(name).unwrap());
|
ids.insert(name.clone(), names.add_names([name].to_vec()).unwrap());
|
||||||
}
|
}
|
||||||
for (name, id) in ids.iter() {
|
for (name, id) in ids.iter() {
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
@ -759,7 +763,7 @@ mod names {
|
|||||||
let mut names = Names::new();
|
let mut names = Names::new();
|
||||||
let name = Name::english("task");
|
let name = Name::english("task");
|
||||||
let lang = Language::from_639_1("ja").unwrap();
|
let lang = Language::from_639_1("ja").unwrap();
|
||||||
let id = names.add_name(name).unwrap();
|
let id = names.add_names([name].to_vec()).unwrap();
|
||||||
let result = names.get_name(&id, &lang);
|
let result = names.get_name(&id, &lang);
|
||||||
match result {
|
match result {
|
||||||
Ok(_) => unreachable!("got {:?}, should be invalid id error", result),
|
Ok(_) => unreachable!("got {:?}, should be invalid id error", result),
|
||||||
@ -775,8 +779,8 @@ mod names {
|
|||||||
let mut names = Names::new();
|
let mut names = Names::new();
|
||||||
let data = "test";
|
let data = "test";
|
||||||
let name = Name::english(data);
|
let name = Name::english(data);
|
||||||
let id = names.add_name(name.clone());
|
let id = names.add_names([name.clone()].to_vec());
|
||||||
let output = names.add_name(name.clone());
|
let output = names.add_names([name.clone()].to_vec());
|
||||||
match output {
|
match output {
|
||||||
Ok(_) => unreachable!(
|
Ok(_) => unreachable!(
|
||||||
"got {:?}, should have produced duplicate name error",
|
"got {:?}, should have produced duplicate name error",
|
||||||
@ -796,7 +800,7 @@ mod names {
|
|||||||
let alt = "テスト";
|
let alt = "テスト";
|
||||||
let english = Name::english(data);
|
let english = Name::english(data);
|
||||||
let japanese = Name::japanese(alt);
|
let japanese = Name::japanese(alt);
|
||||||
let id = names.add_name(english.clone()).unwrap();
|
let id = names.add_names([english.clone()].to_vec()).unwrap();
|
||||||
let result = names.add_translation(english, japanese.clone()).unwrap();
|
let result = names.add_translation(english, japanese.clone()).unwrap();
|
||||||
assert_eq!(result, id);
|
assert_eq!(result, id);
|
||||||
let output = names.get_name(&id, &Language::from_639_1("ja").unwrap());
|
let output = names.get_name(&id, &Language::from_639_1("ja").unwrap());
|
||||||
@ -828,8 +832,8 @@ mod names {
|
|||||||
let alt = "テスト";
|
let alt = "テスト";
|
||||||
let english = Name::english(data);
|
let english = Name::english(data);
|
||||||
let japanese = Name::japanese(alt);
|
let japanese = Name::japanese(alt);
|
||||||
let id = names.add_name(english.clone()).unwrap();
|
let id = names.add_names([english.clone()].to_vec()).unwrap();
|
||||||
let id = names.add_name(japanese.clone()).unwrap();
|
let id = names.add_names([japanese.clone()].to_vec()).unwrap();
|
||||||
let result = names.add_translation(english, japanese.clone());
|
let result = names.add_translation(english, japanese.clone());
|
||||||
match result {
|
match result {
|
||||||
Ok(_) => unreachable!(
|
Ok(_) => unreachable!(
|
||||||
@ -848,7 +852,7 @@ mod names {
|
|||||||
let mut names = Names::new();
|
let mut names = Names::new();
|
||||||
let data = "data";
|
let data = "data";
|
||||||
let english = Name::english(data);
|
let english = Name::english(data);
|
||||||
let id = names.add_name(english.clone()).unwrap();
|
let id = names.add_names([english.clone()].to_vec()).unwrap();
|
||||||
let msg_id = Uuid::new_v4();
|
let msg_id = Uuid::new_v4();
|
||||||
let action = Action::Query;
|
let action = Action::Query;
|
||||||
let path = Path::new(
|
let path = Path::new(
|
||||||
@ -867,7 +871,7 @@ mod names {
|
|||||||
let mut names = Names::new();
|
let mut names = Names::new();
|
||||||
let data = "data";
|
let data = "data";
|
||||||
let english = Name::english(data);
|
let english = Name::english(data);
|
||||||
let id = names.add_name(english.clone()).unwrap();
|
let id = names.add_names([english.clone()].to_vec()).unwrap();
|
||||||
let msg_id = Uuid::new_v4();
|
let msg_id = Uuid::new_v4();
|
||||||
let action = Action::Error;
|
let action = Action::Error;
|
||||||
let path = Path::new(
|
let path = Path::new(
|
||||||
@ -960,7 +964,8 @@ mod names {
|
|||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug)]
|
||||||
enum RegMsg {
|
enum RegMsg {
|
||||||
AddRoute(Path),
|
AddRoute(Path),
|
||||||
AddDocName(Name),
|
AddDocName(Vec<Name>),
|
||||||
|
DocumentNameID(Uuid),
|
||||||
Error(MTTError),
|
Error(MTTError),
|
||||||
Ok,
|
Ok,
|
||||||
}
|
}
|
||||||
@ -1205,8 +1210,8 @@ impl DocRegistry {
|
|||||||
|
|
||||||
fn register_action(&mut self, reg: &Register) -> Register {
|
fn register_action(&mut self, reg: &Register) -> Register {
|
||||||
match reg.get_msg() {
|
match reg.get_msg() {
|
||||||
RegMsg::AddDocName(name) => match self.doc_names.add_name(name.clone()) {
|
RegMsg::AddDocName(names) => match self.doc_names.add_names(names.clone()) {
|
||||||
Ok(_) => reg.response(RegMsg::Ok),
|
Ok(id) => reg.response(RegMsg::DocumentNameID(id.clone())),
|
||||||
Err(err) => reg.response(RegMsg::Error(err)),
|
Err(err) => reg.response(RegMsg::Error(err)),
|
||||||
},
|
},
|
||||||
RegMsg::AddRoute(path) => {
|
RegMsg::AddRoute(path) => {
|
||||||
@ -1388,7 +1393,7 @@ mod queues {
|
|||||||
fn add_document(&mut self, name: Name) {
|
fn add_document(&mut self, name: Name) {
|
||||||
let (tx, rx) = channel();
|
let (tx, rx) = channel();
|
||||||
let id = self.queue.add_sender(tx);
|
let id = self.queue.add_sender(tx);
|
||||||
let reg_msg = Register::new(id.clone(), RegMsg::AddDocName(name.clone()));
|
let reg_msg = Register::new(id.clone(), RegMsg::AddDocName([name.clone()].to_vec()));
|
||||||
let msg = Message::new(NameType::None, reg_msg);
|
let msg = Message::new(NameType::None, reg_msg);
|
||||||
self.queue.send(msg.clone()).unwrap();
|
self.queue.send(msg.clone()).unwrap();
|
||||||
let result = rx.recv_timeout(TIMEOUT).unwrap();
|
let result = rx.recv_timeout(TIMEOUT).unwrap();
|
||||||
@ -1456,13 +1461,21 @@ mod queues {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn can_register_document_name() {
|
fn document_names_have_unique_id() {
|
||||||
let mut tester = TestQueue::new();
|
let mut tester = TestQueue::new();
|
||||||
let mut queue = tester.get_queue();
|
let mut queue = tester.get_queue();
|
||||||
let doc_name = Name::english(Uuid::new_v4().to_string().as_str());
|
let names = [
|
||||||
|
Name::english("one"),
|
||||||
|
Name::english("two"),
|
||||||
|
Name::english("three"),
|
||||||
|
Name::english("four"),
|
||||||
|
Name::english("five"),
|
||||||
|
];
|
||||||
|
let mut ids: Vec<Uuid> = Vec::new();
|
||||||
|
for name in names.iter() {
|
||||||
let reg_msg = Register::new(
|
let reg_msg = Register::new(
|
||||||
tester.get_preset_id().clone(),
|
tester.get_preset_id().clone(),
|
||||||
RegMsg::AddDocName(doc_name.clone()),
|
RegMsg::AddDocName([name.clone()].to_vec()),
|
||||||
);
|
);
|
||||||
let msg = Message::new(NameType::None, reg_msg);
|
let msg = Message::new(NameType::None, reg_msg);
|
||||||
queue.send(msg.clone()).unwrap();
|
queue.send(msg.clone()).unwrap();
|
||||||
@ -1471,12 +1484,27 @@ mod queues {
|
|||||||
let action = result.get_action();
|
let action = result.get_action();
|
||||||
match action {
|
match action {
|
||||||
MsgAction::Register(data) => match data.get_msg() {
|
MsgAction::Register(data) => match data.get_msg() {
|
||||||
RegMsg::Ok => {}
|
RegMsg::DocumentNameID(data) => {
|
||||||
|
assert!(!ids.contains(data), "{} already in {:?}", data, ids);
|
||||||
|
ids.push(data.clone());
|
||||||
|
}
|
||||||
_ => unreachable!("got {:?}, should have been register ok", action),
|
_ => unreachable!("got {:?}, should have been register ok", action),
|
||||||
},
|
},
|
||||||
_ => unreachable!("got {:?}, should have been register ok", action),
|
_ => unreachable!("got {:?}, should have been register ok", action),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn can_register_multiple_names_at_once() {
|
||||||
|
let mut tester = TestQueue::new();
|
||||||
|
let mut queue = tester.get_queue();
|
||||||
|
let names = [Name::english("one"), Name::japanese("一")].to_vec();
|
||||||
|
let reg_msg = Register::new(
|
||||||
|
tester.get_preset_id().clone(),
|
||||||
|
RegMsg::AddDocName(names.clone()),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn errors_on_duplicate_names() {
|
fn errors_on_duplicate_names() {
|
||||||
@ -1486,7 +1514,7 @@ mod queues {
|
|||||||
let doc_name = Name::english(Uuid::new_v4().to_string().as_str());
|
let doc_name = Name::english(Uuid::new_v4().to_string().as_str());
|
||||||
let reg_msg = Register::new(
|
let reg_msg = Register::new(
|
||||||
tester.get_preset_id().clone(),
|
tester.get_preset_id().clone(),
|
||||||
RegMsg::AddDocName(doc_name.clone()),
|
RegMsg::AddDocName([doc_name.clone()].to_vec()),
|
||||||
);
|
);
|
||||||
let msg = Message::new(NameType::None, reg_msg.clone());
|
let msg = Message::new(NameType::None, reg_msg.clone());
|
||||||
queue.send(msg.clone()).unwrap();
|
queue.send(msg.clone()).unwrap();
|
||||||
@ -2475,9 +2503,19 @@ impl IndexType {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Clone, Debug)]
|
||||||
|
struct Triggers {
|
||||||
|
/*
|
||||||
|
* HashMap<DocumentName, HashMap<ActionType, MsgAction>>
|
||||||
|
* document name
|
||||||
|
* action type
|
||||||
|
* response action
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug)]
|
||||||
struct DocDef {
|
struct DocDef {
|
||||||
doc_name: Name,
|
doc_names: Vec<Name>,
|
||||||
field_names: Names,
|
field_names: Names,
|
||||||
fields: HashMap<Uuid, FieldSetting>,
|
fields: HashMap<Uuid, FieldSetting>,
|
||||||
indexes: HashMap<Uuid, IndexType>,
|
indexes: HashMap<Uuid, IndexType>,
|
||||||
@ -2486,15 +2524,19 @@ struct DocDef {
|
|||||||
impl DocDef {
|
impl DocDef {
|
||||||
fn new(name: Name) -> Self {
|
fn new(name: Name) -> Self {
|
||||||
Self {
|
Self {
|
||||||
doc_name: name,
|
doc_names: [name].to_vec(),
|
||||||
field_names: Names::new(),
|
field_names: Names::new(),
|
||||||
fields: HashMap::new(),
|
fields: HashMap::new(),
|
||||||
indexes: HashMap::new(),
|
indexes: HashMap::new(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_document_name(&self) -> &Name {
|
fn with_names(names: Name) -> Self {
|
||||||
&self.doc_name
|
todo!("with an existing list of names");
|
||||||
|
}
|
||||||
|
|
||||||
|
fn get_document_names(&self) -> &Vec<Name> {
|
||||||
|
&self.doc_names
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_field_names(&self) -> &Names {
|
fn get_field_names(&self) -> &Names {
|
||||||
@ -2506,7 +2548,7 @@ impl DocDef {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn add_field(&mut self, name: Name, ftype: FieldType) {
|
fn add_field(&mut self, name: Name, ftype: FieldType) {
|
||||||
let id = self.field_names.add_name(name).unwrap();
|
let id = self.field_names.add_names([name].to_vec()).unwrap();
|
||||||
self.fields.insert(id, FieldSetting::new(ftype));
|
self.fields.insert(id, FieldSetting::new(ftype));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3546,7 +3588,7 @@ mod records {
|
|||||||
let mut name_ids: HashMap<Name, Uuid> = HashMap::new();
|
let mut name_ids: HashMap<Name, Uuid> = HashMap::new();
|
||||||
for id in ids.iter() {
|
for id in ids.iter() {
|
||||||
let name = Name::english(id.clone().to_string().as_str());
|
let name = Name::english(id.clone().to_string().as_str());
|
||||||
let field_id = names.add_name(name.clone()).unwrap();
|
let field_id = names.add_names([name.clone()].to_vec()).unwrap();
|
||||||
name_ids.insert(name, field_id);
|
name_ids.insert(name, field_id);
|
||||||
}
|
}
|
||||||
let mut rec = Record::new(names);
|
let mut rec = Record::new(names);
|
||||||
@ -3606,7 +3648,7 @@ mod records {
|
|||||||
fn does_get_error_on_missing_data() {
|
fn does_get_error_on_missing_data() {
|
||||||
let mut names = Names::new();
|
let mut names = Names::new();
|
||||||
let name = Name::english("empty");
|
let name = Name::english("empty");
|
||||||
names.add_name(name.clone()).unwrap();
|
names.add_names([name.clone()].to_vec()).unwrap();
|
||||||
let mut rec = Record::new(names);
|
let mut rec = Record::new(names);
|
||||||
match rec.get(&name) {
|
match rec.get(&name) {
|
||||||
Ok(_) => unreachable!("should return not found error"),
|
Ok(_) => unreachable!("should return not found error"),
|
||||||
@ -3621,7 +3663,7 @@ mod records {
|
|||||||
fn can_records_hold_multiple_entries() {
|
fn can_records_hold_multiple_entries() {
|
||||||
let field_name = Name::english("field");
|
let field_name = Name::english("field");
|
||||||
let mut names = Names::new();
|
let mut names = Names::new();
|
||||||
names.add_name(field_name.clone());
|
names.add_names([field_name.clone()].to_vec());
|
||||||
let count: isize = 5;
|
let count: isize = 5;
|
||||||
let mut recs = RecordIter::new();
|
let mut recs = RecordIter::new();
|
||||||
assert_eq!(recs.len(), 0, "should contain no records");
|
assert_eq!(recs.len(), 0, "should contain no records");
|
||||||
@ -3648,7 +3690,7 @@ mod records {
|
|||||||
for i in 0..count {
|
for i in 0..count {
|
||||||
let name = Name::english(i.to_string().as_str());
|
let name = Name::english(i.to_string().as_str());
|
||||||
let mut names = Names::new();
|
let mut names = Names::new();
|
||||||
names.add_name(name);
|
names.add_names([name].to_vec());
|
||||||
recs.push(Record::new(names));
|
recs.push(Record::new(names));
|
||||||
}
|
}
|
||||||
let mut rec_iter = RecordIter::new();
|
let mut rec_iter = RecordIter::new();
|
||||||
@ -3667,8 +3709,8 @@ mod records {
|
|||||||
let mut names = Names::new();
|
let mut names = Names::new();
|
||||||
let name1 = Name::english("first");
|
let name1 = Name::english("first");
|
||||||
let name2 = Name::english("second");
|
let name2 = Name::english("second");
|
||||||
names.add_name(name1.clone()).unwrap();
|
names.add_names([name1.clone()].to_vec()).unwrap();
|
||||||
names.add_name(name2.clone()).unwrap();
|
names.add_names([name2.clone()].to_vec()).unwrap();
|
||||||
let mut rec1 = Record::new(names.clone());
|
let mut rec1 = Record::new(names.clone());
|
||||||
rec1.insert(&name1, 1);
|
rec1.insert(&name1, 1);
|
||||||
rec1.insert(&name2, 2);
|
rec1.insert(&name2, 2);
|
||||||
@ -4207,46 +4249,48 @@ impl DocumentFile {
|
|||||||
MsgAction::Create(data) => data.clone(),
|
MsgAction::Create(data) => data.clone(),
|
||||||
_ => unreachable!("got {:?}: should have been a create message", action),
|
_ => unreachable!("got {:?}: should have been a create message", action),
|
||||||
};
|
};
|
||||||
let name = docdef.get_document_name();
|
let names = docdef.get_document_names();
|
||||||
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(names.clone()));
|
||||||
let rmsg = msg.response(reg_msg.clone());
|
let rmsg = msg.response(reg_msg.clone());
|
||||||
queue.send(rmsg.clone()).unwrap();
|
queue.send(rmsg.clone()).unwrap();
|
||||||
let name_result = rx.recv().unwrap();
|
let name_result = rx.recv().unwrap();
|
||||||
match name_result.get_action() {
|
let name_id = match name_result.get_action() {
|
||||||
MsgAction::Register(data) => match data.get_msg() {
|
MsgAction::Register(data) => match data.get_msg() {
|
||||||
|
RegMsg::DocumentNameID(data) => data,
|
||||||
RegMsg::Error(err) => {
|
RegMsg::Error(err) => {
|
||||||
queue.remove_sender(&id);
|
queue.remove_sender(&id);
|
||||||
queue.send(msg.response(err.clone())).unwrap();
|
queue.send(msg.response(err.clone())).unwrap();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
_ => {}
|
_ => unreachable!("should only return a name id or an error"),
|
||||||
},
|
},
|
||||||
_ => unreachable!("should return registration"),
|
_ => unreachable!("should only return a name id or an error"),
|
||||||
}
|
};
|
||||||
let routes = [
|
let routes = [
|
||||||
Path::new(
|
Path::new(
|
||||||
Include::All,
|
Include::All,
|
||||||
Include::Some(name.into()),
|
Include::Some(name_id.into()),
|
||||||
Include::Some(Action::Addition),
|
Include::Some(Action::Addition),
|
||||||
),
|
),
|
||||||
Path::new(
|
Path::new(
|
||||||
Include::All,
|
Include::All,
|
||||||
Include::Some(name.into()),
|
Include::Some(name_id.into()),
|
||||||
Include::Some(Action::Delete),
|
Include::Some(Action::Delete),
|
||||||
),
|
),
|
||||||
Path::new(
|
Path::new(
|
||||||
Include::All,
|
Include::All,
|
||||||
Include::Some(name.into()),
|
Include::Some(name_id.into()),
|
||||||
Include::Some(Action::Query),
|
Include::Some(Action::Query),
|
||||||
),
|
),
|
||||||
Path::new(
|
Path::new(
|
||||||
Include::All,
|
Include::All,
|
||||||
Include::Some(name.into()),
|
Include::Some(name_id.into()),
|
||||||
Include::Some(Action::Show),
|
Include::Some(Action::Show),
|
||||||
),
|
),
|
||||||
Path::new(
|
Path::new(
|
||||||
Include::All,
|
Include::All,
|
||||||
Include::Some(name.into()),
|
Include::Some(name_id.into()),
|
||||||
Include::Some(Action::Update),
|
Include::Some(Action::Update),
|
||||||
),
|
),
|
||||||
];
|
];
|
||||||
@ -4556,12 +4600,15 @@ mod document_files {
|
|||||||
where
|
where
|
||||||
A: Into<MsgAction>,
|
A: Into<MsgAction>,
|
||||||
{
|
{
|
||||||
let msg = Message::new(self.docdef.get_document_name().clone(), action);
|
let msg = Message::new(self.docdef.get_document_names()[0].clone(), action);
|
||||||
self.queue.send(msg)
|
self.queue.send(msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn start(&mut self) {
|
fn start(&mut self) {
|
||||||
let msg = Message::new(self.docdef.get_document_name().clone(), self.docdef.clone());
|
let msg = Message::new(
|
||||||
|
self.docdef.get_document_names()[0].clone(),
|
||||||
|
self.docdef.clone(),
|
||||||
|
);
|
||||||
DocumentFile::start(self.queue.clone(), msg);
|
DocumentFile::start(self.queue.clone(), msg);
|
||||||
for route in self.routes.iter() {
|
for route in self.routes.iter() {
|
||||||
let request =
|
let request =
|
||||||
@ -4672,7 +4719,10 @@ mod document_files {
|
|||||||
let mut test_doc: TestDocument = docdef.into();
|
let mut test_doc: TestDocument = docdef.into();
|
||||||
test_doc.start();
|
test_doc.start();
|
||||||
let queue = test_doc.get_queue();
|
let queue = test_doc.get_queue();
|
||||||
let reg_msg = Register::new(test_doc.get_sender_id(), RegMsg::AddDocName(alt.clone()));
|
let reg_msg = Register::new(
|
||||||
|
test_doc.get_sender_id(),
|
||||||
|
RegMsg::AddDocName([alt.clone()].to_vec()),
|
||||||
|
);
|
||||||
let setup = Message::new(NameType::None, reg_msg.clone());
|
let setup = Message::new(NameType::None, reg_msg.clone());
|
||||||
queue.send(setup).unwrap();
|
queue.send(setup).unwrap();
|
||||||
test_doc.get_receiver().recv_timeout(TIMEOUT).unwrap();
|
test_doc.get_receiver().recv_timeout(TIMEOUT).unwrap();
|
||||||
@ -4798,7 +4848,7 @@ mod document_files {
|
|||||||
addition.add_field(name.clone(), "doesn't matter");
|
addition.add_field(name.clone(), "doesn't matter");
|
||||||
queue
|
queue
|
||||||
.send(Message::new(
|
.send(Message::new(
|
||||||
test_doc.get_docdef().get_document_name(),
|
test_doc.get_docdef().get_document_names()[0].clone(),
|
||||||
addition,
|
addition,
|
||||||
))
|
))
|
||||||
.unwrap();
|
.unwrap();
|
||||||
@ -4820,7 +4870,7 @@ mod document_files {
|
|||||||
let mut addition = Addition::new();
|
let mut addition = Addition::new();
|
||||||
addition.add_field(Name::english("field0"), "string");
|
addition.add_field(Name::english("field0"), "string");
|
||||||
queue.send(Message::new(
|
queue.send(Message::new(
|
||||||
test_doc.get_docdef().get_document_name(),
|
test_doc.get_docdef().get_document_names()[0].clone(),
|
||||||
addition,
|
addition,
|
||||||
));
|
));
|
||||||
let result = test_doc.get_receiver().recv_timeout(TIMEOUT).unwrap();
|
let result = test_doc.get_receiver().recv_timeout(TIMEOUT).unwrap();
|
||||||
@ -4847,7 +4897,7 @@ mod document_files {
|
|||||||
let mut addition = Addition::new();
|
let mut addition = Addition::new();
|
||||||
addition.add_field(Name::english("field0"), 1);
|
addition.add_field(Name::english("field0"), 1);
|
||||||
queue.send(Message::new(
|
queue.send(Message::new(
|
||||||
test_doc.get_docdef().get_document_name(),
|
test_doc.get_docdef().get_document_names()[0].clone(),
|
||||||
addition,
|
addition,
|
||||||
));
|
));
|
||||||
let result = test_doc.get_receiver().recv_timeout(TIMEOUT).unwrap();
|
let result = test_doc.get_receiver().recv_timeout(TIMEOUT).unwrap();
|
||||||
@ -4877,7 +4927,7 @@ mod document_files {
|
|||||||
let mut query = Query::new();
|
let mut query = Query::new();
|
||||||
query.add(Name::english("field0"), calc);
|
query.add(Name::english("field0"), calc);
|
||||||
queue.send(Message::new(
|
queue.send(Message::new(
|
||||||
test_doc.get_docdef().get_document_name(),
|
test_doc.get_docdef().get_document_names()[0].clone(),
|
||||||
query,
|
query,
|
||||||
));
|
));
|
||||||
let result = test_doc.get_receiver().recv_timeout(TIMEOUT).unwrap();
|
let result = test_doc.get_receiver().recv_timeout(TIMEOUT).unwrap();
|
||||||
@ -4917,7 +4967,7 @@ mod document_files {
|
|||||||
let mut query = Query::new();
|
let mut query = Query::new();
|
||||||
query.add(Name::english("field0"), calc);
|
query.add(Name::english("field0"), calc);
|
||||||
queue.send(Message::new(
|
queue.send(Message::new(
|
||||||
test_doc.get_docdef().get_document_name(),
|
test_doc.get_docdef().get_document_names()[0].clone(),
|
||||||
query,
|
query,
|
||||||
));
|
));
|
||||||
let result = test_doc.get_receiver().recv_timeout(TIMEOUT).unwrap();
|
let result = test_doc.get_receiver().recv_timeout(TIMEOUT).unwrap();
|
||||||
@ -5068,7 +5118,7 @@ mod document_files {
|
|||||||
fn errors_on_bad_field_name() {
|
fn errors_on_bad_field_name() {
|
||||||
let mut doc = TestDocument::new(Vec::new());
|
let mut doc = TestDocument::new(Vec::new());
|
||||||
doc.start();
|
doc.start();
|
||||||
let doc_name = doc.get_docdef().get_document_name().clone();
|
let doc_name = doc.get_docdef().get_document_names()[0].clone();
|
||||||
let queue = doc.get_queue();
|
let queue = doc.get_queue();
|
||||||
let rx = doc.get_receiver();
|
let rx = doc.get_receiver();
|
||||||
let field_name = Name::english("wrong");
|
let field_name = Name::english("wrong");
|
||||||
@ -5255,7 +5305,7 @@ mod document_files {
|
|||||||
fn changes_information_requested() {
|
fn changes_information_requested() {
|
||||||
let mut doc = TestDocument::new([FieldType::Uuid, FieldType::StaticString].to_vec());
|
let mut doc = TestDocument::new([FieldType::Uuid, FieldType::StaticString].to_vec());
|
||||||
doc.start();
|
doc.start();
|
||||||
let doc_name = doc.get_docdef().get_document_name().clone();
|
let doc_name = doc.get_docdef().get_document_names()[0].clone();
|
||||||
let old = "old";
|
let old = "old";
|
||||||
let new = "new";
|
let new = "new";
|
||||||
let id = Uuid::new_v4();
|
let id = Uuid::new_v4();
|
||||||
@ -5294,7 +5344,7 @@ mod document_files {
|
|||||||
fn changes_only_the_queried() {
|
fn changes_only_the_queried() {
|
||||||
let mut doc = TestDocument::new([FieldType::Integer, FieldType::StaticString].to_vec());
|
let mut doc = TestDocument::new([FieldType::Integer, FieldType::StaticString].to_vec());
|
||||||
doc.start();
|
doc.start();
|
||||||
let doc_name = doc.get_docdef().get_document_name().clone();
|
let doc_name = doc.get_docdef().get_document_names()[0].clone();
|
||||||
let old = "old";
|
let old = "old";
|
||||||
let new = "new";
|
let new = "new";
|
||||||
let count = 5;
|
let count = 5;
|
||||||
@ -5352,7 +5402,7 @@ mod document_files {
|
|||||||
fn can_handle_multiple_updates() {
|
fn can_handle_multiple_updates() {
|
||||||
let mut doc = TestDocument::new([FieldType::Integer, FieldType::StaticString].to_vec());
|
let mut doc = TestDocument::new([FieldType::Integer, FieldType::StaticString].to_vec());
|
||||||
doc.start();
|
doc.start();
|
||||||
let doc_name = doc.get_docdef().get_document_name().clone();
|
let doc_name = doc.get_docdef().get_document_names()[0].clone();
|
||||||
let old = "old";
|
let old = "old";
|
||||||
let new = "new";
|
let new = "new";
|
||||||
let count = 5;
|
let count = 5;
|
||||||
@ -5845,7 +5895,7 @@ impl Clock {
|
|||||||
let clock = Clock::new(queue.clone());
|
let clock = Clock::new(queue.clone());
|
||||||
let (tx, rx) = channel();
|
let (tx, rx) = channel();
|
||||||
let id = queue.add_sender(tx);
|
let id = queue.add_sender(tx);
|
||||||
let reg_msg = Register::new(id, RegMsg::AddDocName(Name::english("clock")));
|
let reg_msg = Register::new(id, RegMsg::AddDocName([Name::english("clock")].to_vec()));
|
||||||
let msg = Message::new(NameType::None, reg_msg.clone());
|
let msg = Message::new(NameType::None, reg_msg.clone());
|
||||||
queue.send(msg).unwrap();
|
queue.send(msg).unwrap();
|
||||||
rx.recv().unwrap();
|
rx.recv().unwrap();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user