aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/common/mod.rs24
-rw-r--r--tests/files/GET_search.txt10
-rw-r--r--tests/files/GET_search_multi_match.txt9
-rw-r--r--tests/parse_es_requests.rs16
4 files changed, 59 insertions, 0 deletions
diff --git a/tests/common/mod.rs b/tests/common/mod.rs
new file mode 100644
index 0000000..f0b9bea
--- /dev/null
+++ b/tests/common/mod.rs
@@ -0,0 +1,24 @@
+
+use std::io::BufRead;
+
+pub struct ExampleRequest {
+ pub method: String,
+ pub path_and_query: String,
+ pub body: Option<String>,
+}
+
+pub fn load_request(name: &str) -> ExampleRequest {
+
+ let path = format!("tests/files/{}.txt", name);
+ let file = std::fs::File::open(path).unwrap();
+ let mut lines = std::io::BufReader::new(file).lines();
+ let first_line: Vec<String> = lines.next().unwrap().unwrap().split(" ").map(|v| v.into()).collect();
+ let body: Vec<String> = lines.map(|v| v.into()).collect::<Result<Vec<String>, _>>().unwrap();
+ let body: String = body.join("\n");
+
+ ExampleRequest {
+ method: first_line[0].clone(),
+ path_and_query: first_line[1].clone(),
+ body: Some(body),
+ }
+}
diff --git a/tests/files/GET_search.txt b/tests/files/GET_search.txt
new file mode 100644
index 0000000..1ed6157
--- /dev/null
+++ b/tests/files/GET_search.txt
@@ -0,0 +1,10 @@
+GET /_search
+{
+ "query": {
+ "match": {
+ "message": {
+ "query": "this is a test"
+ }
+ }
+ }
+}
diff --git a/tests/files/GET_search_multi_match.txt b/tests/files/GET_search_multi_match.txt
new file mode 100644
index 0000000..17aca77
--- /dev/null
+++ b/tests/files/GET_search_multi_match.txt
@@ -0,0 +1,9 @@
+GET /_search
+{
+ "query": {
+ "multi_match" : {
+ "query" : "this is a test",
+ "fields" : [ "subject^3", "message" ]
+ }
+ }
+}
diff --git a/tests/parse_es_requests.rs b/tests/parse_es_requests.rs
new file mode 100644
index 0000000..e918da9
--- /dev/null
+++ b/tests/parse_es_requests.rs
@@ -0,0 +1,16 @@
+
+mod common;
+
+#[test]
+fn basic_load() {
+ let request = common::load_request("GET_search");
+ assert_eq!(request.method, "GET");
+ assert_eq!(request.path_and_query, "/_search");
+}
+
+#[test]
+fn basic_parse() {
+ let request = common::load_request("GET_search");
+ assert_eq!(request.method, "GET");
+ assert_eq!(request.path_and_query, "/_search");
+}