package io.github.infolis.infolink.querying;
import java.io.IOException;
import java.net.URL;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import org.junit.Assert;
import org.junit.Test;
import io.github.infolis.algorithm.SearchResultLinker;
import io.github.infolis.algorithm.MultiMatchesLinker;
import io.github.infolis.model.entity.Entity;
import io.github.infolis.infolink.querying.QueryService.QueryField;
import io.github.infolis.infolink.querying.QueryServiceTest.ExpectedOutput;
/**
*
* @author kata
*
*/
public class DaraHTMLQueryServiceTest {
public static Set<ExpectedOutput> getExpectedOutput() {
QueryService queryService = new DaraHTMLQueryService();
queryService.setMaxNumber(25);
Entity entity = new Entity();
entity.setName("Studierendensurvey");
Class<? extends SearchResultLinker> searchResultLinkerClass = MultiMatchesLinker.class;
Set<ExpectedOutput> expectedOutput = new HashSet<ExpectedOutput>();
Map<String, String> expectedDoiTitleMap = new HashMap<String, String>();
expectedDoiTitleMap.put("10.4232/1.4263", "Studiensituation und studentische Orientierungen 2006/07 (Studierenden-Survey)");
expectedDoiTitleMap.put("10.4232/1.12507" ,"Studiensituation und studentische Orientierungen 2006/07 (Studierenden-Survey)");
expectedDoiTitleMap.put("10.4232/1.4344", "Studiensituation und studentische Orientierungen 2003/04 (Studierenden-Survey)");
expectedDoiTitleMap.put("10.4232/1.12508", "Studiensituation und studentische Orientierungen 2003/04 (Studierenden-Survey)");
expectedDoiTitleMap.put("10.4232/1.11059", "Studiensituation und studentische Orientierungen 2009/10 (Studierenden-Survey)");
expectedDoiTitleMap.put("10.4232/1.12509", "Studiensituation und studentische Orientierungen 2009/10 (Studierenden-Survey)");
expectedDoiTitleMap.put("10.4232/1.1884", "Studiensituation und studentische Orientierungen 1982/83 (Studierenden-Survey)");
expectedDoiTitleMap.put("10.4232/1.12499", "Studiensituation und studentische Orientierungen 1982/83 (Studierenden-Survey)");
expectedDoiTitleMap.put("10.4232/1.1885", "Studiensituation und studentische Orientierungen 1984/85 (Studierenden-Survey)");
expectedDoiTitleMap.put("10.4232/1.12500", "Studiensituation und studentische Orientierungen 1984/85 (Studierenden-Survey)");
expectedDoiTitleMap.put("10.4232/1.3130", "Studiensituation und studentische Orientierungen 1992/93 (Studierenden-Survey)");
expectedDoiTitleMap.put("10.4232/1.12503" ,"Studiensituation und studentische Orientierungen 1992/93 (Studierenden-Survey)");
expectedDoiTitleMap.put("10.4232/1.3131", "Studiensituation und studentische Orientierungen 1994/95 (Studierenden-Survey)");
expectedDoiTitleMap.put("10.4232/1.12504", "Studiensituation und studentische Orientierungen 1994/95 (Studierenden-Survey)");
expectedDoiTitleMap.put("10.4232/1.2416", "Studiensituation und studentische Orientierungen 1986/87 (Studierenden-Survey)");
expectedDoiTitleMap.put("10.4232/1.12501", "Studiensituation und studentische Orientierungen 1986/87 (Studierenden-Survey)");
expectedDoiTitleMap.put("10.4232/1.2416", "Studiensituation und studentische Orientierungen 1986/87 (Studierenden-Survey)");
expectedDoiTitleMap.put("10.4232/1.2417", "Studiensituation und studentische Orientierungen 1989/90 (Studierenden-Survey)");
expectedDoiTitleMap.put("10.4232/1.12502", "Studiensituation und studentische Orientierungen 1989/90 (Studierenden-Survey)");
expectedDoiTitleMap.put("10.4232/1.5126", "Studiensituation und studentische Orientierungen 2012/13 (Studierenden-Survey)");
expectedDoiTitleMap.put("10.4232/1.12510", "Studiensituation und studentische Orientierungen 2012/13 (Studierenden-Survey)");
expectedDoiTitleMap.put("10.4232/1.4208", "Studiensituation und studentische Orientierungen 2000/01 (Studierenden-Survey)");
expectedDoiTitleMap.put("10.4232/1.12506", "Studiensituation und studentische Orientierungen 2000/01 (Studierenden-Survey)");
expectedDoiTitleMap.put("10.4232/1.3511", "Studiensituation und studentische Orientierungen 1997/98 (Studierenden-Survey)");
expectedDoiTitleMap.put("10.4232/1.12505", "Studiensituation und studentische Orientierungen 1997/98 (Studierenden-Survey)");
expectedDoiTitleMap.put("10.4232/1.12494", "Studiensituation und studentische Orientierungen (Studierenden-Survey) Kumulation 1983 - 2013");
ExpectedOutput output = new ExpectedOutput(queryService, entity, searchResultLinkerClass, expectedDoiTitleMap);
expectedOutput.add(output);
return expectedOutput;
}
@Test
public void testCreateTitleQuery() throws IOException {
QueryService queryService = new DaraHTMLQueryService();
queryService.setMaxNumber(600);
Set<QueryField> queryStrategy = new HashSet<>();
queryStrategy.add(QueryField.title);
queryService.setQueryStrategy(queryStrategy);
Entity entity = new Entity();
entity.setName("Studierendensurvey");
Assert.assertEquals(new URL("http://www.da-ra.de/dara/search/search_result?q=title:Studierendensurvey+resourceType:2&lang=en&mdlang=de&max=600"), queryService.createQuery(entity));
}
@Test
public void testCreateNumInTitleQuery() throws IOException {
QueryService queryService = new DaraHTMLQueryService();
queryService.setMaxNumber(600);
Set<QueryField> queryStrategy = new HashSet<>();
queryStrategy.add(QueryField.numericInfoInTitle);
queryService.setQueryStrategy(queryStrategy);
Entity entity = new Entity();
entity.setName("Studierendensurvey");
Assert.assertEquals(new URL("http://www.da-ra.de/dara/search/search_result?q=title:Studierendensurvey+resourceType:2&lang=en&mdlang=de&max=600"), queryService.createQuery(entity));
}
}