package at.ac.univie.mminf.qskos4j.qskos;
import at.ac.univie.mminf.qskos4j.QSkos;
import at.ac.univie.mminf.qskos4j.UnknownIssueIdException;
import at.ac.univie.mminf.qskos4j.issues.Issue;
import at.ac.univie.mminf.qskos4j.util.vocab.RepositoryBuilder;
import junit.framework.Assert;
import org.junit.Before;
import org.junit.Test;
import org.openrdf.OpenRDFException;
import java.io.IOException;
import java.util.*;
public class IssueIdTest {
private QSkos qskos;
@Before
public void setUp() throws IOException, OpenRDFException
{
qskos = new QSkos();
qskos.setRepositoryConnection(new RepositoryBuilder().setUpFromTestResource("nocontent.rdf").getConnection());
}
@Test
public void getAllIssuesByIdList() {
String idList = getAllIdsAsCommaSeparatedList();
try {
qskos.getIssues(idList);
}
catch (UnknownIssueIdException e) {
Assert.fail(e.getMessage());
}
}
@Test(expected = UnknownIssueIdException.class)
public void unknownIssueIdInListTest() {
String idList = getAllIdsAsCommaSeparatedList() + ",bla";
qskos.getIssues(idList);
}
@Test
public void whiteSpacesInIssueIdListTest() {
Iterator<Issue> issueIt = qskos.getAllIssues().iterator();
String idList = issueIt.next().getId() +", "+ issueIt.next().getId();
Collection<Issue> issues = qskos.getIssues(idList);
Assert.assertEquals(2, issues.size());
}
@Test
public void ensureUniqueIssueIdsTest() {
List<Issue> allIssues = qskos.getAllIssues();
Set<String> uniqueIssueIds = new HashSet<String>();
for (Issue issue : allIssues) {
uniqueIssueIds.add(issue.getId());
}
Assert.assertEquals(allIssues.size(), uniqueIssueIds.size());
}
private String getAllIdsAsCommaSeparatedList() {
String idList = "";
Iterator<Issue> issueIt = qskos.getAllIssues().iterator();
while (issueIt.hasNext()) {
idList += issueIt.next().getId() + (issueIt.hasNext() ? "," : "");
}
return idList;
}
}