Moved on_query test to lib testing.
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:
@@ -27,7 +27,8 @@ fn can_delete() {
|
||||
#[test]
|
||||
fn can_delete_specific() {
|
||||
let selected = 1;
|
||||
let (mut mtt, test_doc) = setup_range(3);
|
||||
let (test_env, test_doc) = setup_range(3);
|
||||
let mut mtt = test_env.get_morethantext();
|
||||
let mut calc = Calculation::new(Operand::Equal);
|
||||
calc.add_value(selected.clone()).unwrap();
|
||||
calc.add_value(CalcValue::Existing(FieldType::Integer))
|
||||
@@ -65,7 +66,8 @@ fn can_delete_multiple() {
|
||||
let count: i128 = 5;
|
||||
let selected: i128 = 2; // must be less than count and not less than 0
|
||||
let bound = selected + 1;
|
||||
let (mut mtt, test_doc) = setup_range(count.clone().try_into().unwrap());
|
||||
let (test_env, test_doc) = setup_range(count.clone().try_into().unwrap());
|
||||
let mut mtt = test_env.get_morethantext();
|
||||
let mut calc = Calculation::new(Operand::GreaterThan);
|
||||
calc.add_value(CalcValue::Existing(FieldType::Integer))
|
||||
.unwrap();
|
||||
@@ -106,7 +108,8 @@ fn can_delete_multiple() {
|
||||
|
||||
#[test]
|
||||
fn does_delete_error_on_a_bad_query() {
|
||||
let (mut mtt, test_doc) = setup_range(1);
|
||||
let (test_env, test_doc) = setup_range(1);
|
||||
let mut mtt = test_env.get_morethantext();
|
||||
let bad_name = Name::japanese("正しくない");
|
||||
let mut delete = Delete::new(test_doc.get_doc_name());
|
||||
let mut qry_calc = Calculation::new(Operand::Equal);
|
||||
|
||||
@@ -43,7 +43,8 @@ fn does_document_respond_to() {
|
||||
|
||||
#[test]
|
||||
fn does_document_ignore_other_document_requests() {
|
||||
let mut mtt = TestMoreThanText::new();
|
||||
let mut test_env = TestMoreThanText::new();
|
||||
let mut mtt = test_env.get_morethantext();
|
||||
let quiet = Name::english("quiet");
|
||||
let alt = Name::english("alt");
|
||||
mtt.create_document(DocDef::new(quiet.clone())).unwrap();
|
||||
@@ -53,7 +54,7 @@ fn does_document_ignore_other_document_requests() {
|
||||
Include::Just(quiet.clone().into()),
|
||||
Include::All,
|
||||
)];
|
||||
let rx = mtt.register_channel(paths);
|
||||
test_env.register_channel(paths);
|
||||
let mut requests: Vec<UserAction> = Vec::new();
|
||||
requests.push(Addition::new(alt.clone()).into());
|
||||
requests.push(Delete::new(alt.clone()).into());
|
||||
@@ -62,7 +63,7 @@ fn does_document_ignore_other_document_requests() {
|
||||
for req in requests.iter() {
|
||||
mtt.records(req.clone()).unwrap();
|
||||
}
|
||||
match rx.recv_timeout(TIMEOUT) {
|
||||
match test_env.recv() {
|
||||
Ok(msg) => unreachable!("got {:?} should have timed out", msg),
|
||||
Err(err) => match err {
|
||||
RecvTimeoutError::Timeout => {}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
mod support;
|
||||
|
||||
use morethantext::{
|
||||
CalcValue, Calculation, DocDef, ErrorID, Field, FieldType, IndexType, MTTError, MoreThanText,
|
||||
Name, Operand, Query,
|
||||
Action, CalcValue, Calculation, DocDef, ErrorID, Field, FieldType, Include, IndexType,
|
||||
MTTError, MoreThanText, Name, Operand, Path, Query, TestMoreThanText,
|
||||
};
|
||||
use std::collections::HashSet;
|
||||
use support::{setup_range, TestDocument};
|
||||
@@ -11,7 +11,8 @@ const COUNT: usize = 5;
|
||||
|
||||
#[test]
|
||||
fn does_empty_query_get_all_documents() {
|
||||
let (mut mtt, test_doc) = setup_range(COUNT);
|
||||
let (test_env, test_doc) = setup_range(COUNT);
|
||||
let mut mtt = test_env.get_morethantext();
|
||||
let mut query = Query::new(test_doc.get_doc_name());
|
||||
let result = mtt.records(query).unwrap();
|
||||
assert_eq!(result.len(), 5, "got {:?}", result);
|
||||
@@ -29,7 +30,8 @@ fn does_empty_query_get_all_documents() {
|
||||
|
||||
#[test]
|
||||
fn does_query_pull_specific_information() {
|
||||
let (mut mtt, test_doc) = setup_range(COUNT);
|
||||
let (test_env, test_doc) = setup_range(COUNT);
|
||||
let mut mtt = test_env.get_morethantext();
|
||||
let expected = 3;
|
||||
let mut calc = Calculation::new(Operand::Equal);
|
||||
calc.add_value(expected.clone()).unwrap();
|
||||
@@ -48,7 +50,8 @@ fn does_query_pull_specific_information() {
|
||||
|
||||
#[test]
|
||||
fn does_query_work_with_less_than() {
|
||||
let (mut mtt, test_doc) = setup_range(COUNT);
|
||||
let (test_env, test_doc) = setup_range(COUNT);
|
||||
let mut mtt = test_env.get_morethantext();
|
||||
let expected = 2;
|
||||
let mut calc = Calculation::new(Operand::LessThan);
|
||||
calc.add_value(expected.clone()).unwrap();
|
||||
@@ -72,7 +75,8 @@ fn does_query_work_with_less_than() {
|
||||
|
||||
#[test]
|
||||
fn does_query_work_with_less_than_equal() {
|
||||
let (mut mtt, test_doc) = setup_range(COUNT);
|
||||
let (test_env, test_doc) = setup_range(COUNT);
|
||||
let mut mtt = test_env.get_morethantext();
|
||||
let expected = 2;
|
||||
let mut calc = Calculation::new(Operand::LessThanEqual);
|
||||
calc.add_value(expected.clone()).unwrap();
|
||||
@@ -96,7 +100,8 @@ fn does_query_work_with_less_than_equal() {
|
||||
|
||||
#[test]
|
||||
fn does_query_work_with_greater_than() {
|
||||
let (mut mtt, test_doc) = setup_range(COUNT);
|
||||
let (test_env, test_doc) = setup_range(COUNT);
|
||||
let mut mtt = test_env.get_morethantext();
|
||||
let expected = 2;
|
||||
let mut calc = Calculation::new(Operand::GreaterThan);
|
||||
calc.add_value(expected.clone()).unwrap();
|
||||
@@ -119,7 +124,8 @@ fn does_query_work_with_greater_than() {
|
||||
|
||||
#[test]
|
||||
fn does_query_work_with_greater_than_equal() {
|
||||
let (mut mtt, test_doc) = setup_range(COUNT);
|
||||
let (test_env, test_doc) = setup_range(COUNT);
|
||||
let mut mtt = test_env.get_morethantext();
|
||||
let expected = 2;
|
||||
let mut calc = Calculation::new(Operand::GreaterThanEqual);
|
||||
calc.add_value(expected.clone()).unwrap();
|
||||
@@ -284,3 +290,38 @@ fn does_it_error_on_bad_field_type() {
|
||||
let result = mtt.records(qry).unwrap_err();
|
||||
assert_eq!(result.to_string(), expected.to_string());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn does_query_send_on_query_message() {
|
||||
let selected = 2;
|
||||
let (mut test_env, test_doc) = setup_range(3);
|
||||
let mut mtt = test_env.get_morethantext();
|
||||
test_env.register_channel(vec![Path::new(
|
||||
Include::All,
|
||||
Include::Just(test_doc.get_doc_name().into()),
|
||||
Include::Just(Action::OnQuery),
|
||||
)]);
|
||||
let mut calc = Calculation::new(Operand::Equal);
|
||||
calc.add_value(selected.clone()).unwrap();
|
||||
calc.add_value(CalcValue::Existing(FieldType::Integer))
|
||||
.unwrap();
|
||||
let mut qry = Query::new(test_doc.get_doc_name());
|
||||
qry.add(test_doc.get_field_name(0), calc);
|
||||
let query_result = mtt.records(qry).unwrap();
|
||||
let trigger_result = test_env.get_trigger_records(Action::OnQuery);
|
||||
assert_eq!(trigger_result.len(), query_result.len());
|
||||
assert_eq!(
|
||||
trigger_result
|
||||
.iter()
|
||||
.last()
|
||||
.unwrap()
|
||||
.get(test_doc.get_field_name(0))
|
||||
.unwrap(),
|
||||
query_result
|
||||
.iter()
|
||||
.last()
|
||||
.unwrap()
|
||||
.get(test_doc.get_field_name(0))
|
||||
.unwrap()
|
||||
);
|
||||
}
|
||||
|
||||
@@ -112,7 +112,8 @@ fn does_expire_update_on_query() {
|
||||
#[test]
|
||||
#[ignore = "failing to update"]
|
||||
fn are_expired_sessions_removed() {
|
||||
let mut mtt = TestMoreThanText::new();
|
||||
let test_env = TestMoreThanText::new();
|
||||
let mut mtt = test_env.get_morethantext();
|
||||
let id = mtt.validate_session(None);
|
||||
let mut update = Update::new(doc_name());
|
||||
let mut calc = Calculation::new(Operand::Equal);
|
||||
@@ -127,7 +128,7 @@ fn are_expired_sessions_removed() {
|
||||
.get_values_mut()
|
||||
.add_field(Name::english("expire"), expire);
|
||||
mtt.records(update).unwrap();
|
||||
mtt.send_time_pulse();
|
||||
test_env.send_time_pulse();
|
||||
let mut qry = Query::new(doc_name());
|
||||
qry.add(Name::english("id"), calc.clone());
|
||||
let result = mtt.records(qry).unwrap();
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
use morethantext::{Addition, DocDef, Field, FieldType, MoreThanText, Name};
|
||||
use morethantext::{Addition, DocDef, Field, FieldType, MoreThanText, Name, TestMoreThanText};
|
||||
use uuid::Uuid;
|
||||
|
||||
pub fn random_name() -> Name {
|
||||
Name::english(Uuid::new_v4().to_string().as_str())
|
||||
}
|
||||
|
||||
pub fn setup_range(count: usize) -> (MoreThanText, TestDocument) {
|
||||
let mut mtt = MoreThanText::new();
|
||||
pub fn setup_range(count: usize) -> (TestMoreThanText, TestDocument) {
|
||||
let test_env = TestMoreThanText::new();
|
||||
let mut mtt = test_env.get_morethantext();
|
||||
let test_doc = TestDocument::new(vec![FieldType::Integer]);
|
||||
mtt.create_document(test_doc.get_docdef()).unwrap();
|
||||
let mut data: Vec<Vec<i128>> = Vec::new();
|
||||
@@ -15,7 +16,7 @@ pub fn setup_range(count: usize) -> (MoreThanText, TestDocument) {
|
||||
data.push(vec![holder]);
|
||||
}
|
||||
test_doc.populate_multiple(&mut mtt, data);
|
||||
(mtt, test_doc)
|
||||
(test_env, test_doc)
|
||||
}
|
||||
|
||||
pub struct TestDocument {
|
||||
|
||||
@@ -12,7 +12,8 @@ use uuid::Uuid;
|
||||
fn is_it_possible_to_update_nothing() {
|
||||
let count = 3;
|
||||
let outside: i128 = (count + 2).try_into().unwrap();
|
||||
let (mut mtt, test_doc) = setup_range(count);
|
||||
let (test_env, test_doc) = setup_range(count);
|
||||
let mut mtt = test_env.get_morethantext();
|
||||
let mut update = Update::new(test_doc.get_doc_name());
|
||||
update.add_field(test_doc.get_field_name(0), 20);
|
||||
let mut calc = Calculation::new(Operand::Equal);
|
||||
@@ -60,7 +61,8 @@ fn are_the_updates_limited_to_the_queried() {
|
||||
let count = 3;
|
||||
let choice = 1;
|
||||
let changed = 20;
|
||||
let (mut mtt, test_doc) = setup_range(count);
|
||||
let (test_env, test_doc) = setup_range(count);
|
||||
let mut mtt = test_env.get_morethantext();
|
||||
let mut update = Update::new(test_doc.get_doc_name());
|
||||
update.add_field(test_doc.get_field_name(0), changed.clone());
|
||||
let mut calc = Calculation::new(Operand::Equal);
|
||||
@@ -94,7 +96,8 @@ fn are_the_updates_limited_to_the_queried() {
|
||||
fn can_multiple_documents_be_update() {
|
||||
let count = 3;
|
||||
let choice = 1;
|
||||
let (mut mtt, test_doc) = setup_range(count);
|
||||
let (test_env, test_doc) = setup_range(count);
|
||||
let mut mtt = test_env.get_morethantext();
|
||||
let mut add_up = Calculation::new(Operand::Add);
|
||||
add_up
|
||||
.add_value(CalcValue::Existing(FieldType::Integer))
|
||||
@@ -132,7 +135,8 @@ fn can_multiple_documents_be_update() {
|
||||
|
||||
#[test]
|
||||
fn does_update_error_on_a_bad_query() {
|
||||
let (mut mtt, test_doc) = setup_range(1);
|
||||
let (test_env, test_doc) = setup_range(1);
|
||||
let mut mtt = test_env.get_morethantext();
|
||||
let bad_name = Name::japanese("正しくない");
|
||||
let mut update = Update::new(test_doc.get_doc_name());
|
||||
let mut qry_calc = Calculation::new(Operand::Equal);
|
||||
@@ -151,7 +155,8 @@ fn does_update_error_on_a_bad_query() {
|
||||
|
||||
#[test]
|
||||
fn does_update_error_on_a_bad_field_name() {
|
||||
let (mut mtt, test_doc) = setup_range(1);
|
||||
let (test_env, test_doc) = setup_range(1);
|
||||
let mut mtt = test_env.get_morethantext();
|
||||
let bad_name = Name::japanese("正しくない");
|
||||
let mut update = Update::new(test_doc.get_doc_name());
|
||||
let mut qry_calc = Calculation::new(Operand::Equal);
|
||||
@@ -172,7 +177,8 @@ fn does_update_error_on_a_bad_field_name() {
|
||||
|
||||
#[test]
|
||||
fn does_update_error_on_a_bad_field_type() {
|
||||
let (mut mtt, test_doc) = setup_range(1);
|
||||
let (test_env, test_doc) = setup_range(1);
|
||||
let mut mtt = test_env.get_morethantext();
|
||||
let mut update = Update::new(test_doc.get_doc_name());
|
||||
let mut qry_calc = Calculation::new(Operand::Equal);
|
||||
qry_calc.add_value(0).unwrap();
|
||||
|
||||
Reference in New Issue
Block a user