package org.weso.wesearch.model.impl;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import org.junit.Before;
import org.junit.Test;
import org.weso.utils.OntoModelException;
import org.weso.wesearch.model.OntoModelWrapper;
import com.hp.hpl.jena.ontology.OntModel;
public class TestJenaOntoModelWrapper {
private String[] uris = {"http://xmlns.com/foaf/spec/index.rdf"};
private URLOntologyLoader loader = null;
@Before
public void initialize() {
System.setProperty("http.proxyHost", "proxy.uniovi.es");
System.setProperty("http.proxyPort", "8888");
loader = new URLOntologyLoader(uris);
}
@Test
public void testJenaOntoModelWrapperWithNull() throws SecurityException,
NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
JenaOntoModelWrapper modelWrapper = new JenaOntoModelWrapper(null);
Field f = JenaOntoModelWrapper.class.getDeclaredField("loader");
f.setAccessible(true);
assertNull(f.get(modelWrapper));
}
@Test
public void testJenaOntoModelWrapperWithoutNull() throws SecurityException,
NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
JenaOntoModelWrapper modelWrapper = new JenaOntoModelWrapper(loader);
Field f = JenaOntoModelWrapper.class.getDeclaredField("loader");
f.setAccessible(true);
assertNotNull(f.get(modelWrapper));
assertEquals(loader, f.get(modelWrapper));
}
@Test
public void testGetModel() throws OntoModelException {
JenaOntoModelWrapper modelWrapper = new JenaOntoModelWrapper(loader);
assertNotNull(modelWrapper.getModel());
assertTrue(modelWrapper.getModel() instanceof OntModel);
}
@Test
public void testCreateJenaModel() throws SecurityException,
NoSuchMethodException, IllegalArgumentException, IllegalAccessException,
InvocationTargetException {
JenaOntoModelWrapper modelWrapper = new JenaOntoModelWrapper(loader);
Method method = JenaOntoModelWrapper.class.getDeclaredMethod(
"createJenaModel");
method.setAccessible(true);
Object obj = method.invoke(modelWrapper);
assertNotNull(obj);
assertTrue(obj instanceof OntModel);
assertFalse(((OntModel)obj).isEmpty());
}
@Test
public void testGetLoaderNull() {
OntoModelWrapper wrapper = new JenaOntoModelWrapper(null);
assertNull(wrapper.getLoader());
}
@Test
public void testGetLoaderNotNull() {
OntoModelWrapper wrapper = new JenaOntoModelWrapper(loader);
assertNotNull(wrapper.getLoader());
assertTrue(wrapper.getLoader() instanceof URLOntologyLoader);
}
}