Skip to content

Commit 6cb2e6b

Browse files
committed
simplify database property handling in tests
1 parent 8595801 commit 6cb2e6b

22 files changed

+149
-199
lines changed

app/es_embedded/src/test/java/de/komoot/photon/ESBaseTester.java

Lines changed: 6 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -6,26 +6,22 @@
66
import org.locationtech.jts.geom.PrecisionModel;
77
import de.komoot.photon.searcher.PhotonResult;
88
import org.junit.jupiter.api.AfterEach;
9-
import org.junit.jupiter.api.io.TempDir;
109
import org.locationtech.jts.io.ParseException;
1110
import org.locationtech.jts.io.WKTReader;
1211

1312
import java.io.IOException;
1413
import java.nio.file.Path;
1514
import java.util.*;
16-
import java.util.stream.Collectors;
1715

1816
/**
1917
* Start an ES server with some test data that then can be queried in tests that extend this class
2018
*/
2119
public class ESBaseTester {
22-
@TempDir
23-
protected Path dataDirectory;
24-
2520
public static final String TEST_CLUSTER_NAME = "photon-test";
2621
protected static final GeometryFactory FACTORY = new GeometryFactory(new PrecisionModel(), 4326);
2722

2823
private ElasticTestServer server;
24+
final DatabaseProperties dbProperties = new DatabaseProperties();
2925

3026
protected PhotonDoc createDoc(double lon, double lat, int id, int osmId, String key, String value) throws ParseException {
3127
Point location = FACTORY.createPoint(new Coordinate(lon, lat));
@@ -46,59 +42,18 @@ public void tearDown() throws IOException {
4642
shutdownES();
4743
}
4844

49-
public void setUpES() throws IOException {
50-
setUpES(dataDirectory, false,"en");
51-
}
52-
53-
public void setUpESWithGeometry() throws IOException {
54-
setUpES(dataDirectory, true,"en");
55-
}
56-
/**
57-
* Setup the ES server
58-
*
59-
* @throws IOException
60-
*/
61-
public void setUpES(Path testDirectory, boolean supportGeometries, String... languages) throws IOException {
62-
final var dbProperties = new DatabaseProperties();
63-
dbProperties.setLanguages(languages);
64-
dbProperties.setSupportGeometries(supportGeometries);
65-
dbProperties.setImportDate(new Date());
66-
45+
public void setUpES(Path testDirectory) throws IOException {
6746
server = new ElasticTestServer(testDirectory.toString());
6847
server.start(TEST_CLUSTER_NAME, new String[]{});
6948
server.recreateIndex(dbProperties);
7049
refresh();
7150
}
7251

7352
protected Importer makeImporter() {
74-
final var dbProperties = new DatabaseProperties();
75-
dbProperties.setLanguages(new String[]{"en"});
76-
return server.createImporter(dbProperties);
77-
}
78-
79-
protected Importer makeImporterWithExtra(String... extraTags) {
80-
final var dbProperties = new DatabaseProperties();
81-
dbProperties.setLanguages(new String[]{"en"});
82-
dbProperties.setExtraTags(Arrays.stream(extraTags).collect(Collectors.toList()));
83-
return server.createImporter(dbProperties);
84-
}
85-
86-
protected Importer makeImporterWithLanguages(String... languages) {
87-
final var dbProperties = new DatabaseProperties();
88-
dbProperties.setLanguages(languages);
8953
return server.createImporter(dbProperties);
9054
}
9155

9256
protected Updater makeUpdater() {
93-
final var dbProperties = new DatabaseProperties();
94-
dbProperties.setLanguages(new String[]{"en"});
95-
return server.createUpdater(dbProperties);
96-
}
97-
98-
protected Updater makeUpdaterWithExtra(String... extraTags) {
99-
final var dbProperties = new DatabaseProperties();
100-
dbProperties.setLanguages(new String[]{"en"});
101-
dbProperties.setExtraTags(Arrays.stream(extraTags).collect(Collectors.toList()));
10257
return server.createUpdater(dbProperties);
10358
}
10459

@@ -114,6 +69,10 @@ protected void refresh() {
11469
server.refresh();
11570
}
11671

72+
protected DatabaseProperties getProperties() {
73+
return dbProperties;
74+
}
75+
11776
/**
11877
* Shutdown the ES node
11978
*/

app/es_embedded/src/test/java/de/komoot/photon/elasticsearch/ElasticResultTest.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,6 @@
2121

2222
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
2323
class ElasticResultTest extends ESBaseTester {
24-
@TempDir
25-
private static Path instanceTestDirectory;
26-
2724
private Map<String, String> makeMap(String... kv) {
2825
Map<String, String> result = new HashMap<>();
2926
for (int i = 0; i < kv.length; i += 2) {
@@ -40,8 +37,8 @@ protected PhotonDoc createDoc(double lon, double lat, int id, int osmId, String
4037

4138

4239
@BeforeAll
43-
void setUp() throws Exception {
44-
setUpES(instanceTestDirectory, false, "en", "de", "fr", "it");
40+
void setUp(@TempDir Path dataDirectory) throws Exception {
41+
setUpES(dataDirectory);
4542
final var dbProperties = new DatabaseProperties();
4643
dbProperties.setLanguages(new String[]{"en", "de", "fr", "it"});
4744
dbProperties.setExtraTags(List.of("population", "capital"));

app/es_embedded/src/test/java/de/komoot/photon/elasticsearch/ImporterTest.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,12 @@
66
import de.komoot.photon.searcher.PhotonResult;
77
import org.junit.jupiter.api.BeforeEach;
88
import org.junit.jupiter.api.Test;
9+
import org.junit.jupiter.api.io.TempDir;
910
import org.locationtech.jts.io.ParseException;
1011
import org.locationtech.jts.io.WKTReader;
1112

1213
import java.io.IOException;
14+
import java.nio.file.Path;
1315
import java.util.Collections;
1416
import java.util.HashMap;
1517
import java.util.Map;
@@ -20,13 +22,13 @@
2022
class ImporterTest extends ESBaseTester {
2123

2224
@BeforeEach
23-
public void setUp() throws IOException {
24-
setUpES();
25+
public void setUp(@TempDir Path dataDirectory) throws IOException {
26+
setUpES(dataDirectory);
2527
}
2628

2729
@Test
2830
void testAddSimpleDoc() throws ParseException {
29-
Importer instance = makeImporterWithExtra("");
31+
Importer instance = makeImporter();
3032

3133
instance.add(List.of(new PhotonDoc(1234, "N", 1000, "place", "city")
3234
.geometry(new WKTReader().read("MULTIPOLYGON (((6.111933 51.2659309, 6.1119417 51.2659247, 6.1119554 51.2659249, 6.1119868 51.2659432, 6.111964 51.2659591, 6.1119333 51.2659391, 6.111933 51.2659309)))"))
@@ -48,7 +50,7 @@ void testAddSimpleDoc() throws ParseException {
4850

4951
@Test
5052
void testAddHousenumberMultiDoc() {
51-
Importer instance = makeImporterWithExtra("");
53+
Importer instance = makeImporter();
5254

5355
instance.add(List.of(
5456
new PhotonDoc(4432, "N", 100, "building", "yes").houseNumber("34"),
@@ -79,7 +81,8 @@ void testAddHousenumberMultiDoc() {
7981

8082
@Test
8183
void testSelectedExtraTagsCanBeIncluded() {
82-
Importer instance = makeImporterWithExtra("maxspeed", "website");
84+
getProperties().setExtraTags(List.of("maxspeed", "website"));
85+
Importer instance = makeImporter();
8386

8487
Map<String, String> extratags = new HashMap<>();
8588
extratags.put("website", "foo");

app/es_embedded/src/test/java/de/komoot/photon/elasticsearch/UpdaterTest.java

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,26 @@
66
import de.komoot.photon.Updater;
77
import de.komoot.photon.searcher.PhotonResult;
88
import org.junit.jupiter.api.Test;
9+
import org.junit.jupiter.api.io.TempDir;
910

1011
import java.io.IOException;
12+
import java.nio.file.Path;
1113
import java.util.*;
1214

1315
import static org.junit.jupiter.api.Assertions.*;
1416

1517
class UpdaterTest extends ESBaseTester {
1618

19+
@TempDir
20+
private Path dataDirectory;
21+
1722
@Test
1823
void addNameToDoc() throws IOException {
1924
Map<String, String> names = new HashMap<>();
2025
names.put("name", "Foo");
2126
PhotonDoc doc = new PhotonDoc(1234, "N", 1000, "place", "city").names(names);
2227

23-
setUpES();
28+
setUpES(dataDirectory);
2429
Importer instance = makeImporter();
2530
instance.add(List.of(doc));
2631
instance.finish();
@@ -47,7 +52,7 @@ void removeNameFromDoc() throws IOException {
4752
names.put("name:en", "Enfoo");
4853
PhotonDoc doc = new PhotonDoc(1234, "N", 1000, "place", "city").names(names);
4954

50-
setUpES();
55+
setUpES(dataDirectory);
5156
Importer instance = makeImporter();
5257
instance.add(List.of(doc));
5358
instance.finish();
@@ -73,8 +78,9 @@ void addExtraTagsToDoc() throws IOException {
7378
names.put("name", "Foo");
7479
PhotonDoc doc = new PhotonDoc(1234, "N", 1000, "place", "city").names(names);
7580

76-
setUpES();
77-
Importer instance = makeImporterWithExtra("website");
81+
getProperties().setExtraTags(List.of("website"));
82+
setUpES(dataDirectory);
83+
Importer instance = makeImporter();
7884
instance.add(List.of(doc));
7985
instance.finish();
8086
refresh();
@@ -85,7 +91,7 @@ void addExtraTagsToDoc() throws IOException {
8591
assertNull(response.get("extra"));
8692

8793
doc.extraTags(Collections.singletonMap("website", "http://site.foo"));
88-
Updater updater = makeUpdaterWithExtra("website");
94+
Updater updater = makeUpdater();
8995
updater.addOrUpdate(List.of(doc));
9096
updater.finish();
9197
refresh();
@@ -101,8 +107,9 @@ void addExtraTagsToDoc() throws IOException {
101107

102108
@Test
103109
void deleteDoc() throws IOException {
104-
setUpES();
105-
Importer instance = makeImporterWithExtra("website");
110+
getProperties().setExtraTags(List.of("website"));
111+
setUpES(dataDirectory);
112+
Importer instance = makeImporter();
106113
instance.add(List.of(
107114
new PhotonDoc(4432, "N", 100, "building", "yes").houseNumber("34"),
108115
new PhotonDoc(4432, "N", 100, "building", "yes").houseNumber("35")));
@@ -112,7 +119,7 @@ void deleteDoc() throws IOException {
112119
assertNotNull(getById("4432"));
113120
assertNotNull(getById("4432.1"));
114121

115-
Updater updater = makeUpdaterWithExtra("website");
122+
Updater updater = makeUpdater();
116123
updater.delete(4432L);
117124
updater.finish();
118125
refresh();

app/opensearch/src/test/java/de/komoot/photon/ESBaseTester.java

Lines changed: 7 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import de.komoot.photon.opensearch.OpenSearchTestServer;
55
import de.komoot.photon.searcher.PhotonResult;
66
import org.junit.jupiter.api.AfterEach;
7-
import org.junit.jupiter.api.io.TempDir;
87
import org.locationtech.jts.geom.Coordinate;
98
import org.locationtech.jts.geom.GeometryFactory;
109
import org.locationtech.jts.geom.PrecisionModel;
@@ -13,20 +12,15 @@
1312

1413
import java.io.IOException;
1514
import java.nio.file.Path;
16-
import java.util.Arrays;
1715
import java.util.Collections;
18-
import java.util.Date;
19-
import java.util.stream.Collectors;
2016

2117

2218
public class ESBaseTester {
2319
public static final String TEST_CLUSTER_NAME = "photon-test";
2420
protected static final GeometryFactory FACTORY = new GeometryFactory(new PrecisionModel(), 4326);
2521

26-
@TempDir
27-
protected Path dataDirectory;
28-
2922
private OpenSearchTestServer server;
23+
private final DatabaseProperties dbProperties = new DatabaseProperties();
3024

3125
protected PhotonDoc createDoc(double lon, double lat, int id, int osmId, String key, String value) throws ParseException {
3226
final var location = FACTORY.createPoint(new Coordinate(lon, lat));
@@ -49,55 +43,18 @@ protected PhotonResult getById(String id) {
4943
return server.getByID(id);
5044
}
5145

52-
public void setUpES() throws IOException {
53-
setUpES(dataDirectory, false, "en");
54-
}
55-
56-
public void setUpESWithGeometry() throws IOException {
57-
setUpES(dataDirectory, true, "en");
58-
}
59-
60-
public void setUpES(Path testDirectory, boolean supportGeometries, String... languages) throws IOException {
61-
final var dbProperties = new DatabaseProperties();
62-
dbProperties.setLanguages(languages);
63-
dbProperties.setImportDate(new Date());
64-
dbProperties.setSupportGeometries(supportGeometries);
65-
dbProperties.setSupportStructuredQueries(true);
66-
server = new OpenSearchTestServer(testDirectory.toString());
46+
public void setUpES(Path dataDirectory) throws IOException {
47+
server = new OpenSearchTestServer(dataDirectory.toString());
6748
server.startTestServer(TEST_CLUSTER_NAME);
6849
server.recreateIndex(dbProperties);
6950
server.refreshIndexes();
7051
}
7152

7253
protected Importer makeImporter() {
73-
final var dbProperties = new DatabaseProperties();
74-
dbProperties.setLanguages(new String[]{"en"});
75-
return (Importer) server.createImporter(dbProperties);
76-
}
77-
78-
protected Importer makeImporterWithExtra(String... extraTags) {
79-
final var dbProperties = new DatabaseProperties();
80-
dbProperties.setLanguages(new String[]{"en"});
81-
dbProperties.setExtraTags(Arrays.stream(extraTags).collect(Collectors.toList()));
82-
return (Importer) server.createImporter(dbProperties);
83-
}
84-
85-
protected Importer makeImporterWithLanguages(String... languages) {
86-
final var dbProperties = new DatabaseProperties();
87-
dbProperties.setLanguages(languages);
8854
return (Importer) server.createImporter(dbProperties);
8955
}
9056

9157
protected Updater makeUpdater() {
92-
final var dbProperties = new DatabaseProperties();
93-
dbProperties.setLanguages(new String[]{"en"});
94-
return (Updater) server.createUpdater(dbProperties);
95-
}
96-
97-
protected Updater makeUpdaterWithExtra(String... extraTags) {
98-
final var dbProperties = new DatabaseProperties();
99-
dbProperties.setLanguages(new String[]{"en"});
100-
dbProperties.setExtraTags(Arrays.stream(extraTags).collect(Collectors.toList()));
10158
return (Updater) server.createUpdater(dbProperties);
10259
}
10360

@@ -107,6 +64,10 @@ protected Server getServer() {
10764
return server;
10865
}
10966

67+
protected DatabaseProperties getProperties() {
68+
return dbProperties;
69+
}
70+
11071
protected void refresh() throws IOException {
11172
server.refreshIndexes();
11273
}

app/opensearch/src/test/java/de/komoot/photon/opensearch/ImporterTest.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,12 @@
66
import de.komoot.photon.searcher.PhotonResult;
77
import org.junit.jupiter.api.BeforeEach;
88
import org.junit.jupiter.api.Test;
9+
import org.junit.jupiter.api.io.TempDir;
910
import org.locationtech.jts.io.ParseException;
1011
import org.locationtech.jts.io.WKTReader;
1112

1213
import java.io.IOException;
14+
import java.nio.file.Path;
1315
import java.util.Collections;
1416
import java.util.HashMap;
1517
import java.util.List;
@@ -20,13 +22,14 @@
2022
class ImporterTest extends ESBaseTester {
2123

2224
@BeforeEach
23-
public void setUp() throws IOException {
24-
setUpESWithGeometry();
25+
public void setUp(@TempDir Path dataDirectory) throws IOException {
26+
getProperties().setSupportGeometries(true);
27+
setUpES(dataDirectory);
2528
}
2629

2730
@Test
2831
void testAddSimpleDoc() throws ParseException {
29-
Importer instance = makeImporterWithExtra("");
32+
Importer instance = makeImporter();
3033

3134
instance.add(List.of(
3235
new PhotonDoc(1234, "N", 1000, "place", "city")
@@ -48,7 +51,7 @@ void testAddSimpleDoc() throws ParseException {
4851

4952
@Test
5053
void testAddHousenumberMultiDoc() {
51-
Importer instance = makeImporterWithExtra("");
54+
Importer instance = makeImporter();
5255

5356
instance.add(List.of(
5457
new PhotonDoc(4432, "N", 100, "building", "yes").houseNumber("34"),
@@ -78,7 +81,8 @@ void testAddHousenumberMultiDoc() {
7881

7982
@Test
8083
void testSelectedExtraTagsCanBeIncluded() {
81-
Importer instance = makeImporterWithExtra("maxspeed", "website");
84+
getProperties().setExtraTags(List.of("maxspeed", "website"));
85+
Importer instance = makeImporter();
8286

8387
Map<String, String> extratags = new HashMap<>();
8488
extratags.put("website", "foo");

0 commit comments

Comments
 (0)