package io.github.infolis.infolink.querying;
import static org.junit.Assert.assertEquals;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.HashMap;
import java.util.Map;
import javax.json.JsonArray;
import javax.json.JsonObject;
import org.junit.Assume;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import io.github.infolis.infolink.querying.DaraSolrMatcher;
public class DaraSolrMatcherTest {
Logger log = LoggerFactory.getLogger(DaraSolrMatcherTest.class);
String datasetName = "Studierendensurvey";
Map<String, String> expectedOutput = new HashMap<>();
// note: da|ra's database may change! If test fails, check whether these values are still correct
public DaraSolrMatcherTest() {
expectedOutput.put("10.4232/1.4263", "Studiensituation und studentische Orientierungen 2006/07 (Studierenden-Survey)");
expectedOutput.put("10.4232/1.4344", "Studiensituation und studentische Orientierungen 2003/04 (Studierenden-Survey)");
expectedOutput.put("10.4232/1.11059", "Studiensituation und studentische Orientierungen 2009/10 (Studierenden-Survey)");
expectedOutput.put("10.4232/1.1884", "Studiensituation und studentische Orientierungen 1982/83 (Studierenden-Survey)");
expectedOutput.put("10.4232/1.1885", "Studiensituation und studentische Orientierungen 1984/85 (Studierenden-Survey)");
expectedOutput.put("10.4232/1.3130", "Studiensituation und studentische Orientierungen 1992/93 (Studierenden-Survey)");
expectedOutput.put("10.4232/1.3131", "Studiensituation und studentische Orientierungen 1994/95 (Studierenden-Survey)");
expectedOutput.put("10.4232/1.2416", "Studiensituation und studentische Orientierungen 1986/87 (Studierenden-Survey)");
expectedOutput.put("10.4232/1.2417", "Studiensituation und studentische Orientierungen 1989/90 (Studierenden-Survey)");
expectedOutput.put("10.4232/1.5126", "Studiensituation und studentische Orientierungen 2012/13 (Studierenden-Survey)");
expectedOutput.put("10.4232/1.4208", "Studiensituation und studentische Orientierungen 2000/01 (Studierenden-Survey)");
expectedOutput.put("10.4232/1.3511", "Studiensituation und studentische Orientierungen 1997/98 (Studierenden-Survey)");
}
@Test
public void testQuery() throws MalformedURLException, IOException {
Assume.assumeNotNull(System.getProperty("gesisRemoteTest"));
Map<String, String> output = new HashMap<>();
DaraSolrMatcher matcher = new DaraSolrMatcher(this.datasetName);
JsonArray json = matcher.query();
for (JsonObject result : json.getValuesAs(JsonObject.class)) {
String title1 = result.getJsonArray("title").getString(0);
String doi = result.getJsonArray("doi").getString(0);
output.put(doi, title1);
}
assertEquals(this.expectedOutput, output);
}
}