diff --git a/src/main/java/de/gwdg/metadataqa/api/calculator/Indexer.java b/src/main/java/de/gwdg/metadataqa/api/calculator/Indexer.java index 004dcce2..20054071 100644 --- a/src/main/java/de/gwdg/metadataqa/api/calculator/Indexer.java +++ b/src/main/java/de/gwdg/metadataqa/api/calculator/Indexer.java @@ -32,7 +32,6 @@ public Indexer(SolrClient solrClient, Schema schema) { @Override public List measure(PathCache cache) { - schema.getRecordId(); try { String recordId = extractValue(cache, schema.getRecordId().getJsonPath()).get(0); diff --git a/src/test/java/de/gwdg/metadataqa/api/calculator/IndexerTest.java b/src/test/java/de/gwdg/metadataqa/api/calculator/IndexerTest.java new file mode 100644 index 00000000..d20a4912 --- /dev/null +++ b/src/test/java/de/gwdg/metadataqa/api/calculator/IndexerTest.java @@ -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; + } + +} \ No newline at end of file diff --git a/src/test/java/de/gwdg/metadataqa/api/uniqueness/SolrClientMock.java b/src/test/java/de/gwdg/metadataqa/api/uniqueness/SolrClientMock.java index 551a0b28..5ea80e0e 100644 --- a/src/test/java/de/gwdg/metadataqa/api/uniqueness/SolrClientMock.java +++ b/src/test/java/de/gwdg/metadataqa/api/uniqueness/SolrClientMock.java @@ -8,6 +8,10 @@ public class SolrClientMock implements SolrClient { + private String id; + private Map> objectMap; + private boolean commited = false; + public SolrClientMock(SolrConfiguration configuration) { } @@ -35,16 +39,29 @@ public String getSolrSearchResponse(String solrField, String value) { @Override public void indexMap(String id, Map> 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> getObjectMap() { + return objectMap; + } + + public boolean isCommited() { + return commited; + } }