Skip to content

Commit

Permalink
add test for getEntityDocumentByTitle
Browse files Browse the repository at this point in the history
  • Loading branch information
mardam committed Jun 24, 2015
1 parent d278299 commit f2f802d
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 34 deletions.
Expand Up @@ -254,40 +254,31 @@ public Map<String, EntityDocument> getEntityDocumentsByTitle(
*/
public Map<String, EntityDocument> getEntityDocumentsByTitle(
String siteKey, List<String> titles) {
List<String> titles2 = new ArrayList<String>();
titles2.addAll(titles);
List<String> helpList = new ArrayList<String>();
helpList.addAll(titles);
titles = helpList;
Map<String, EntityDocument> result = new HashMap<>();
boolean moreItems = true;
while (moreItems) {
List<String> subListOfTitles;
if (titles2.size() <= maxListSize) {
subListOfTitles = titles2;
if (titles.size() <= maxListSize) {
subListOfTitles = titles;
moreItems = false;
titles2 = new ArrayList<>();
titles = new ArrayList<>();
} else {
subListOfTitles = getSubList(titles,
maxListSize);
titles2.removeAll(subListOfTitles);
subListOfTitles = titles
.subList(0, maxListSize);
}
String url = getWbGetEntitiesUrl(siteKey,
subListOfTitles);
result.putAll(getStringEntityDocumentMap(
subListOfTitles.size(),
url, siteKey));
subListOfTitles.clear();
}
return result;
}

List<String> getSubList(List<String> list, int k) {
List<String> subList = new ArrayList<>();
k--;
while (k >= 0) {
subList.add(list.get(k));
k--;
}
return subList;
}


/**
* Creates a map of identifiers or page titles to documents retrieved via
Expand Down
Expand Up @@ -25,7 +25,6 @@
import static org.junit.Assert.assertTrue;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
Expand Down Expand Up @@ -229,6 +228,28 @@ Collections.<String> singletonList("1234567890")),
assertEquals(null, result);
}

@Test
public void testGetEntitiesTitleSplitted() throws IOException {
WikibaseDataFetcher wdf = new WikibaseDataFetcher();

MockWebResourceFetcher wrf = new MockWebResourceFetcher();
wrf.setWebResourceContentsFromResource(
wdf.getWbGetEntitiesUrl(
"enwiki",
Collections.<String> singletonList("Douglas Adams")),
"/wbgetentities-Douglas-Adams.json", this
.getClass());
wdf.webResourceFetcher = wrf;
wdf.maxListSize = 1;
Map<String, EntityDocument> result = wdf
.getEntityDocumentsByTitle("enwiki",
"false name",
"Douglas Adams", "false name");
assertEquals("Q42", result.get("Douglas Adams").getEntityId()
.getId());

}

@Test
public void testWbGetEntitiesUrlFilterAll() throws IOException {
List<String> entityIds = Arrays.asList("Q6", "Q42", "P31");
Expand All @@ -253,19 +274,4 @@ public void testWbGetEntitiesUrlFilterSome() throws IOException {
"http://www.wikidata.org/w/api.php?action=wbgetentities&format=json&props=datatype%7Clabels%7Caliases%7Cdescriptions%7Cclaims%7Csitelinks&languages=zh&sitefilter=dewiki&ids=Q6%7CQ42%7CP31",
wdf.getWbGetEntitiesUrl(entityIds));
}

@Test
public void testSublist() {
WikibaseDataFetcher wdf = new WikibaseDataFetcher();
List<String> list = new ArrayList<>();
for (int i = 1; i < 20; i++) {
list.add(Integer.toString(i));
}
List<String> sublist = wdf.getSubList(list, 5);
list.removeAll(sublist);
assertEquals(14, list.size());
sublist = wdf.getSubList(list, 5);
assertEquals(5, sublist.size());
assertTrue(sublist.contains("6"));
}
}

0 comments on commit f2f802d

Please sign in to comment.