package nl.ipo.cds.dao; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import javax.inject.Inject; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import nl.idgis.commons.jobexecutor.Job; import nl.idgis.commons.jobexecutor.JobLogger; import nl.idgis.commons.jobexecutor.JobLogger.LogLevel; import nl.ipo.cds.categories.IntegrationTests; import nl.ipo.cds.dao.impl.JobDaoImpl; import nl.ipo.cds.domain.ImportJob; import nl.ipo.cds.domain.JobLog; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.Test; import org.junit.experimental.categories.Category; import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.transaction.TransactionConfiguration; import org.springframework.transaction.annotation.Transactional; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration({ "classpath:/nl/ipo/cds/dao/dao-applicationContext.xml", "classpath:/nl/ipo/cds/dao/dataSource-applicationContext.xml", "classpath:/nl/ipo/cds/context/propertyConfigurer-test.xml" }) @TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true) @Category(IntegrationTests.class) public class JobLogTest { private static final Log logger = LogFactory.getLog(JobLogTest.class); // developer log @PersistenceContext(unitName = "cds") private EntityManager entityManager; @Inject private JobDaoImpl jobDao; @Inject private ManagerDao managerDao; private Job currentJob; public void createJob() { currentJob = new ImportJob (); jobDao.create (currentJob); logger.debug("\t### after create job.id: " + currentJob.getId()); assertNotNull (currentJob.getId ()); } // @After // public void deleteJob() throws Exception { // if (currentJob!=null) // jobDao.delete(currentJob); // } @Test @Transactional public void testPutLogItem () { createJob(); String contextStr = "{\"GMLID\":31415269,\"X\":0.0,\"Y\":1.0}";// JSON coding of gml_id value JobLog joblog = jobDao.createLogItem (currentJob, "Hello, world!", "A", LogLevel.ERROR, contextStr); managerDao.create(joblog); final JobLog log = entityManager .createQuery ("from JobLog as log where log.job = ?1", JobLog.class) .setParameter (1, currentJob) .getSingleResult (); assertNotNull (log); assertEquals (currentJob.getId (), log.getJob ().getId ()); assertEquals ("Hello, world!", log.getMessage ()); assertEquals ("A", log.getKey ()); assertEquals (LogLevel.ERROR, log.getLogLevel ()); System.out.println(String.format ("\tCtx=%s", log.getContext())); assertTrue(log.getContext ().contains("31415269")); } @Test @Transactional public void testLogitemEmpty(){ createJob(); try { JobLog joblog = jobDao.createLogItem (currentJob, "MSG", "KEY", JobLogger.LogLevel.WARNING, ""); managerDao.create(joblog); } catch (Exception e) { e.printStackTrace(); fail (); } } @Test @Transactional public void testLogitemNull(){ createJob(); try { JobLog joblog = jobDao.createLogItem (currentJob, "MSG", "KEY", JobLogger.LogLevel.ERROR, null); managerDao.create(joblog); } catch (Exception e) { e.printStackTrace(); fail (); } } @Test public void test(){ } }