package com.enioka.jqm.tools; import java.io.File; import org.apache.commons.io.FileUtils; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import com.enioka.jqm.api.JobRequest; import com.enioka.jqm.test.helpers.CreationTools; import com.enioka.jqm.test.helpers.TestHelpers; public class SpringTest extends JqmBaseTest { @Before public void prepare() { FileUtils.deleteQuietly(new File("./target/TEST.db")); } /** * No specific CL - isolated launch, using normal runners. Still, all launches work on the same database. */ @Test public void testSimpleSingleLaunch() { CreationTools.createDatabaseProp("jdbc/spring_ds", "org.h2.Driver", "jdbc:h2:./target/TEST.db;DB_CLOSE_ON_EXIT=FALSE", "sa", "sa", cnx, "SELECT 1", null, true); CreationTools.createJobDef(null, true, "com.enioka.jqm.test.spring1.Application", null, "jqm-tests/jqm-test-spring-1/target/test.jar", TestHelpers.qVip, -1, "TestSpring1", null, null, null, null, null, false, cnx, null); addAndStartEngine(); // First job creates the database, so let it finish (test artifact). JobRequest.create("TestSpring1", null).submit(); TestHelpers.waitFor(1, 30000, cnx); JobRequest.create("TestSpring1", null).submit(); JobRequest.create("TestSpring1", null).submit(); TestHelpers.waitFor(3, 60000, cnx); Assert.assertEquals(3, TestHelpers.getOkCount(cnx)); Assert.assertEquals(0, TestHelpers.getNonOkCount(cnx)); } /** * Using the Spring runner and an XML job def. Actually uses test-spring-2. */ @Test public void testSpringRunner() { try { XmlJobDefParser.parse("target/payloads/jqm-test-xml/xmlspring.xml", cnx); } catch (JqmEngineException e) { jqmlogger.error("could not parse XML", e); Assert.fail(); } JobRequest.create("Job1", null).addParameter("key1", "value1").submit(); addAndStartEngine(); TestHelpers.waitFor(1, 10000, cnx); JobRequest.create("Job2", null).addParameter("key1", "value1").submit(); TestHelpers.waitFor(2, 10000, cnx); Assert.assertEquals(2, TestHelpers.getOkCount(cnx)); Assert.assertEquals(0, TestHelpers.getNonOkCount(cnx)); } }