package org.genedb.querying.tmpquery;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import junit.framework.Assert;
import org.apache.log4j.Logger;
import org.genedb.db.taxon.TaxonNode;
import org.genedb.db.taxon.TaxonNodeManager;
import org.genedb.querying.core.QueryException;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.transaction.TransactionConfiguration;
import org.springframework.transaction.annotation.Transactional;
/**
*
* A testcase set up for testing HQLQuery derived classes.
*
* @author gv1
*
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:testContext.xml"})
@TransactionConfiguration
@Transactional
public class HibernateTest extends AbstractTransactionalJUnit4SpringContextTests {
private static final Logger logger = Logger.getLogger(HibernateTest.class);
@Autowired
private TaxonNodeManager taxonNodeManager;
//@Autowired
//private DateCountQuery dateCountQuery;
@Test
public void testTaxonNodeManager()
{
logger.info("Running taxon test");
TaxonNode[] taxons = { taxonNodeManager.getTaxonNodeByString("Lbraziliensis", true) };
Assert.assertTrue(taxons.length == 1);
Assert.assertNotNull(taxons[0]);
logger.debug(taxons[0].getLabel());
}
//@Test
public void testDateCountQuery() throws ParseException, QueryException
{
logger.info("Running date count test");
SimpleDateFormat dateFormat = new SimpleDateFormat( "yyyy-MM-dd" );
Date date = dateFormat.parse("2009-06-01");
TaxonNode taxonNode = taxonNodeManager.getTaxonNodeForLabel("Root");
List<TaxonNode> taxonList = taxonNode.getAllChildren();
Assert.assertTrue(taxonList.size() > 0);
//dateCountQuery.setDate(date);
//dateCountQuery.setAfter(true);
int numberOfOrganismsWithChanges = 0;
for (TaxonNode taxon : taxonList)
{
//if (! taxon.isOrganism())
continue;
//TaxonNode[] taxons = {taxon};
//dateCountQuery.setTaxons(taxons);
//@SuppressWarnings("unchecked")
//List results = dateCountQuery.getResults();
//long count = (Long) results.get(0);
//logger.trace(count);
//if (count > 0)
// numberOfOrganismsWithChanges++;
}
logger.debug("Number of organisms with changes = " + numberOfOrganismsWithChanges + " / " + taxonList.size());
Assert.assertTrue(numberOfOrganismsWithChanges > 0);
}
}