Skip to content

Commit

Permalink
Testing Indexer
Browse files Browse the repository at this point in the history
  • Loading branch information
pkiraly committed Nov 20, 2022
1 parent 1528716 commit eaa0922
Show file tree
Hide file tree
Showing 3 changed files with 90 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ public Indexer(SolrClient solrClient, Schema schema) {

@Override
public List<MetricResult> measure(PathCache cache) {
schema.getRecordId();
try {
String recordId = extractValue(cache, schema.getRecordId().getJsonPath()).get(0);

Expand Down
71 changes: 71 additions & 0 deletions src/test/java/de/gwdg/metadataqa/api/calculator/IndexerTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
package de.gwdg.metadataqa.api.calculator;

import de.gwdg.metadataqa.api.json.JsonBranch;
import de.gwdg.metadataqa.api.model.PathCacheFactory;
import de.gwdg.metadataqa.api.model.pathcache.CsvPathCache;
import de.gwdg.metadataqa.api.schema.BaseSchema;
import de.gwdg.metadataqa.api.schema.CsvAwareSchema;
import de.gwdg.metadataqa.api.schema.Format;
import de.gwdg.metadataqa.api.schema.Schema;
import de.gwdg.metadataqa.api.uniqueness.SolrClientMock;
import de.gwdg.metadataqa.api.uniqueness.SolrConfiguration;
import de.gwdg.metadataqa.api.util.CsvReader;
import org.junit.Before;
import org.junit.Test;

import java.util.List;

import static org.junit.Assert.*;

public class IndexerTest {

Indexer indexer;
CsvPathCache cache;
SolrClientMock solrClient;

@Before
public void setUp() throws Exception {
SolrConfiguration solrConfiguration = new SolrConfiguration("localhost", "8983", "solr");
Schema schema = getSchema(Format.CSV);
solrClient = new SolrClientMock(solrConfiguration);
indexer = new Indexer(solrClient, schema);
assertNotNull(indexer);

cache = (CsvPathCache) PathCacheFactory.getInstance(schema.getFormat(), "URL,two three");
cache.setCsvReader(new CsvReader().setHeader( ((CsvAwareSchema) schema).getHeader() ));
}

@Test
public void measure() {
indexer.measure(cache);
assertEquals("URL", solrClient.getId());
assertTrue(solrClient.getObjectMap().containsKey("name_ss"));
assertEquals(List.of("two three"), solrClient.getObjectMap().get("name_ss"));
}

@Test
public void getHeader() {
assertEquals(List.of(), indexer.getHeader());
}

@Test
public void getCalculatorName() {
assertEquals("indexer", indexer.getCalculatorName());
}

@Test
public void shutDown() {
indexer.shutDown();
assertTrue(solrClient.isCommited());
}

private Schema getSchema(Format format) {
BaseSchema schema = new BaseSchema()
.setFormat(format)
.addField(new JsonBranch("url").setExtractable().setIndexField("url"))
.addField(new JsonBranch("name").setExtractable().setIndexField("name"));
schema.setRecordId(schema.getPathByLabel("url"));
return schema;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@

public class SolrClientMock implements SolrClient {

private String id;
private Map<String, List<String>> objectMap;
private boolean commited = false;

public SolrClientMock(SolrConfiguration configuration) {
}

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

@Override
public void indexMap(String id, Map<String, List<String>> objectMap) throws IOException, SolrServerException {

this.id = id;
this.objectMap = objectMap;
}

@Override
public void commit() {

commited = true;
}

@Override
public void deleteAll() {

}

public String getId() {
return id;
}

public Map<String, List<String>> getObjectMap() {
return objectMap;
}

public boolean isCommited() {
return commited;
}
}

0 comments on commit eaa0922

Please sign in to comment.