Adjusted query to also accept a list of oids.
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
b665e63ad5
commit
df4671761c
286
src/message.rs
286
src/message.rs
@ -46,7 +46,7 @@ enum Action {
|
||||
Create,
|
||||
Delete,
|
||||
Error,
|
||||
On,
|
||||
OnAction,
|
||||
Query,
|
||||
Records,
|
||||
Register,
|
||||
@ -62,7 +62,7 @@ impl From<MsgAction> for Action {
|
||||
MsgAction::Create(_) => Action::Create,
|
||||
MsgAction::Delete(_) => Action::Delete,
|
||||
MsgAction::Error(_) => Action::Error,
|
||||
MsgAction::On(_) => Action::On,
|
||||
MsgAction::OnAction(_) => Action::OnAction,
|
||||
MsgAction::Query(_) => Action::Query,
|
||||
MsgAction::Records(_) => Action::Records,
|
||||
MsgAction::Register(_) => Action::Register,
|
||||
@ -127,8 +127,8 @@ enum MsgAction {
|
||||
// Alter
|
||||
// Remove
|
||||
Error(MTTError),
|
||||
On(On),
|
||||
Query(Query),
|
||||
OnAction(OnAction),
|
||||
Query(QueryType),
|
||||
Records(RecordIter),
|
||||
Register(Register),
|
||||
Reply(Reply),
|
||||
@ -163,7 +163,7 @@ impl From<MTTError> for MsgAction {
|
||||
|
||||
impl From<Query> for MsgAction {
|
||||
fn from(value: Query) -> Self {
|
||||
MsgAction::Query(value)
|
||||
MsgAction::Query(QueryType::Query(value))
|
||||
}
|
||||
}
|
||||
|
||||
@ -329,7 +329,7 @@ mod messages {
|
||||
#[test]
|
||||
fn can_the_document_be_an_id() {
|
||||
let document = Uuid::new_v4();
|
||||
let msg = Message::new(document.clone(), MsgAction::Query(Query::new()));
|
||||
let msg = Message::new(document.clone(), Query::new());
|
||||
match msg.get_document_id() {
|
||||
NameType::ID(data) => assert_eq!(data, &document),
|
||||
_ => unreachable!("should have been an id"),
|
||||
@ -354,7 +354,7 @@ mod messages {
|
||||
#[test]
|
||||
fn Can_make_reply_message() {
|
||||
let name = Name::english("testing");
|
||||
let msg = Message::new(name.clone(), MsgAction::Query(Query::new()));
|
||||
let msg = Message::new(name.clone(), Query::new());
|
||||
let responce = Reply::new();
|
||||
let reply = msg.response(responce);
|
||||
assert_eq!(reply.get_message_id(), msg.get_message_id());
|
||||
@ -371,7 +371,7 @@ mod messages {
|
||||
#[test]
|
||||
fn Can_make_error_message() {
|
||||
let name = Name::english("testing");
|
||||
let msg = Message::new(name.clone(), MsgAction::Query(Query::new()));
|
||||
let msg = Message::new(name.clone(), Query::new());
|
||||
let err_msg = Uuid::new_v4().to_string();
|
||||
let result = msg.response(MTTError::DocumentNotFound(err_msg.clone()));
|
||||
|
||||
@ -392,7 +392,7 @@ mod messages {
|
||||
#[test]
|
||||
fn can_make_a_response_message() {
|
||||
let doc_id = Uuid::new_v4();
|
||||
let msg = Message::new(doc_id.clone(), MsgAction::Query(Query::new()));
|
||||
let msg = Message::new(doc_id.clone(), Query::new());
|
||||
let data = Uuid::new_v4().to_string();
|
||||
let result1 = msg.response(MTTError::DocumentNotFound(data.clone()));
|
||||
let result2 = msg.response(Reply::new());
|
||||
@ -2418,12 +2418,12 @@ enum OnType {
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
struct On {
|
||||
struct OnAction {
|
||||
on_type: OnType,
|
||||
oids: HashSet<Oid>,
|
||||
}
|
||||
|
||||
impl On {
|
||||
impl OnAction {
|
||||
fn new(on_type: OnType, oids: HashSet<Oid>) -> Self {
|
||||
Self {
|
||||
on_type: on_type,
|
||||
@ -2453,7 +2453,7 @@ mod ons {
|
||||
while oids.len() < count {
|
||||
oids.insert(Oid::new());
|
||||
}
|
||||
let result = On::new(on_type.clone(), oids.clone());
|
||||
let result = OnAction::new(on_type.clone(), oids.clone());
|
||||
assert_eq!(result.get_type(), on_type);
|
||||
assert_eq!(result.get_oids(), &oids);
|
||||
}
|
||||
@ -3205,6 +3205,24 @@ impl Operation {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
enum QueryType {
|
||||
Query(Query),
|
||||
Oids(HashSet<Oid>),
|
||||
}
|
||||
|
||||
impl From<Query> for QueryType {
|
||||
fn from(value: Query) -> Self {
|
||||
QueryType::Query(value)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<HashSet<Oid>> for QueryType {
|
||||
fn from(value: HashSet<Oid>) -> Self {
|
||||
QueryType::Oids(value)
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
struct Query {
|
||||
data: HashMap<NameType, Calculation>,
|
||||
@ -3710,12 +3728,6 @@ impl Document {
|
||||
self.data.iter()
|
||||
}
|
||||
|
||||
/*
|
||||
fn iter(&self) -> DocIter {
|
||||
DocIter::new(self)
|
||||
}
|
||||
*/
|
||||
|
||||
fn is_empty(&self) -> bool {
|
||||
self.data.is_empty()
|
||||
}
|
||||
@ -3779,47 +3791,45 @@ mod documents {
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
struct Delete {
|
||||
query: Query,
|
||||
query: QueryType,
|
||||
}
|
||||
|
||||
impl Delete {
|
||||
fn new() -> Self {
|
||||
fn new<QT>(query: QT) -> Self
|
||||
where
|
||||
QT: Into<QueryType>,
|
||||
{
|
||||
Self {
|
||||
query: Query::new(),
|
||||
query: query.into(),
|
||||
}
|
||||
}
|
||||
|
||||
fn get_query(&self) -> &Query {
|
||||
fn get_query(&self) -> &QueryType {
|
||||
&self.query
|
||||
}
|
||||
|
||||
fn get_query_mut(&mut self) -> &mut Query {
|
||||
&mut self.query
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
struct Update {
|
||||
query: Query,
|
||||
query: QueryType,
|
||||
values: Document,
|
||||
}
|
||||
|
||||
impl Update {
|
||||
fn new() -> Self {
|
||||
fn new<QT>(query: QT) -> Self
|
||||
where
|
||||
QT: Into<QueryType>,
|
||||
{
|
||||
Self {
|
||||
query: Query::new(),
|
||||
query: query.into(),
|
||||
values: Document::new(),
|
||||
}
|
||||
}
|
||||
|
||||
fn get_query(&self) -> &Query {
|
||||
fn get_query(&self) -> &QueryType {
|
||||
&self.query
|
||||
}
|
||||
|
||||
fn get_query_mut(&mut self) -> &mut Query {
|
||||
&mut self.query
|
||||
}
|
||||
|
||||
fn get_values(&self) -> &Document {
|
||||
&self.values
|
||||
}
|
||||
@ -4348,49 +4358,6 @@ impl DocumentFile {
|
||||
records.insert(holder);
|
||||
}
|
||||
records.into()
|
||||
|
||||
/*
|
||||
for (field_id, value) in addition.iter() {
|
||||
let id = match self.docdef.get_field_id(field_id) {
|
||||
Ok(fid) => fid,
|
||||
Err(err) => return MsgAction::Error(err),
|
||||
};
|
||||
}
|
||||
|
||||
let doc = addition.get_document();
|
||||
for (field, value) in doc.iter() {
|
||||
match self.validate(field, &value) {
|
||||
Ok((id, data)) => {
|
||||
holder.insert(id, data);
|
||||
}
|
||||
Err(err) => return MsgAction::Error(err),
|
||||
}
|
||||
}
|
||||
let requested: HashSet<Uuid> = holder.keys().cloned().collect();
|
||||
let all_fields = self.docdef.field_ids();
|
||||
for field in all_fields.difference(&requested).cloned() {
|
||||
match self.validate(field, &Field::None) {
|
||||
Ok((id, data)) => {
|
||||
holder.insert(id, data);
|
||||
}
|
||||
Err(err) => return MsgAction::Error(err),
|
||||
}
|
||||
}
|
||||
let mut records = RecordIter::with_names(self.docdef.get_field_names().clone());
|
||||
if !holder.is_empty() {
|
||||
let mut oid = Oid::new();
|
||||
while self.docs.contains_key(&oid) {
|
||||
oid = Oid::new();
|
||||
}
|
||||
self.docs.insert(oid.clone(), holder.clone());
|
||||
for (field_id, oids) in self.indexes.iter_mut() {
|
||||
let value = holder.get(field_id).unwrap();
|
||||
oids.internal_add(value, oid.clone());
|
||||
}
|
||||
records.insert(holder);
|
||||
}
|
||||
records.into()
|
||||
*/
|
||||
}
|
||||
|
||||
fn delete(&mut self, delete: &Delete) -> MsgAction {
|
||||
@ -4410,7 +4377,11 @@ impl DocumentFile {
|
||||
records.into()
|
||||
}
|
||||
|
||||
fn run_query(&self, query: &Query) -> Result<HashSet<Oid>, MTTError> {
|
||||
fn run_query(&self, query_type: &QueryType) -> Result<HashSet<Oid>, MTTError> {
|
||||
let query = match query_type {
|
||||
QueryType::Query(qry) => qry,
|
||||
QueryType::Oids(oids) => return Ok(oids.clone()),
|
||||
};
|
||||
let indexed_ids = self.indexes.index_ids();
|
||||
let mut indexed: HashMap<Uuid, Calculation> = HashMap::new();
|
||||
let mut unindexed: HashMap<Uuid, Calculation> = HashMap::new();
|
||||
@ -4451,7 +4422,7 @@ impl DocumentFile {
|
||||
Ok(oids)
|
||||
}
|
||||
|
||||
fn query(&self, query: &Query) -> MsgAction {
|
||||
fn query(&self, query: &QueryType) -> MsgAction {
|
||||
let oids = match self.run_query(query) {
|
||||
Ok(data) => data,
|
||||
Err(err) => return err.into(),
|
||||
@ -4508,51 +4479,6 @@ impl DocumentFile {
|
||||
output.insert(new_rec.clone());
|
||||
}
|
||||
output.into()
|
||||
|
||||
/*
|
||||
let mut changes: HashMap<Uuid, Field> = HashMap::new();
|
||||
for (key, value) in update.get_values().iter() {
|
||||
let (id, field) = match self.validate(key, &value) {
|
||||
Ok(data) => data,
|
||||
Err(err) => return err.into(),
|
||||
};
|
||||
changes.insert(id, field);
|
||||
}
|
||||
let oids = match self.run_query(update.get_query()) {
|
||||
Ok(result) => result,
|
||||
Err(err) => return err.into(),
|
||||
};
|
||||
let mut holder: HashMap<Oid, InternalRecord> = HashMap::new();
|
||||
for oid in oids.iter() {
|
||||
holder.insert(oid.clone(), self.docs.get(oid).unwrap().clone());
|
||||
}
|
||||
let mut removes: Vec<(Uuid, Field, Oid)> = Vec::new();
|
||||
let mut indexes = self.docdef.create_indexes();
|
||||
for (oid, rec) in holder.iter_mut() {
|
||||
for (field_id, value) in changes.iter() {
|
||||
removes.push((
|
||||
field_id.clone(),
|
||||
rec.get(field_id).unwrap().clone(),
|
||||
oid.clone(),
|
||||
));
|
||||
match indexes.add_to_index(&field_id, value.clone(), oid.clone()) {
|
||||
Ok(_) => {}
|
||||
Err(err) => return err.into(),
|
||||
}
|
||||
rec.insert(field_id.clone(), value.clone());
|
||||
}
|
||||
}
|
||||
let mut output = RecordIter::with_names(self.docdef.get_field_names().clone());
|
||||
for (field_id, value, oid) in removes.iter() {
|
||||
self.indexes.remove_from_index(field_id, value, oid);
|
||||
}
|
||||
self.indexes.append(&indexes);
|
||||
for (oid, record) in holder.iter() {
|
||||
self.docs.insert(oid.clone(), record.clone());
|
||||
output.insert(record.clone());
|
||||
}
|
||||
output.into()
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@ -4704,10 +4630,10 @@ mod document_files {
|
||||
let queue = test_doc.get_queue();
|
||||
let msg_actions = [
|
||||
MsgAction::Addition(Addition::new()),
|
||||
MsgAction::Delete(Delete::new()),
|
||||
MsgAction::Query(Query::new()),
|
||||
MsgAction::Delete(Delete::new(Query::new())),
|
||||
MsgAction::Query(Query::new().into()),
|
||||
MsgAction::Show,
|
||||
MsgAction::Update(Update::new()),
|
||||
MsgAction::Update(Update::new(Query::new())),
|
||||
];
|
||||
for msg_action in msg_actions.iter() {
|
||||
let msg = Message::new(name.clone(), msg_action.clone());
|
||||
@ -4753,10 +4679,10 @@ mod document_files {
|
||||
let msg_actions = [
|
||||
MsgAction::Addition(Addition::new()),
|
||||
MsgAction::Create(DocDef::new(name.clone())),
|
||||
MsgAction::Delete(Delete::new()),
|
||||
MsgAction::Query(Query::new()),
|
||||
MsgAction::Delete(Delete::new(Query::new())),
|
||||
MsgAction::Query(Query::new().into()),
|
||||
MsgAction::Show,
|
||||
MsgAction::Update(Update::new()),
|
||||
MsgAction::Update(Update::new(Query::new())),
|
||||
];
|
||||
let mut msgs: HashMap<Uuid, MsgAction> = HashMap::new();
|
||||
for msg_action in msg_actions.iter() {
|
||||
@ -5306,10 +5232,13 @@ mod document_files {
|
||||
for id in ids.iter() {
|
||||
doc.populate([id.clone().into()].to_vec());
|
||||
}
|
||||
let mut update = Update::new();
|
||||
let mut calc = Calculation::new(Operand::Equal);
|
||||
calc.add_value(id);
|
||||
update.get_query_mut().add(Name::english("field0"), calc);
|
||||
calc.add_value(CalcValue::Existing(FieldType::Uuid))
|
||||
.unwrap();
|
||||
calc.add_value(Uuid::nil()).unwrap();
|
||||
let mut query = Query::new();
|
||||
query.add(Name::english("field0"), calc);
|
||||
let mut update = Update::new(query);
|
||||
update
|
||||
.get_values_mut()
|
||||
.add_field(Name::english("field0"), Uuid::nil());
|
||||
@ -5331,12 +5260,13 @@ mod document_files {
|
||||
let new = "new";
|
||||
let id = Uuid::new_v4();
|
||||
doc.populate([id.into(), old.into()].to_vec());
|
||||
let mut update = Update::new();
|
||||
let mut calc = Calculation::new(Operand::Equal);
|
||||
calc.add_value(CalcValue::Existing(FieldType::Uuid))
|
||||
.unwrap();
|
||||
calc.add_value(id.clone()).unwrap();
|
||||
update.get_query_mut().add(Name::english("field0"), calc);
|
||||
let mut query = Query::new();
|
||||
query.add(Name::english("field0"), calc);
|
||||
let mut update = Update::new(query);
|
||||
update
|
||||
.get_values_mut()
|
||||
.add_field(Name::english("field1"), new);
|
||||
@ -5368,16 +5298,18 @@ mod document_files {
|
||||
let old = "old";
|
||||
let new = "new";
|
||||
let count = 5;
|
||||
let field_count = count.clone().try_into().unwrap();
|
||||
let picked = 3;
|
||||
for i in 0..count {
|
||||
for i in 0..field_count {
|
||||
doc.populate([i.into(), old.into()].to_vec());
|
||||
}
|
||||
let mut update = Update::new();
|
||||
let mut calc = Calculation::new(Operand::Equal);
|
||||
calc.add_value(picked.clone()).unwrap();
|
||||
calc.add_value(CalcValue::Existing(FieldType::Integer))
|
||||
.unwrap();
|
||||
update.get_query_mut().add(Name::english("field0"), calc);
|
||||
calc.add_value(picked.clone()).unwrap();
|
||||
let mut query = Query::new();
|
||||
query.add(Name::english("field0"), calc);
|
||||
let mut update = Update::new(query);
|
||||
update
|
||||
.get_values_mut()
|
||||
.add_field(Name::english("field1"), new);
|
||||
@ -5403,7 +5335,7 @@ mod document_files {
|
||||
let action = result.get_action();
|
||||
match action {
|
||||
MsgAction::Records(docs) => {
|
||||
assert_eq!(docs.len(), 5, "should have one entry");
|
||||
assert_eq!(docs.len(), count, "should have one entry");
|
||||
for doc in docs.clone() {
|
||||
if doc.get(Name::english("field0")).unwrap() == picked.into() {
|
||||
assert_eq!(doc.get(Name::english("field1")).unwrap(), new.into());
|
||||
@ -5428,12 +5360,13 @@ mod document_files {
|
||||
for i in 0..count {
|
||||
doc.populate([picked.into(), old.into()].to_vec());
|
||||
}
|
||||
let mut update = Update::new();
|
||||
let mut calc = Calculation::new(Operand::Equal);
|
||||
calc.add_value(picked.clone()).unwrap();
|
||||
calc.add_value(CalcValue::Existing(FieldType::Integer))
|
||||
.unwrap();
|
||||
update.get_query_mut().add(Name::english("field0"), calc);
|
||||
calc.add_value(picked.clone()).unwrap();
|
||||
let mut query = Query::new();
|
||||
query.add(Name::english("field0"), calc);
|
||||
let mut update = Update::new(query);
|
||||
update
|
||||
.get_values_mut()
|
||||
.add_field(Name::english("field1"), new);
|
||||
@ -5443,7 +5376,7 @@ mod document_files {
|
||||
let action = result.get_action();
|
||||
match action {
|
||||
MsgAction::Records(docs) => {
|
||||
assert_eq!(docs.len(), 5, "should have one entry");
|
||||
assert_eq!(docs.len(), count, "should have one entry");
|
||||
for doc in docs.clone() {
|
||||
assert_eq!(doc.get(Name::english("field0")).unwrap(), picked.into());
|
||||
assert_eq!(doc.get(Name::english("field1")).unwrap(), new.into());
|
||||
@ -5465,10 +5398,7 @@ mod document_files {
|
||||
let new = "new";
|
||||
let bad_name = Name::english("wrong");
|
||||
doc.populate([id.into(), old.into()].to_vec());
|
||||
let mut update = Update::new();
|
||||
let mut calc = Calculation::new(Operand::Equal);
|
||||
calc.add_value(id.clone());
|
||||
update.get_query_mut().add(Name::english("field0"), calc);
|
||||
let mut update = Update::new(Query::new());
|
||||
update.get_values_mut().add_field(bad_name.clone(), new);
|
||||
doc.send(update).unwrap();
|
||||
let result = doc.get_receiver().recv_timeout(TIMEOUT).unwrap();
|
||||
@ -5490,11 +5420,14 @@ mod document_files {
|
||||
let old = "old";
|
||||
let new = Uuid::nil();
|
||||
doc.populate([id.into(), old.into()].to_vec());
|
||||
let mut update = Update::new();
|
||||
|
||||
let mut calc = Calculation::new(Operand::Equal);
|
||||
calc.add_value(id.clone());
|
||||
calc.add_value(CalcValue::Existing(FieldType::Uuid));
|
||||
update.get_query_mut().add(Name::english("field0"), calc);
|
||||
calc.add_value(CalcValue::Existing(FieldType::Uuid))
|
||||
.unwrap();
|
||||
calc.add_value(id.clone()).unwrap();
|
||||
let mut query = Query::new();
|
||||
query.add(Name::english("field0"), calc);
|
||||
let mut update = Update::new(query);
|
||||
update
|
||||
.get_values_mut()
|
||||
.add_field(Name::english("field1"), new);
|
||||
@ -5524,11 +5457,14 @@ mod document_files {
|
||||
let old = 3;
|
||||
let new = 5;
|
||||
test_doc.populate([old.into()].to_vec());
|
||||
let mut update = Update::new();
|
||||
|
||||
let mut calc = Calculation::new(Operand::Equal);
|
||||
calc.add_value(old);
|
||||
calc.add_value(CalcValue::Existing(FieldType::Integer));
|
||||
update.get_query_mut().add(fname.clone(), calc);
|
||||
calc.add_value(CalcValue::Existing(FieldType::Integer))
|
||||
.unwrap();
|
||||
calc.add_value(old.clone()).unwrap();
|
||||
let mut query = Query::new();
|
||||
query.add(Name::english("field0"), calc);
|
||||
let mut update = Update::new(query);
|
||||
update.get_values_mut().add_field(&fname, new);
|
||||
test_doc.send(update).unwrap();
|
||||
test_doc.get_receiver().recv_timeout(TIMEOUT).unwrap();
|
||||
@ -5606,11 +5542,14 @@ mod document_files {
|
||||
let fold: Field = old.into();
|
||||
let fnew: Field = new.into();
|
||||
doc.populate([old.into()].to_vec());
|
||||
let mut update = Update::new();
|
||||
|
||||
let mut calc = Calculation::new(Operand::Equal);
|
||||
calc.add_value(old);
|
||||
calc.add_value(CalcValue::Existing(FieldType::StaticString));
|
||||
update.get_query_mut().add(fname.clone(), calc);
|
||||
calc.add_value(CalcValue::Existing(FieldType::StaticString))
|
||||
.unwrap();
|
||||
calc.add_value(old.clone()).unwrap();
|
||||
let mut query = Query::new();
|
||||
query.add(Name::english("field0"), calc);
|
||||
let mut update = Update::new(query);
|
||||
update.get_values_mut().add_field(fname.clone(), new);
|
||||
doc.send(update).unwrap();
|
||||
doc.get_receiver().recv_timeout(TIMEOUT).unwrap();
|
||||
@ -5661,12 +5600,14 @@ mod document_files {
|
||||
for id in ids.iter() {
|
||||
doc.populate([id.clone().into(), data.into()].to_vec());
|
||||
}
|
||||
let mut update = Update::new();
|
||||
|
||||
let mut calc = Calculation::new(Operand::Equal);
|
||||
calc.add_value(data).unwrap();
|
||||
calc.add_value(CalcValue::Existing(FieldType::StaticString))
|
||||
.unwrap();
|
||||
update.get_query_mut().add(&f1name, calc);
|
||||
calc.add_value(data).unwrap();
|
||||
let mut query = Query::new();
|
||||
query.add(&f1name, calc);
|
||||
let mut update = Update::new(query);
|
||||
update.get_values_mut().add_field(&f0name, holder.clone());
|
||||
doc.send(update).unwrap();
|
||||
let result = doc.get_receiver().recv_timeout(TIMEOUT).unwrap();
|
||||
@ -5674,7 +5615,7 @@ mod document_files {
|
||||
match action {
|
||||
MsgAction::Error(err) => match err {
|
||||
MTTError::FieldDuplicate => {}
|
||||
_ => unreachable!("got {:?}: should have gotten an missing field", err),
|
||||
_ => unreachable!("got {:?}: should have gotten field duplicate", err),
|
||||
},
|
||||
_ => unreachable!("got {:?}: should have gotten an error", action),
|
||||
}
|
||||
@ -5741,8 +5682,7 @@ mod document_files {
|
||||
calc.add_value(CalcValue::Existing(FieldType::Integer));
|
||||
let mut query = Query::new();
|
||||
query.add(&fname, calc);
|
||||
let mut delete = Delete::new();
|
||||
*delete.get_query_mut() = query.clone();
|
||||
let mut delete = Delete::new(query.clone());
|
||||
doc.send(delete).unwrap();
|
||||
let result = doc.get_receiver().recv_timeout(TIMEOUT).unwrap();
|
||||
let action = result.get_action();
|
||||
@ -5772,11 +5712,12 @@ mod document_files {
|
||||
let field_name = Name::english("wrong");
|
||||
let mut doc = TestDocument::new([FieldType::Integer].to_vec());
|
||||
doc.start();
|
||||
let mut delete = Delete::new();
|
||||
let mut calc = Calculation::new(Operand::Equal);
|
||||
calc.add_value(CalcValue::Existing(FieldType::Integer));
|
||||
calc.add_value(1);
|
||||
let query = delete.get_query_mut();
|
||||
let mut query = Query::new();
|
||||
query.add(field_name.clone(), calc);
|
||||
let delete = Delete::new(query);
|
||||
doc.send(delete).unwrap();
|
||||
let result = doc.get_receiver().recv_timeout(TIMEOUT).unwrap();
|
||||
let action = result.get_action();
|
||||
@ -5797,7 +5738,7 @@ mod document_files {
|
||||
doc.get_docdef_mut().add_index(&fname, IndexType::Unique);
|
||||
doc.start();
|
||||
doc.populate([value.into()].to_vec());
|
||||
doc.send(Delete::new());
|
||||
doc.send(Delete::new(Query::new()));
|
||||
doc.get_receiver().recv_timeout(TIMEOUT).unwrap();
|
||||
let mut addition = Addition::new();
|
||||
addition.add_field(&fname, value.clone());
|
||||
@ -5852,7 +5793,7 @@ mod createdocs {
|
||||
MsgAction::Reply(_) => {}
|
||||
_ => unreachable!("got {:?}: should have been a reply.", result1.get_action()),
|
||||
}
|
||||
let msg2 = Message::new(name, MsgAction::Query(Query::new()));
|
||||
let msg2 = Message::new(name, Query::new());
|
||||
queue.send(msg2.clone()).unwrap();
|
||||
let result2 = rx.recv_timeout(TIMEOUT).unwrap();
|
||||
assert_eq!(result2.get_message_id(), msg2.get_message_id());
|
||||
@ -5925,6 +5866,7 @@ impl Clock {
|
||||
#[cfg(test)]
|
||||
mod clocks {
|
||||
use super::*;
|
||||
use chrono::TimeDelta;
|
||||
|
||||
static TIMEOUT: Duration = Duration::from_millis(1500);
|
||||
|
||||
@ -5946,8 +5888,8 @@ mod clocks {
|
||||
holder.push(rx.recv_timeout(TIMEOUT).unwrap());
|
||||
}
|
||||
let end = Utc::now();
|
||||
assert!((end - start) > chrono::TimeDelta::seconds(1));
|
||||
assert!((end - start) < chrono::TimeDelta::seconds(2));
|
||||
assert!((end - start) > TimeDelta::seconds(1));
|
||||
assert!((end - start) < TimeDelta::seconds(2));
|
||||
for msg in holder.iter() {
|
||||
let name_id = msg.get_document_id();
|
||||
match name_id {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user