Skip to content

Commit 2ebe333

Browse files
committed
Created integration test for max_hops and max_docs_per_query for Resolution API.
1 parent 089430b commit 2ebe333

File tree

3 files changed

+102
-45
lines changed

3 files changed

+102
-45
lines changed

src/test/java/io/zentity/resolution/JobIT.java

Lines changed: 62 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public class JobIT extends AbstractITCase {
1515

1616
private final Map<String, String> params = Collections.emptyMap();
1717

18-
private final StringEntity testResolutionRequestPayload = new StringEntity("{\n" +
18+
private final StringEntity testJobPayload = new StringEntity("{\n" +
1919
" \"attributes\": {\n" +
2020
" \"attribute_a\": \"a_00\"\n" +
2121
" },\n" +
@@ -32,11 +32,29 @@ public class JobIT extends AbstractITCase {
3232
" }\n" +
3333
"}", ContentType.APPLICATION_JSON);
3434

35+
private final StringEntity testJobMaxHopsAndDocsPayload = new StringEntity("{\n" +
36+
" \"attributes\": {\n" +
37+
" \"attribute_d\": \"d_00\"\n" +
38+
" }\n" +
39+
"}", ContentType.APPLICATION_JSON);
40+
3541
private byte[] readFile(String filename) throws IOException {
3642
InputStream stream = this.getClass().getResourceAsStream("/" + filename);
3743
return IOUtils.toByteArray(stream);
3844
}
3945

46+
private void destroyTestReources() throws IOException {
47+
48+
// Delete indices
49+
client.performRequest("DELETE", ".zentity_test_index_a");
50+
client.performRequest("DELETE", ".zentity_test_index_b");
51+
client.performRequest("DELETE", ".zentity_test_index_c");
52+
client.performRequest("DELETE", ".zentity_test_index_d");
53+
54+
// Delete entity model
55+
client.performRequest("DELETE", "_zentity/models/zentity_test_entity_a");
56+
}
57+
4058
private void prepareTestResources() throws IOException {
4159

4260
// Load files
@@ -59,7 +77,8 @@ private void prepareTestResources() throws IOException {
5977

6078
public void testJob() throws Exception {
6179
prepareTestResources();
62-
Response response = client.performRequest("POST", "_zentity/resolution/zentity_test_entity_a", params, testResolutionRequestPayload);
80+
String endpoint = "_zentity/resolution/zentity_test_entity_a";
81+
Response response = client.performRequest("POST", endpoint, params, testJobPayload);
6382
JsonNode json = mapper.readTree(response.getEntity().getContent());
6483
assertEquals(json.get("hits").get("total").asInt(), 6);
6584

@@ -79,5 +98,46 @@ public void testJob() throws Exception {
7998
}
8099

81100
assertEquals(docsExpected, docsActual);
101+
destroyTestReources();
102+
}
103+
104+
public void testJobMaxHopsAndDocs() throws Exception {
105+
prepareTestResources();
106+
String endpoint = "_zentity/resolution/zentity_test_entity_a?max_hops=2&max_docs_per_hop=2";
107+
Response response = client.performRequest("POST", endpoint, params, testJobMaxHopsAndDocsPayload);
108+
JsonNode json = mapper.readTree(response.getEntity().getContent());
109+
assertEquals(json.get("hits").get("total").asInt(), 20);
110+
111+
Set<String> docsExpected = new HashSet<>();
112+
docsExpected.add("a0,0");
113+
docsExpected.add("a1,0");
114+
docsExpected.add("b0,0");
115+
docsExpected.add("b1,0");
116+
docsExpected.add("c0,0");
117+
docsExpected.add("c1,0");
118+
docsExpected.add("d0,0");
119+
docsExpected.add("d1,0");
120+
docsExpected.add("a2,1");
121+
docsExpected.add("b2,1");
122+
docsExpected.add("c2,1");
123+
docsExpected.add("d2,1");
124+
docsExpected.add("a3,2");
125+
docsExpected.add("a4,2");
126+
docsExpected.add("b3,2");
127+
docsExpected.add("b4,2");
128+
docsExpected.add("c3,2");
129+
docsExpected.add("c4,2");
130+
docsExpected.add("d3,2");
131+
docsExpected.add("d4,2");
132+
133+
Set<String> docsActual = new HashSet<>();
134+
for (JsonNode node : json.get("hits").get("hits")) {
135+
String _id = node.get("_id").asText();
136+
int _hop = node.get("_hop").asInt();
137+
docsActual.add(_id + "," + _hop);
138+
}
139+
140+
assertEquals(docsExpected, docsActual);
141+
destroyTestReources();
82142
}
83143
}

src/test/resources/TestData.txt

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,80 +1,80 @@
11
{ "index" : { "_index": ".zentity_test_index_a", "_type": "doc", "_id": "a0" }}
2-
{"_hop": 0, "field_a": "a_00", "field_b": "b_00", "field_c": "c_00", "field_d": "d_00"}
2+
{ "field_a": "a_00", "field_b": "b_00", "field_c": "c_00", "field_d": "d_00"}
33
{ "index" : { "_index": ".zentity_test_index_a", "_type": "doc", "_id": "a1" }}
4-
{"_hop": 2, "field_a": "a 02", "field_b": "b_03", "field_c": "c_03", "field_d": "d_00"}
4+
{ "field_a": "a 02", "field_b": "b_03", "field_c": "c_03", "field_d": "d_00"}
55
{ "index" : { "_index": ".zentity_test_index_a", "_type": "doc", "_id": "a2" }}
6-
{"_hop": null, "field_a": "a_10", "field_b": "b_10", "field_c": "c_10", "field_d": "d_00"}
6+
{ "field_a": "a_10", "field_b": "b_10", "field_c": "c_10", "field_d": "d_00"}
77
{ "index" : { "_index": ".zentity_test_index_a", "_type": "doc", "_id": "a3" }}
8-
{"_hop": null, "field_a": "a_10", "field_b": "b_10", "field_c": "c_11", "field_d": "d_01"}
8+
{ "field_a": "a_10", "field_b": "b_10", "field_c": "c_11", "field_d": "d_01"}
99
{ "index" : { "_index": ".zentity_test_index_a", "_type": "doc", "_id": "a4" }}
10-
{"_hop": null, "field_a": "a_10", "field_b": "b_11", "field_c": "c_10", "field_d": "d_01"}
10+
{ "field_a": "a_10", "field_b": "b_11", "field_c": "c_10", "field_d": "d_01"}
1111
{ "index" : { "_index": ".zentity_test_index_a", "_type": "doc", "_id": "a5" }}
12-
{"_hop": null, "field_a": "a_10", "field_b": "b_11", "field_c": "c_11", "field_d": "d_01"}
12+
{ "field_a": "a_10", "field_b": "b_11", "field_c": "c_11", "field_d": "d_01"}
1313
{ "index" : { "_index": ".zentity_test_index_a", "_type": "doc", "_id": "a6" }}
14-
{"_hop": null, "field_a": "a_11", "field_b": "b_10", "field_c": "c_10", "field_d": "d_02"}
14+
{ "field_a": "a_11", "field_b": "b_10", "field_c": "c_10", "field_d": "d_02"}
1515
{ "index" : { "_index": ".zentity_test_index_a", "_type": "doc", "_id": "a7" }}
16-
{"_hop": null, "field_a": "a_11", "field_b": "b_10", "field_c": "c_11", "field_d": "d_02"}
16+
{ "field_a": "a_11", "field_b": "b_10", "field_c": "c_11", "field_d": "d_02"}
1717
{ "index" : { "_index": ".zentity_test_index_a", "_type": "doc", "_id": "a8" }}
18-
{"_hop": null, "field_a": "a_11", "field_b": "b_11", "field_c": "c_10", "field_d": "d_03"}
18+
{ "field_a": "a_11", "field_b": "b_11", "field_c": "c_10", "field_d": "d_03"}
1919
{ "index" : { "_index": ".zentity_test_index_a", "_type": "doc", "_id": "a9" }}
20-
{"_hop": null, "field_a": "a_11", "field_b": "b_11", "field_c": "c_11", "field_d": "d_03"}
20+
{ "field_a": "a_11", "field_b": "b_11", "field_c": "c_11", "field_d": "d_03"}
2121
{ "index" : { "_index": ".zentity_test_index_b", "_type": "doc", "_id": "b0" }}
22-
{"_hop": 0, "field_a": "a_00", "field_b": "b 01", "field_c": "c_01", "field_d": "d_00"}
22+
{ "field_a": "a_00", "field_b": "b 01", "field_c": "c_01", "field_d": "d_00"}
2323
{ "index" : { "_index": ".zentity_test_index_b", "_type": "doc", "_id": "b1" }}
24-
{"_hop": 3, "field_a": "a_04", "field_b": "b_03", "field_c": "c 03", "field_d": "d_00"}
24+
{ "field_a": "a_04", "field_b": "b_03", "field_c": "c 03", "field_d": "d_00"}
2525
{ "index" : { "_index": ".zentity_test_index_b", "_type": "doc", "_id": "b2" }}
26-
{"_hop": null, "field_a": "a_10", "field_b": "b_10", "field_c": "c_10", "field_d": "d_00"}
26+
{ "field_a": "a_10", "field_b": "b_10", "field_c": "c_10", "field_d": "d_00"}
2727
{ "index" : { "_index": ".zentity_test_index_b", "_type": "doc", "_id": "b3" }}
28-
{"_hop": null, "field_a": "a_10", "field_b": "b_10", "field_c": "c_11", "field_d": "d_01"}
28+
{ "field_a": "a_10", "field_b": "b_10", "field_c": "c_11", "field_d": "d_01"}
2929
{ "index" : { "_index": ".zentity_test_index_b", "_type": "doc", "_id": "b4" }}
30-
{"_hop": null, "field_a": "a_10", "field_b": "b_11", "field_c": "c_10", "field_d": "d_01"}
30+
{ "field_a": "a_10", "field_b": "b_11", "field_c": "c_10", "field_d": "d_01"}
3131
{ "index" : { "_index": ".zentity_test_index_b", "_type": "doc", "_id": "b5" }}
32-
{"_hop": null, "field_a": "a_10", "field_b": "b_11", "field_c": "c_11", "field_d": "d_01"}
32+
{ "field_a": "a_10", "field_b": "b_11", "field_c": "c_11", "field_d": "d_01"}
3333
{ "index" : { "_index": ".zentity_test_index_b", "_type": "doc", "_id": "b6" }}
34-
{"_hop": null, "field_a": "a_11", "field_b": "b_10", "field_c": "c_10", "field_d": "d_02"}
34+
{ "field_a": "a_11", "field_b": "b_10", "field_c": "c_10", "field_d": "d_02"}
3535
{ "index" : { "_index": ".zentity_test_index_b", "_type": "doc", "_id": "b7" }}
36-
{"_hop": null, "field_a": "a_11", "field_b": "b_10", "field_c": "c_11", "field_d": "d_02"}
36+
{ "field_a": "a_11", "field_b": "b_10", "field_c": "c_11", "field_d": "d_02"}
3737
{ "index" : { "_index": ".zentity_test_index_b", "_type": "doc", "_id": "b8" }}
38-
{"_hop": null, "field_a": "a_11", "field_b": "b_11", "field_c": "c_10", "field_d": "d_03"}
38+
{ "field_a": "a_11", "field_b": "b_11", "field_c": "c_10", "field_d": "d_03"}
3939
{ "index" : { "_index": ".zentity_test_index_b", "_type": "doc", "_id": "b9" }}
40-
{"_hop": null, "field_a": "a_11", "field_b": "b_11", "field_c": "c_11", "field_d": "d_03"}
40+
{ "field_a": "a_11", "field_b": "b_11", "field_c": "c_11", "field_d": "d_03"}
4141
{ "index" : { "_index": ".zentity_test_index_c", "_type": "doc", "_id": "c0" }}
42-
{"_hop": 1, "field_a": "a_02", "field_b": "b_01", "field_c": "c 01", "field_d": "d_00"}
42+
{ "field_a": "a_02", "field_b": "b_01", "field_c": "c 01", "field_d": "d_00"}
4343
{ "index" : { "_index": ".zentity_test_index_c", "_type": "doc", "_id": "c1" }}
44-
{"_hop": 4, "field_a": "a 04", "field_b": "b_05", "field_c": "c_05", "field_d": "d_00"}
44+
{ "field_a": "a 04", "field_b": "b_05", "field_c": "c_05", "field_d": "d_00"}
4545
{ "index" : { "_index": ".zentity_test_index_c", "_type": "doc", "_id": "c2" }}
46-
{"_hop": null, "field_a": "a_10", "field_b": "b_10", "field_c": "c_10", "field_d": "d_00"}
46+
{ "field_a": "a_10", "field_b": "b_10", "field_c": "c_10", "field_d": "d_00"}
4747
{ "index" : { "_index": ".zentity_test_index_c", "_type": "doc", "_id": "c3" }}
48-
{"_hop": null, "field_a": "a_10", "field_b": "b_10", "field_c": "c_11", "field_d": "d_01"}
48+
{ "field_a": "a_10", "field_b": "b_10", "field_c": "c_11", "field_d": "d_01"}
4949
{ "index" : { "_index": ".zentity_test_index_c", "_type": "doc", "_id": "c4" }}
50-
{"_hop": null, "field_a": "a_10", "field_b": "b_11", "field_c": "c_10", "field_d": "d_01"}
50+
{ "field_a": "a_10", "field_b": "b_11", "field_c": "c_10", "field_d": "d_01"}
5151
{ "index" : { "_index": ".zentity_test_index_c", "_type": "doc", "_id": "c5" }}
52-
{"_hop": null, "field_a": "a_10", "field_b": "b_11", "field_c": "c_11", "field_d": "d_01"}
52+
{ "field_a": "a_10", "field_b": "b_11", "field_c": "c_11", "field_d": "d_01"}
5353
{ "index" : { "_index": ".zentity_test_index_c", "_type": "doc", "_id": "c6" }}
54-
{"_hop": null, "field_a": "a_11", "field_b": "b_10", "field_c": "c_10", "field_d": "d_02"}
54+
{ "field_a": "a_11", "field_b": "b_10", "field_c": "c_10", "field_d": "d_02"}
5555
{ "index" : { "_index": ".zentity_test_index_c", "_type": "doc", "_id": "c7" }}
56-
{"_hop": null, "field_a": "a_11", "field_b": "b_10", "field_c": "c_11", "field_d": "d_02"}
56+
{ "field_a": "a_11", "field_b": "b_10", "field_c": "c_11", "field_d": "d_02"}
5757
{ "index" : { "_index": ".zentity_test_index_c", "_type": "doc", "_id": "c8" }}
58-
{"_hop": null, "field_a": "a_11", "field_b": "b_11", "field_c": "c_10", "field_d": "d_03"}
58+
{ "field_a": "a_11", "field_b": "b_11", "field_c": "c_10", "field_d": "d_03"}
5959
{ "index" : { "_index": ".zentity_test_index_c", "_type": "doc", "_id": "c9" }}
60-
{"_hop": null, "field_a": "a_11", "field_b": "b_11", "field_c": "c_11", "field_d": "d_03"}
60+
{ "field_a": "a_11", "field_b": "b_11", "field_c": "c_11", "field_d": "d_03"}
6161
{ "index" : { "_index": ".zentity_test_index_d", "_type": "doc", "_id": "d0" }}
62-
{"_hop": null, "field_a": "a_02", "field_b": "b_01", "field_c": "c 01", "field_d": "d_00"}
62+
{ "field_a": "a_02", "field_b": "b_01", "field_c": "c 01", "field_d": "d_00"}
6363
{ "index" : { "_index": ".zentity_test_index_d", "_type": "doc", "_id": "d1" }}
64-
{"_hop": null, "field_a": "a 04", "field_b": "b_05", "field_c": "c_05", "field_d": "d_00"}
64+
{ "field_a": "a 04", "field_b": "b_05", "field_c": "c_05", "field_d": "d_00"}
6565
{ "index" : { "_index": ".zentity_test_index_d", "_type": "doc", "_id": "d2" }}
66-
{"_hop": null, "field_a": "a_10", "field_b": "b_10", "field_c": "c_10", "field_d": "d_00"}
66+
{ "field_a": "a_10", "field_b": "b_10", "field_c": "c_10", "field_d": "d_00"}
6767
{ "index" : { "_index": ".zentity_test_index_d", "_type": "doc", "_id": "d3" }}
68-
{"_hop": null, "field_a": "a_10", "field_b": "b_10", "field_c": "c_11", "field_d": "d_01"}
68+
{ "field_a": "a_10", "field_b": "b_10", "field_c": "c_11", "field_d": "d_01"}
6969
{ "index" : { "_index": ".zentity_test_index_d", "_type": "doc", "_id": "d4" }}
70-
{"_hop": null, "field_a": "a_10", "field_b": "b_11", "field_c": "c_10", "field_d": "d_01"}
70+
{ "field_a": "a_10", "field_b": "b_11", "field_c": "c_10", "field_d": "d_01"}
7171
{ "index" : { "_index": ".zentity_test_index_d", "_type": "doc", "_id": "d5" }}
72-
{"_hop": null, "field_a": "a_10", "field_b": "b_11", "field_c": "c_11", "field_d": "d_01"}
72+
{ "field_a": "a_10", "field_b": "b_11", "field_c": "c_11", "field_d": "d_01"}
7373
{ "index" : { "_index": ".zentity_test_index_d", "_type": "doc", "_id": "d6" }}
74-
{"_hop": null, "field_a": "a_11", "field_b": "b_10", "field_c": "c_10", "field_d": "d_02"}
74+
{ "field_a": "a_11", "field_b": "b_10", "field_c": "c_10", "field_d": "d_02"}
7575
{ "index" : { "_index": ".zentity_test_index_d", "_type": "doc", "_id": "d7" }}
76-
{"_hop": null, "field_a": "a_11", "field_b": "b_10", "field_c": "c_11", "field_d": "d_02"}
76+
{ "field_a": "a_11", "field_b": "b_10", "field_c": "c_11", "field_d": "d_02"}
7777
{ "index" : { "_index": ".zentity_test_index_d", "_type": "doc", "_id": "d8" }}
78-
{"_hop": null, "field_a": "a_11", "field_b": "b_11", "field_c": "c_10", "field_d": "d_03"}
78+
{ "field_a": "a_11", "field_b": "b_11", "field_c": "c_10", "field_d": "d_03"}
7979
{ "index" : { "_index": ".zentity_test_index_d", "_type": "doc", "_id": "d9" }}
80-
{"_hop": null, "field_a": "a_11", "field_b": "b_11", "field_c": "c_11", "field_d": "d_03"}
80+
{ "field_a": "a_11", "field_b": "b_11", "field_c": "c_11", "field_d": "d_03"}

src/test/resources/TestIndex.json

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,6 @@
6868
"type": "keyword"
6969
}
7070
}
71-
},
72-
"_hop": {
73-
"type": "integer"
7471
}
7572
}
7673
}

0 commit comments

Comments
 (0)