/*
* SubPropertyOfQueriesTest.java
*
* Created on Jun 30, 2008, 2:02:50 PM
*
* Description: .
*
* Copyright (C) Jan 7, 2011 reed.
*
* This program is free software; you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with this program;
* if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
package org.texai.subsumptionReasoner;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import net.sf.ehcache.CacheManager;
import org.apache.log4j.Logger;
import org.junit.After;
import org.junit.AfterClass;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.openrdf.model.URI;
import org.openrdf.model.impl.URIImpl;
import org.texai.kb.CacheInitializer;
import org.texai.kb.Constants;
import org.texai.kb.persistence.DistributedRepositoryManager;
import org.texai.kb.persistence.RDFEntityManager;
import org.texai.kb.persistence.RDFUtility;
import org.texai.kb.persistence.RDFUtility.ResourceComparator;
/**
*
* @author reed
*/
public class SubPropertyOfQueriesTest {
/** the log4j logger */
private static final Logger LOGGER = Logger.getLogger(SubPropertyOfQueriesTest.class);
/** the RDF entity manager */
private static RDFEntityManager rdfEntityManager;
public SubPropertyOfQueriesTest() {
}
@BeforeClass
public static void setUpClass() throws Exception {
CacheInitializer.initializeCaches();
rdfEntityManager = new RDFEntityManager();
}
@AfterClass
public static void tearDownClass() throws Exception {
DistributedRepositoryManager.shutDown();
CacheManager.getInstance().shutdown();
}
@Before
public void setUp() {
}
@After
public void tearDown() {
}
/**
* Test of isDirectSubPropertyOf method, of class SubPropertyOfQueries.
*/
@Test
public void testIsDirectSubPropertyOf() {
LOGGER.info("isDirectSubPropertyOf");
String repositoryName = "OpenCyc";
URI property = new URIImpl(Constants.CYC_NAMESPACE + "performedBy");
URI superPropertyTerm = new URIImpl(Constants.CYC_NAMESPACE + "doneBy");
SubPropertyOfQueries instance = new SubPropertyOfQueries(rdfEntityManager);
boolean result = instance.isDirectSubPropertyOf(repositoryName, property, superPropertyTerm);
assertEquals(true, result);
}
/**
* Test of isSubPropertyOf method, of class SubPropertyOfQueries.
*/
@Test
public void testIsSubPropertyOf() {
LOGGER.info("isSubPropertyOf");
String repositoryName = "OpenCyc";
URI property1 = new URIImpl(Constants.CYC_NAMESPACE + "performedBy");
URI property2 = new URIImpl(Constants.CYC_NAMESPACE + "doneBy");
SubPropertyOfQueries instance = new SubPropertyOfQueries(rdfEntityManager);
boolean result = instance.isSubPropertyOf(repositoryName, property1, property2);
assertEquals(true, result);
}
/**
* Test of getDirectSuperProperties method, of class SubPropertyOfQueries.
*/
@Test
public void testGetDirectSuperProperties() {
LOGGER.info("getDirectSuperProperties");
String repositoryName = "OpenCyc";
URI term = new URIImpl(Constants.CYC_NAMESPACE + "doneBy");
SubPropertyOfQueries instance = new SubPropertyOfQueries(rdfEntityManager);
Set<URI> result = instance.getDirectSuperProperties(repositoryName, term);
List<URI> orderedResult = new ArrayList<>();
orderedResult.addAll(result);
Collections.sort(orderedResult, new ResourceComparator());
assertTrue(orderedResult.size() > 2);
LOGGER.info(RDFUtility.formatResources(orderedResult));
}
/**
* Test of getSuperProperties method, of class SubPropertyOfQueries.
*/
@Test
public void testGetSuperProperties_String_URI() {
LOGGER.info("getSuperProperties");
String repositoryName = "OpenCyc";
URI term = new URIImpl(Constants.CYC_NAMESPACE + "performedBy");
SubPropertyOfQueries instance = new SubPropertyOfQueries(rdfEntityManager);
Set<URI> result = instance.getSuperProperties(repositoryName, term);
List<URI> orderedResult = new ArrayList<>();
orderedResult.addAll(result);
Collections.sort(orderedResult, new ResourceComparator());
assertTrue(orderedResult.size() > 2);
LOGGER.info(RDFUtility.formatResources(orderedResult));
}
/**
* Test of getDirectSubProperties method, of class SubPropertyOfQueries.
*/
@Test
public void testGetDirectSubProperties() {
LOGGER.info("getDirectSubProperties");
String repositoryName = "OpenCyc";
URI term = new URIImpl(Constants.CYC_NAMESPACE + "doneBy");
SubPropertyOfQueries instance = new SubPropertyOfQueries(rdfEntityManager);
Set<URI> result = instance.getDirectSubProperties(repositoryName, term);
List<URI> orderedResult = new ArrayList<>();
orderedResult.addAll(result);
Collections.sort(orderedResult, new ResourceComparator());
assertTrue(orderedResult.size() > 2);
LOGGER.info(RDFUtility.formatResources(orderedResult));
}
/**
* Test of clearCaches method, of class SubPropertyOfQueries.
*/
@Test
public void testClearCaches() {
LOGGER.info("clearCaches");
SubPropertyOfQueries instance = new SubPropertyOfQueries(rdfEntityManager);
instance.clearCaches();
}
}