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:
lucasward
2008-07-26 01:39:50 +00:00
parent 170d9d506f
commit e68a4133e8
19 changed files with 419 additions and 485 deletions

View File

@@ -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();

View File

@@ -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));
}
}

View File

@@ -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(){

View File

@@ -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();

View File

@@ -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 {

View File

@@ -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"));
}

View File

@@ -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());