BATCH-671: Added a new class, JobParameter, that represents an individual parameter. Also converted BatchStatus and ParameterType typesafe enumerations to java 5 enums.
This commit is contained in:
@@ -15,42 +15,39 @@
|
||||
*/
|
||||
package org.springframework.batch.core;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.ObjectInputStream;
|
||||
import java.io.ObjectOutputStream;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* @author Dave Syer
|
||||
*
|
||||
*/
|
||||
public class BatchStatusTests extends TestCase {
|
||||
public class BatchStatusTests {
|
||||
|
||||
/**
|
||||
* Test method for
|
||||
* {@link org.springframework.batch.core.BatchStatus#toString()}.
|
||||
*/
|
||||
@Test
|
||||
public void testToString() {
|
||||
assertEquals("FAILED", BatchStatus.FAILED.toString());
|
||||
}
|
||||
|
||||
/**
|
||||
* Test method for
|
||||
* {@link org.springframework.batch.core.BatchStatus#getStatus(java.lang.String)}.
|
||||
*/
|
||||
@Test
|
||||
public void testGetStatus() {
|
||||
assertEquals(BatchStatus.FAILED, BatchStatus.getStatus(BatchStatus.FAILED.toString()));
|
||||
assertEquals(BatchStatus.FAILED, BatchStatus.valueOf(BatchStatus.FAILED.toString()));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test method for
|
||||
* {@link org.springframework.batch.core.BatchStatus#getStatus(java.lang.String)}.
|
||||
*/
|
||||
@Test
|
||||
public void testGetStatusWrongCode() {
|
||||
try {
|
||||
BatchStatus.getStatus("foo");
|
||||
BatchStatus.valueOf("foo");
|
||||
fail();
|
||||
}
|
||||
catch (IllegalArgumentException ex) {
|
||||
@@ -58,14 +55,12 @@ public class BatchStatusTests extends TestCase {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test method for
|
||||
* {@link org.springframework.batch.core.BatchStatus#getStatus(java.lang.String)}.
|
||||
*/
|
||||
@Test(expected=NullPointerException.class)
|
||||
public void testGetStatusNullCode() {
|
||||
assertNull(BatchStatus.getStatus(null));
|
||||
assertNull(BatchStatus.valueOf(null));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSerialization() throws Exception {
|
||||
|
||||
ByteArrayOutputStream bout = new ByteArrayOutputStream();
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
package org.springframework.batch.core;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* @author Lucas Ward
|
||||
*
|
||||
*/
|
||||
public class JobParameterTests {
|
||||
|
||||
JobParameter jobParameter;
|
||||
|
||||
@Test
|
||||
public void testStringParameter(){
|
||||
jobParameter = new JobParameter("test");
|
||||
assertEquals("test", jobParameter.getValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLongParameter(){
|
||||
jobParameter = new JobParameter(1L);
|
||||
assertEquals(1L, jobParameter.getValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDoubleParameter(){
|
||||
jobParameter = new JobParameter(1.1);
|
||||
assertEquals(1.1, jobParameter.getValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDateParameter(){
|
||||
Date epoch = new Date(0L);
|
||||
jobParameter = new JobParameter(epoch);
|
||||
assertEquals(new Date(0L), jobParameter.getValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEquals(){
|
||||
jobParameter = new JobParameter("test");
|
||||
JobParameter testParameter = new JobParameter("test");
|
||||
assertTrue(jobParameter.equals(testParameter));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -24,7 +24,7 @@ public class JobParametersBuilderTests extends TestCase {
|
||||
parametersBuilder.addString("STRING", "string value");
|
||||
JobParameters parameters = parametersBuilder.toJobParameters();
|
||||
assertEquals(date, parameters.getDate("SCHEDULE_DATE"));
|
||||
assertEquals(new Long(1), parameters.getLong("LONG"));
|
||||
assertEquals(1L, parameters.getLong("LONG"));
|
||||
assertEquals("string value", parameters.getString("STRING"));
|
||||
}
|
||||
|
||||
@@ -33,9 +33,9 @@ public class JobParametersBuilderTests extends TestCase {
|
||||
parametersBuilder.addLong("LONG", new Long(1));
|
||||
parametersBuilder.addString("STRING", "string value");
|
||||
Iterator<String> parameters = parametersBuilder.toJobParameters().getParameters().keySet().iterator();
|
||||
assertEquals("STRING", parameters.next());
|
||||
assertEquals("LONG", parameters.next());
|
||||
assertEquals("SCHEDULE_DATE", parameters.next());
|
||||
assertEquals("LONG", parameters.next());
|
||||
assertEquals("STRING", parameters.next());
|
||||
}
|
||||
|
||||
public void testOrderedStrings(){
|
||||
|
||||
@@ -20,14 +20,6 @@ public class JobParametersTests extends TestCase {
|
||||
|
||||
JobParameters parameters;
|
||||
|
||||
Map<String, String> stringMap;
|
||||
|
||||
Map<String, Long> longMap;
|
||||
|
||||
Map<String, Date> dateMap;
|
||||
|
||||
Map<String, Double> doubleMap;
|
||||
|
||||
Date date1 = new Date(4321431242L);
|
||||
|
||||
Date date2 = new Date(7809089900L);
|
||||
@@ -39,118 +31,28 @@ public class JobParametersTests extends TestCase {
|
||||
|
||||
private JobParameters getNewParameters() {
|
||||
|
||||
stringMap = new HashMap<String, String>();
|
||||
stringMap.put("string.key1", "value1");
|
||||
stringMap.put("string.key2", "value2");
|
||||
Map<String, JobParameter> parameterMap = new HashMap<String, JobParameter>();
|
||||
parameterMap.put("string.key1", new JobParameter("value1"));
|
||||
parameterMap.put("string.key2", new JobParameter("value2"));
|
||||
parameterMap.put("long.key1", new JobParameter(1L));
|
||||
parameterMap.put("long.key2", new JobParameter(2L));
|
||||
parameterMap.put("double.key1", new JobParameter(1.1));
|
||||
parameterMap.put("double.key2", new JobParameter(2.2));
|
||||
parameterMap.put("date.key1", new JobParameter(date1));
|
||||
parameterMap.put("date.key2", new JobParameter(date2));
|
||||
|
||||
longMap = new HashMap<String, Long>();
|
||||
longMap.put("long.key1", new Long(1));
|
||||
longMap.put("long.key2", new Long(2));
|
||||
|
||||
doubleMap = new HashMap<String, Double>();
|
||||
doubleMap.put("double.key1", new Double(1.1));
|
||||
doubleMap.put("double.key2", new Double(2.2));
|
||||
|
||||
dateMap = new HashMap<String, Date>();
|
||||
dateMap.put("date.key1", date1);
|
||||
dateMap.put("date.key2", date2);
|
||||
|
||||
return new JobParameters(stringMap, longMap, doubleMap, dateMap);
|
||||
return new JobParameters(parameterMap);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public void testBadLongKeyException() throws Exception {
|
||||
|
||||
Map badLongMap = new HashMap();
|
||||
badLongMap.put(new Long(0), new Long(1));
|
||||
|
||||
try {
|
||||
new JobParameters(stringMap, badLongMap, doubleMap, dateMap);
|
||||
fail();
|
||||
}
|
||||
catch (IllegalArgumentException ex) {
|
||||
// expected
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public void testBadLongConstructorException() throws Exception {
|
||||
|
||||
Map badLongMap = new HashMap();
|
||||
badLongMap.put("key", "bad long");
|
||||
|
||||
try {
|
||||
new JobParameters(stringMap, badLongMap, doubleMap, dateMap);
|
||||
fail();
|
||||
}
|
||||
catch (IllegalArgumentException ex) {
|
||||
// expected
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public void testBadDoubleConstructorException() throws Exception {
|
||||
|
||||
Map badDoubleMap = new HashMap();
|
||||
badDoubleMap.put("key", "bad double");
|
||||
|
||||
try {
|
||||
new JobParameters(stringMap, longMap, badDoubleMap, dateMap);
|
||||
fail();
|
||||
}
|
||||
catch (IllegalArgumentException ex) {
|
||||
// expected
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public void testBadStringConstructorException() throws Exception {
|
||||
|
||||
Map badMap = new HashMap();
|
||||
badMap.put("key", new Integer(2));
|
||||
|
||||
try {
|
||||
new JobParameters(badMap, longMap, doubleMap, dateMap);
|
||||
fail();
|
||||
}
|
||||
catch (IllegalArgumentException ex) {
|
||||
// expected
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public void testBadDateConstructorException() throws Exception {
|
||||
|
||||
Map badMap = new HashMap();
|
||||
badMap.put("key", new java.sql.Date(System.currentTimeMillis()));
|
||||
|
||||
try {
|
||||
new JobParameters(stringMap, longMap, doubleMap, badMap);
|
||||
fail();
|
||||
}
|
||||
catch (IllegalArgumentException ex) {
|
||||
// expected
|
||||
}
|
||||
}
|
||||
|
||||
public void testGetString() {
|
||||
assertEquals("value1", parameters.getString("string.key1"));
|
||||
assertEquals("value2", parameters.getString("string.key2"));
|
||||
}
|
||||
|
||||
public void testGetStringParameters() {
|
||||
assertEquals("value1", parameters.getStringParameters().get("string.key1"));
|
||||
assertEquals("value2", parameters.getStringParameters().get("string.key2"));
|
||||
}
|
||||
|
||||
public void testGetLong() {
|
||||
assertEquals(new Long(1), parameters.getLong("long.key1"));
|
||||
assertEquals(new Long(2), parameters.getLong("long.key2"));
|
||||
}
|
||||
|
||||
public void testGetLongParameters() {
|
||||
assertEquals(new Long(1), parameters.getLongParameters().get("long.key1"));
|
||||
assertEquals(new Long(2), parameters.getLongParameters().get("long.key2"));
|
||||
assertEquals(1L, parameters.getLong("long.key1"));
|
||||
assertEquals(2L, parameters.getLong("long.key2"));
|
||||
}
|
||||
|
||||
public void testGetDouble() {
|
||||
@@ -158,21 +60,11 @@ public class JobParametersTests extends TestCase {
|
||||
assertEquals(new Double(2.2), parameters.getDouble("double.key2"));
|
||||
}
|
||||
|
||||
public void testGetDoubleParameters() {
|
||||
assertEquals(new Double(1.1), parameters.getDoubleParameters().get("double.key1"));
|
||||
assertEquals(new Double(2.2), parameters.getDoubleParameters().get("double.key2"));
|
||||
}
|
||||
|
||||
public void testGetDate() {
|
||||
assertEquals(date1, parameters.getDate("date.key1"));
|
||||
assertEquals(date2, parameters.getDate("date.key2"));
|
||||
}
|
||||
|
||||
public void testGetDateParameters() {
|
||||
assertEquals(date1, parameters.getDateParameters().get("date.key1"));
|
||||
assertEquals(date2, parameters.getDateParameters().get("date.key2"));
|
||||
}
|
||||
|
||||
public void testIsEmptyWhenEmpty() throws Exception {
|
||||
assertTrue(new JobParameters().isEmpty());
|
||||
}
|
||||
@@ -204,35 +96,29 @@ public class JobParametersTests extends TestCase {
|
||||
|
||||
public void testToStringOrder() {
|
||||
|
||||
Map<String, Object> props = parameters.getParameters();
|
||||
Map<String, JobParameter> props = parameters.getParameters();
|
||||
StringBuffer stringBuilder = new StringBuffer();
|
||||
for (Entry<?, ?> entry : props.entrySet()) {
|
||||
for (Entry<String, JobParameter> entry : props.entrySet()) {
|
||||
stringBuilder.append(entry.toString() + ";");
|
||||
}
|
||||
|
||||
String string1 = stringBuilder.toString();
|
||||
|
||||
stringMap = new HashMap<String, String>();
|
||||
stringMap.put("string.key2", "value2");
|
||||
stringMap.put("string.key1", "value1");
|
||||
|
||||
longMap = new HashMap<String, Long>();
|
||||
longMap.put("long.key2", new Long(2));
|
||||
longMap.put("long.key1", new Long(1));
|
||||
|
||||
doubleMap = new HashMap<String, Double>();
|
||||
doubleMap.put("double.key2", new Double(2.2));
|
||||
doubleMap.put("double.key1", new Double(1.1));
|
||||
|
||||
dateMap = new HashMap<String, Date>();
|
||||
dateMap.put("date.key2", date2);
|
||||
dateMap.put("date.key1", date1);
|
||||
|
||||
JobParameters testProps = new JobParameters(stringMap, longMap, doubleMap, dateMap);
|
||||
Map<String, JobParameter> parameterMap = new HashMap<String, JobParameter>();
|
||||
parameterMap.put("string.key2", new JobParameter("value2"));
|
||||
parameterMap.put("string.key1", new JobParameter("value1"));
|
||||
parameterMap.put("long.key2", new JobParameter(2L));
|
||||
parameterMap.put("long.key1", new JobParameter(1L));
|
||||
parameterMap.put("double.key2", new JobParameter(2.2));
|
||||
parameterMap.put("double.key1", new JobParameter(1.1));
|
||||
parameterMap.put("date.key2", new JobParameter(date2));
|
||||
parameterMap.put("date.key1", new JobParameter(date1));
|
||||
|
||||
JobParameters testProps = new JobParameters(parameterMap);
|
||||
|
||||
props = testProps.getParameters();
|
||||
stringBuilder = new StringBuffer();
|
||||
for (Entry<?, ?> entry : props.entrySet()) {
|
||||
for (Entry<String, JobParameter> entry : props.entrySet()) {
|
||||
stringBuilder.append(entry.toString() + ";");
|
||||
}
|
||||
String string2 = stringBuilder.toString();
|
||||
|
||||
@@ -49,7 +49,7 @@ public class DefaultJobParametersConverterTests extends TestCase {
|
||||
JobParameters props = factory.getJobParameters(StringUtils.splitArrayElementsIntoProperties(args, "="));
|
||||
assertNotNull(props);
|
||||
assertEquals("myKey", props.getString("job.key"));
|
||||
assertEquals(new Long(33243243L), props.getLong("vendor.id"));
|
||||
assertEquals(33243243L, props.getLong("vendor.id"));
|
||||
Date date = dateFormat.parse("01/23/2008");
|
||||
assertEquals(date, props.getDate("schedule.date"));
|
||||
}
|
||||
@@ -85,7 +85,7 @@ public class DefaultJobParametersConverterTests extends TestCase {
|
||||
factory.setNumberFormat(new DecimalFormat("#,###"));
|
||||
JobParameters props = factory.getJobParameters(StringUtils.splitArrayElementsIntoProperties(args, "="));
|
||||
assertNotNull(props);
|
||||
assertEquals(1000L, props.getLong("value").longValue());
|
||||
assertEquals(1000L, props.getLong("value"));
|
||||
}
|
||||
|
||||
public void testGetParametersWithBogusLong() throws Exception {
|
||||
@@ -134,7 +134,7 @@ public class DefaultJobParametersConverterTests extends TestCase {
|
||||
|
||||
JobParameters props = factory.getJobParameters(StringUtils.splitArrayElementsIntoProperties(args, "="));
|
||||
assertNotNull(props);
|
||||
assertEquals(1.38, props.getDouble("value").doubleValue(), Double.MIN_VALUE);
|
||||
assertEquals(1.38, props.getDouble("value"), Double.MIN_VALUE);
|
||||
}
|
||||
|
||||
public void testGetProperties() throws Exception {
|
||||
|
||||
@@ -43,8 +43,8 @@ public abstract class AbstractJobInstanceDaoTests extends AbstractTransactionalD
|
||||
assertEquals(fooJob.getName(), retrievedInstance.getJobName());
|
||||
assertEquals(fooParams, retrievedParams);
|
||||
|
||||
assertEquals(Long.MAX_VALUE, retrievedParams.getLong("longKey").longValue());
|
||||
assertEquals(Double.MAX_VALUE, retrievedParams.getDouble("doubleKey").doubleValue(), 0.001);
|
||||
assertEquals(Long.MAX_VALUE, retrievedParams.getLong("longKey"));
|
||||
assertEquals(Double.MAX_VALUE, retrievedParams.getDouble("doubleKey"), 0.001);
|
||||
assertEquals("stringValue", retrievedParams.getString("stringKey"));
|
||||
assertEquals(new Date(DATE), retrievedParams.getDate("dateKey"));
|
||||
}
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
package org.springframework.batch.core.repository.support;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.batch.core.BatchStatus;
|
||||
import org.springframework.batch.core.JobExecution;
|
||||
import org.springframework.batch.core.JobParameters;
|
||||
import org.springframework.batch.core.JobParametersBuilder;
|
||||
import org.springframework.batch.core.Step;
|
||||
import org.springframework.batch.core.StepExecution;
|
||||
import org.springframework.batch.core.job.JobSupport;
|
||||
@@ -47,27 +46,9 @@ public class SimpleJobRepositoryIntegrationTests extends AbstractTransactionalDa
|
||||
|
||||
job.setRestartable(true);
|
||||
|
||||
Map<String, String> stringParams = new HashMap<String, String>() {
|
||||
{
|
||||
put("stringKey", "stringValue");
|
||||
}
|
||||
};
|
||||
Map<String, Long> longParams = new HashMap<String, Long>() {
|
||||
{
|
||||
put("longKey", new Long(1));
|
||||
}
|
||||
};
|
||||
Map<String, Double> doubleParams = new HashMap<String, Double>() {
|
||||
{
|
||||
put("doubleKey", new Double(1.1));
|
||||
}
|
||||
};
|
||||
Map<String, Date> dateParams = new HashMap<String, Date>() {
|
||||
{
|
||||
put("dateKey", new Date(1));
|
||||
}
|
||||
};
|
||||
JobParameters jobParams = new JobParameters(stringParams, longParams, doubleParams, dateParams);
|
||||
JobParametersBuilder builder = new JobParametersBuilder();
|
||||
builder.addString("stringKey", "stringValue").addLong("longKey", 1L).addDouble("doubleKey", 1.1).addDate("dateKey", new Date(1L));
|
||||
JobParameters jobParams = builder.toJobParameters();
|
||||
|
||||
JobExecution firstExecution = jobRepository.createJobExecution(job, jobParams);
|
||||
firstExecution.setStartTime(new Date());
|
||||
|
||||
Reference in New Issue
Block a user