Author: tv
Date: Sat Jul 25 19:24:06 2015
New Revision: 1692639
URL: http://svn.apache.org/r1692639
Log:
Add QuartzSchedulerService,
Rename TurbineSchedulerService to TorqueSchedulerService
Added:
turbine/core/trunk/src/test/org/apache/turbine/services/schedule/QuartzSchedulerServiceTest.java
(with props)
Modified:
turbine/core/trunk/src/test/org/apache/turbine/services/schedule/JobEntryTest.java
turbine/core/trunk/src/test/org/apache/turbine/services/schedule/TurbineNonPersistentSchedulerServiceTest.java
Modified:
turbine/core/trunk/src/test/org/apache/turbine/services/schedule/JobEntryTest.java
URL:
http://svn.apache.org/viewvc/turbine/core/trunk/src/test/org/apache/turbine/services/schedule/JobEntryTest.java?rev=1692639&r1=1692638&r2=1692639&view=diff
==============================================================================
---
turbine/core/trunk/src/test/org/apache/turbine/services/schedule/JobEntryTest.java
(original)
+++
turbine/core/trunk/src/test/org/apache/turbine/services/schedule/JobEntryTest.java
Sat Jul 25 19:24:06 2015
@@ -1,8 +1,10 @@
package org.apache.turbine.services.schedule;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
+
import org.junit.Before;
import org.junit.Test;
-import static org.junit.Assert.*;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -23,9 +25,6 @@ import static org.junit.Assert.*;
* under the License.
*/
-
-//import org.apache.turbine.test.BaseTestCase;
-
/**
* Unit testing for Job Entries. Ensure that removing NumberKey from
TurbineNonPersistentScheduler
* still works.
@@ -33,7 +32,7 @@ import static org.junit.Assert.*;
* @author <a href="mailto:[email protected]">Eric Pugh</a>
* @version $Id: JobEntryTest.java 615328 2008-01-25 20:25:05Z tv $
*/
-public class JobEntryTest
+public class JobEntryTest
{
private JobEntry je1;
@@ -44,34 +43,22 @@ public class JobEntryTest
{
// Add a new job entry
- je1 = new JobEntry();
+ je1 = new JobEntryNonPersistent();
je1.setJobId(1);
- je1.setSecond(0);
- je1.setMinute(1);
- je1.setHour(-1);
- je1.setDayOfMonth(-1);
- je1.setWeekDay(-1);
- je1.setTask("SimpleJob");
- je2 = new JobEntry();
+ je2 = new JobEntryNonPersistent();
je2.setJobId(2);
- je2.setSecond(0);
- je2.setMinute(1);
- je2.setHour(-1);
- je2.setDayOfMonth(-1);
- je2.setWeekDay(-1);
- je2.setTask("SimpleJob");
}
/**
- * Tests the ability to enable and disable the service.
+ * Tests if the job entries are comparable
*/
@Test public void testCompareTo()
{
- assertFalse(je1.equals(je2));
+ assertNotEquals(je1.compareTo(je2), 0);
je2.setJobId(je1.getJobId());
- assertTrue(je1.equals(je2));
+ assertEquals(je1.compareTo(je2), 0);
}
Added:
turbine/core/trunk/src/test/org/apache/turbine/services/schedule/QuartzSchedulerServiceTest.java
URL:
http://svn.apache.org/viewvc/turbine/core/trunk/src/test/org/apache/turbine/services/schedule/QuartzSchedulerServiceTest.java?rev=1692639&view=auto
==============================================================================
---
turbine/core/trunk/src/test/org/apache/turbine/services/schedule/QuartzSchedulerServiceTest.java
(added)
+++
turbine/core/trunk/src/test/org/apache/turbine/services/schedule/QuartzSchedulerServiceTest.java
Sat Jul 25 19:24:06 2015
@@ -0,0 +1,171 @@
+package org.apache.turbine.services.schedule;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import org.apache.turbine.modules.scheduledjobs.SimpleJob;
+import org.apache.turbine.test.BaseTestCase;
+import org.apache.turbine.util.TurbineConfig;
+import org.apache.turbine.util.TurbineException;
+import org.hamcrest.CoreMatchers;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.quartz.CronScheduleBuilder;
+import org.quartz.JobBuilder;
+import org.quartz.JobDetail;
+import org.quartz.JobKey;
+import org.quartz.Trigger;
+import org.quartz.TriggerBuilder;
+
+/**
+ * Unit testing for the quartz implementation of the scheduler service.
+ *
+ * @author <a href="mailto:[email protected]">Thomas Vandahl</a>
+ */
+public class QuartzSchedulerServiceTest extends BaseTestCase
+{
+ private TurbineConfig tc = null;
+
+ @Before
+ public void setUp() throws Exception
+ {
+ tc =
+ new TurbineConfig(
+ ".",
+ "/conf/test/TestFulcrumComponents.properties");
+ tc.initialize();
+ }
+
+ @After
+ public void tearDown() throws Exception
+ {
+ if (tc != null)
+ {
+ tc.dispose();
+ }
+ }
+
+ /**
+ * Tests the ability to enable and disable the service.
+ */
+ @Test public void testEnableDisable()
+ {
+ try
+ {
+ TurbineScheduler.startScheduler();
+ assertTrue(TurbineScheduler.isEnabled());
+
+ TurbineScheduler.stopScheduler();
+ assertFalse(TurbineScheduler.isEnabled());
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ fail();
+ }
+ }
+
+ /**
+ * Tests the ability to add and remove a job. A list of jobs will be
obtained from
+ * the service to determine if the operation were successful.
+ */
+ @Test public void testAddRemoveJob()
+ {
+ try
+ {
+ // get the current job count for later comparison
+ int jobCount = TurbineScheduler.listJobs().size();
+
+ // Add a new job entry
+ JobDetail jd = JobBuilder.newJob(JobEntryQuartz.class)
+ .withIdentity("SimpleJob1",
JobEntryQuartz.DEFAULT_JOB_GROUP_NAME)
+ .build();
+ Trigger t = TriggerBuilder.newTrigger()
+ .withIdentity("SimpleJob1",
JobEntryQuartz.DEFAULT_JOB_GROUP_NAME)
+ .withSchedule(CronScheduleBuilder.cronSchedule("10 * * * *
?"))
+ .forJob(jd)
+ .build();
+ JobEntryQuartz je = new JobEntryQuartz(t, jd);
+ je.setJobId(jobCount + 1);
+
+ TurbineScheduler.addJob(je);
+ assertEquals(jobCount + 1, TurbineScheduler.listJobs().size());
+
+ TurbineScheduler.removeJob(je);
+ assertEquals(jobCount, TurbineScheduler.listJobs().size());
+
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ fail();
+ }
+ }
+
+ /**
+ * Tests the ability to retrieve the job added during initialization.
+ */
+ @Test public void testGetJob()
+ {
+ try
+ {
+ JobKey jk = new JobKey("SimpleJob",
JobEntryQuartz.DEFAULT_JOB_GROUP_NAME);
+ JobEntry je = TurbineScheduler.getJob(jk.hashCode());
+ assertThat(je,
CoreMatchers.instanceOf(JobEntryQuartz.class));
+ JobEntryQuartz jeq = (JobEntryQuartz)je;
+ assertEquals(jeq.getJobTrigger().getJobKey(), jk);
+ assertEquals(jeq.getTask(), "SimpleJob");
+ }
+ catch (TurbineException e)
+ {
+ e.printStackTrace();
+ fail();
+ }
+ }
+
+ /**
+ * Test to make sure a job actually runs.
+ */
+ @Test public void testRunningJob()
+ {
+ try
+ {
+ int beforeCount = SimpleJob.getCounter();
+ Thread.sleep(1200);
+ int afterCount = SimpleJob.getCounter();
+ assertTrue(beforeCount < afterCount);
+
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ fail();
+ }
+ }
+
+}
Propchange:
turbine/core/trunk/src/test/org/apache/turbine/services/schedule/QuartzSchedulerServiceTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified:
turbine/core/trunk/src/test/org/apache/turbine/services/schedule/TurbineNonPersistentSchedulerServiceTest.java
URL:
http://svn.apache.org/viewvc/turbine/core/trunk/src/test/org/apache/turbine/services/schedule/TurbineNonPersistentSchedulerServiceTest.java?rev=1692639&r1=1692638&r2=1692639&view=diff
==============================================================================
---
turbine/core/trunk/src/test/org/apache/turbine/services/schedule/TurbineNonPersistentSchedulerServiceTest.java
(original)
+++
turbine/core/trunk/src/test/org/apache/turbine/services/schedule/TurbineNonPersistentSchedulerServiceTest.java
Sat Jul 25 19:24:06 2015
@@ -21,16 +21,22 @@ package org.apache.turbine.services.sche
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
import org.apache.commons.configuration.BaseConfiguration;
import org.apache.commons.configuration.Configuration;
-import org.apache.turbine.modules.scheduledjob.SimpleJob;
+import org.apache.turbine.modules.scheduledjobs.SimpleJob;
import org.apache.turbine.services.ServiceManager;
import org.apache.turbine.services.TurbineServices;
import org.apache.turbine.util.TurbineException;
+import org.hamcrest.CoreMatchers;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
-import static org.junit.Assert.*;
/**
* Unit testing for the non-persistent implementation of the scheduler service.
@@ -107,7 +113,7 @@ public class TurbineNonPersistentSchedul
int jobCount = TurbineScheduler.listJobs().size();
// Add a new job entry
- JobEntry je = new JobEntry();
+ JobEntryNonPersistent je = new JobEntryNonPersistent();
je.setJobId(jobCount + 1);
je.setSecond(0);
je.setMinute(1);
@@ -138,13 +144,15 @@ public class TurbineNonPersistentSchedul
try
{
JobEntry je = TurbineScheduler.getJob(1);
- assertEquals(je.getJobId(), 1);
- assertEquals(je.getSecond(), 10);
- assertEquals(je.getMinute(), -1);
- assertEquals(je.getHour(), -1);
- assertEquals(je.getDayOfMonth(), -1);
- assertEquals(je.getWeekDay(), -1);
- assertEquals(je.getTask(), "SimpleJob");
+ assertThat(je,
CoreMatchers.instanceOf(JobEntryNonPersistent.class));
+ JobEntryNonPersistent jenp = (JobEntryNonPersistent)je;
+ assertEquals(jenp.getJobId(), 1);
+ assertEquals(jenp.getSecond(), 10);
+ assertEquals(jenp.getMinute(), -1);
+ assertEquals(jenp.getHour(), -1);
+ assertEquals(jenp.getDayOfMonth(), -1);
+ assertEquals(jenp.getWeekDay(), -1);
+ assertEquals(jenp.getTask(), "SimpleJob");
}
catch (TurbineException e)
{
@@ -153,16 +161,19 @@ public class TurbineNonPersistentSchedul
}
}
- /** Test to make sure a job actually runs. Currently not work.
- * @TODO Must get testRunningJob to work.
- *
+ /**
+ * Test to make sure a job actually runs.
*/
- @Ignore public void OFFtestRunningJob()
+ @Ignore // Doesn't work without the complete Turbine
+ @Test public void testRunningJob()
{
+ TurbineScheduler.startScheduler();
+ assertTrue(TurbineScheduler.isEnabled());
+
try
{
int beforeCount = SimpleJob.getCounter();
- Thread.sleep(120000);
+ Thread.sleep(12000);
int afterCount = SimpleJob.getCounter();
assertTrue(beforeCount < afterCount);