package at.ac.univie.mminf.qskos4j.issues;
import at.ac.univie.mminf.qskos4j.issues.concepts.InvolvedConcepts;
import at.ac.univie.mminf.qskos4j.issues.language.IncompleteLanguageCoverage;
import at.ac.univie.mminf.qskos4j.issues.language.util.LanguageCoverage;
import at.ac.univie.mminf.qskos4j.util.vocab.RepositoryBuilder;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.openrdf.OpenRDFException;
import org.openrdf.model.Resource;
import org.openrdf.model.Value;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
public class IncompleteLanguageCoverageTest {
private IncompleteLanguageCoverage incompleteLanguageCoverage;
@Before
public void setUp() throws OpenRDFException, IOException {
incompleteLanguageCoverage = new IncompleteLanguageCoverage(new LanguageCoverage(new InvolvedConcepts()));
incompleteLanguageCoverage.setRepositoryConnection(new RepositoryBuilder().setUpFromTestResource("components_1.rdf").getConnection());
}
@Test
public void testIncompleteLanguageCoverageCount() throws OpenRDFException
{
Map<Resource, Collection<String>> incompleteLangCoverage = incompleteLanguageCoverage.getResult().getData();
Assert.assertEquals(13, incompleteLangCoverage.size());
}
@Test
public void testExistResourcesNotHavingEnglishLabels()
throws OpenRDFException
{
Map<Resource, Collection<String>> incompleteLangCoverage = incompleteLanguageCoverage.getResult().getData();
boolean englishTagFound = false;
for (Collection<String> missingLanguages : incompleteLangCoverage.values()) {
englishTagFound = missingLanguages.contains("en");
if (englishTagFound) break;
}
Assert.assertFalse(englishTagFound);
}
@Test
public void testResourcesMissingOnlyFrenchLabelsCount()
throws OpenRDFException
{
Map<Resource, Collection<String>> incompleteLangCoverage = incompleteLanguageCoverage.getResult().getData();
List<Value> foundResources = new ArrayList<>();
for (Value resource : incompleteLangCoverage.keySet()) {
Collection<String> missingLanguages = incompleteLangCoverage.get(resource);
if (missingLanguages.size() == 1 && missingLanguages.contains("fr")) {
foundResources.add(resource);
}
}
Assert.assertEquals(2, foundResources.size());
}
}