Skip to content

Commit eaa0922

Browse files
committed
Testing Indexer
1 parent 1528716 commit eaa0922

File tree

3 files changed

+90
-3
lines changed

3 files changed

+90
-3
lines changed

src/main/java/de/gwdg/metadataqa/api/calculator/Indexer.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ public Indexer(SolrClient solrClient, Schema schema) {
3232

3333
@Override
3434
public List<MetricResult> measure(PathCache cache) {
35-
schema.getRecordId();
3635
try {
3736
String recordId = extractValue(cache, schema.getRecordId().getJsonPath()).get(0);
3837

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
package de.gwdg.metadataqa.api.calculator;
2+
3+
import de.gwdg.metadataqa.api.json.JsonBranch;
4+
import de.gwdg.metadataqa.api.model.PathCacheFactory;
5+
import de.gwdg.metadataqa.api.model.pathcache.CsvPathCache;
6+
import de.gwdg.metadataqa.api.schema.BaseSchema;
7+
import de.gwdg.metadataqa.api.schema.CsvAwareSchema;
8+
import de.gwdg.metadataqa.api.schema.Format;
9+
import de.gwdg.metadataqa.api.schema.Schema;
10+
import de.gwdg.metadataqa.api.uniqueness.SolrClientMock;
11+
import de.gwdg.metadataqa.api.uniqueness.SolrConfiguration;
12+
import de.gwdg.metadataqa.api.util.CsvReader;
13+
import org.junit.Before;
14+
import org.junit.Test;
15+
16+
import java.util.List;
17+
18+
import static org.junit.Assert.*;
19+
20+
public class IndexerTest {
21+
22+
Indexer indexer;
23+
CsvPathCache cache;
24+
SolrClientMock solrClient;
25+
26+
@Before
27+
public void setUp() throws Exception {
28+
SolrConfiguration solrConfiguration = new SolrConfiguration("localhost", "8983", "solr");
29+
Schema schema = getSchema(Format.CSV);
30+
solrClient = new SolrClientMock(solrConfiguration);
31+
indexer = new Indexer(solrClient, schema);
32+
assertNotNull(indexer);
33+
34+
cache = (CsvPathCache) PathCacheFactory.getInstance(schema.getFormat(), "URL,two three");
35+
cache.setCsvReader(new CsvReader().setHeader( ((CsvAwareSchema) schema).getHeader() ));
36+
}
37+
38+
@Test
39+
public void measure() {
40+
indexer.measure(cache);
41+
assertEquals("URL", solrClient.getId());
42+
assertTrue(solrClient.getObjectMap().containsKey("name_ss"));
43+
assertEquals(List.of("two three"), solrClient.getObjectMap().get("name_ss"));
44+
}
45+
46+
@Test
47+
public void getHeader() {
48+
assertEquals(List.of(), indexer.getHeader());
49+
}
50+
51+
@Test
52+
public void getCalculatorName() {
53+
assertEquals("indexer", indexer.getCalculatorName());
54+
}
55+
56+
@Test
57+
public void shutDown() {
58+
indexer.shutDown();
59+
assertTrue(solrClient.isCommited());
60+
}
61+
62+
private Schema getSchema(Format format) {
63+
BaseSchema schema = new BaseSchema()
64+
.setFormat(format)
65+
.addField(new JsonBranch("url").setExtractable().setIndexField("url"))
66+
.addField(new JsonBranch("name").setExtractable().setIndexField("name"));
67+
schema.setRecordId(schema.getPathByLabel("url"));
68+
return schema;
69+
}
70+
71+
}

src/test/java/de/gwdg/metadataqa/api/uniqueness/SolrClientMock.java

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@
88

99
public class SolrClientMock implements SolrClient {
1010

11+
private String id;
12+
private Map<String, List<String>> objectMap;
13+
private boolean commited = false;
14+
1115
public SolrClientMock(SolrConfiguration configuration) {
1216
}
1317

@@ -35,16 +39,29 @@ public String getSolrSearchResponse(String solrField, String value) {
3539

3640
@Override
3741
public void indexMap(String id, Map<String, List<String>> objectMap) throws IOException, SolrServerException {
38-
42+
this.id = id;
43+
this.objectMap = objectMap;
3944
}
4045

4146
@Override
4247
public void commit() {
43-
48+
commited = true;
4449
}
4550

4651
@Override
4752
public void deleteAll() {
4853

4954
}
55+
56+
public String getId() {
57+
return id;
58+
}
59+
60+
public Map<String, List<String>> getObjectMap() {
61+
return objectMap;
62+
}
63+
64+
public boolean isCommited() {
65+
return commited;
66+
}
5067
}

0 commit comments

Comments
 (0)