OPEN - issue BATCH-304: BatchCommandLineLauncher simplified and rename
http://jira.springframework.org/browse/BATCH-304 Add unit test for factory.
This commit is contained in:
@@ -43,4 +43,12 @@ public interface JobParametersFactory {
|
||||
* @return a {@link JobParameters} properties converted to the correct types.
|
||||
*/
|
||||
public JobParameters getJobParameters(Properties properties);
|
||||
|
||||
/**
|
||||
* The inverse operation: get a {@link Properties} instance.
|
||||
*
|
||||
* @param params
|
||||
* @return a representation of the parameters as properties
|
||||
*/
|
||||
public Properties getProperties(JobParameters params);
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
package org.springframework.batch.core.domain;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.Iterator;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
@@ -13,24 +14,37 @@ import junit.framework.TestCase;
|
||||
*/
|
||||
public class JobParametersBuilderTests extends TestCase {
|
||||
|
||||
JobParametersBuilder parametersBuilder;
|
||||
JobParametersBuilder parametersBuilder = new JobParametersBuilder();
|
||||
|
||||
Date date = new Date(System.currentTimeMillis());
|
||||
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
|
||||
parametersBuilder = new JobParametersBuilder();
|
||||
public void testToJobRuntimeParamters(){
|
||||
parametersBuilder.addDate("SCHEDULE_DATE", date);
|
||||
parametersBuilder.addLong("LONG", new Long(1));
|
||||
parametersBuilder.addString("STRING", "string value");
|
||||
}
|
||||
|
||||
public void testToJobRuntimeParamters(){
|
||||
|
||||
JobParameters parameters = parametersBuilder.toJobParameters();
|
||||
assertEquals(parameters.getDate("SCHEDULE_DATE"), date);
|
||||
assertEquals(parameters.getLong("LONG"), new Long(1));
|
||||
assertEquals(parameters.getString("STRING"), "string value");
|
||||
assertEquals(date, parameters.getDate("SCHEDULE_DATE"));
|
||||
assertEquals(new Long(1), parameters.getLong("LONG"));
|
||||
assertEquals("string value", parameters.getString("STRING"));
|
||||
}
|
||||
|
||||
public void testOrderedTypes(){
|
||||
parametersBuilder.addDate("SCHEDULE_DATE", date);
|
||||
parametersBuilder.addLong("LONG", new Long(1));
|
||||
parametersBuilder.addString("STRING", "string value");
|
||||
Iterator parameters = parametersBuilder.toJobParameters().getParameters().keySet().iterator();
|
||||
assertEquals("STRING", parameters.next());
|
||||
assertEquals("LONG", parameters.next());
|
||||
assertEquals("SCHEDULE_DATE", parameters.next());
|
||||
}
|
||||
|
||||
public void testOrderedStrings(){
|
||||
parametersBuilder.addString("foo", "value foo");
|
||||
parametersBuilder.addString("bar", "value bar");
|
||||
parametersBuilder.addString("spam", "value spam");
|
||||
Iterator parameters = parametersBuilder.toJobParameters().getParameters().keySet().iterator();
|
||||
assertEquals("foo", parameters.next());
|
||||
assertEquals("bar", parameters.next());
|
||||
assertEquals("spam", parameters.next());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
/*
|
||||
* Copyright 2006-2008 the original author or authors.
|
||||
*
|
||||
* Licensed 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.
|
||||
*/
|
||||
package org.springframework.batch.execution.bootstrap.support;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Properties;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import org.springframework.batch.core.domain.JobParameters;
|
||||
import org.springframework.batch.core.domain.JobParametersBuilder;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
/**
|
||||
* @author Dave Syer
|
||||
*
|
||||
*/
|
||||
public class DefaultJobParametersFactoryTests extends TestCase {
|
||||
|
||||
DefaultJobParametersFactory factory = new DefaultJobParametersFactory();
|
||||
|
||||
DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
|
||||
|
||||
public void testGetParameters() throws Exception {
|
||||
|
||||
String jobKey = "job.key=myKey";
|
||||
String scheduleDate = "schedule.date(date)=2008/01/23";
|
||||
String vendorId = "vendor.id(long)=33243243";
|
||||
|
||||
String[] args = new String[] { jobKey, scheduleDate, vendorId };
|
||||
|
||||
JobParameters props = factory.getJobParameters(StringUtils.splitArrayElementsIntoProperties(args, "="));
|
||||
assertNotNull(props);
|
||||
assertEquals("myKey", props.getString("job.key"));
|
||||
assertEquals(new Long(33243243L), props.getLong("vendor.id"));
|
||||
Date date = dateFormat.parse("01/23/2008");
|
||||
assertEquals(date, props.getDate("schedule.date"));
|
||||
}
|
||||
|
||||
public void testGetProperties() throws Exception {
|
||||
|
||||
JobParameters parameters = new JobParametersBuilder().addDate("schedule.date", dateFormat.parse("01/23/2008"))
|
||||
.addString("job.key", "myKey").addLong("vendor.id", new Long(33243243)).toJobParameters();
|
||||
|
||||
Properties props = factory.getProperties(parameters);
|
||||
assertNotNull(props);
|
||||
assertEquals("myKey", props.getProperty("job.key"));
|
||||
assertEquals("33243243", props.getProperty("vendor.id(long)"));
|
||||
assertEquals("2008/01/23", props.getProperty("schedule.date(date)"));
|
||||
}
|
||||
|
||||
public void testEmptyArgs() {
|
||||
|
||||
JobParameters props = factory.getJobParameters(new Properties());
|
||||
assertTrue(props.getParameters().isEmpty());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user