BATCH-1896

This commit is contained in:
jpraet
2014-03-09 14:24:41 +01:00
committed by Michael Minella
parent a8aa3f907b
commit fec3d57f22
2 changed files with 39 additions and 16 deletions

View File

@@ -541,12 +541,8 @@ public class DefaultFieldSet implements FieldSet {
*/
@Override
public Date readDate(int index, Date defaultValue) {
try {
return readDate(index);
}
catch (IllegalArgumentException e) {
return defaultValue;
}
String candidate = readAndTrim(index);
return StringUtils.hasText(candidate) ? parseDate(candidate, dateFormat) : defaultValue;
}
/*
@@ -575,10 +571,10 @@ public class DefaultFieldSet implements FieldSet {
@Override
public Date readDate(String name, Date defaultValue) {
try {
return readDate(name);
return readDate(indexOf(name), defaultValue);
}
catch (IllegalArgumentException e) {
return defaultValue;
throw new IllegalArgumentException(e.getMessage() + ", name: [" + name + "]");
}
}
@@ -603,12 +599,8 @@ public class DefaultFieldSet implements FieldSet {
*/
@Override
public Date readDate(int index, String pattern, Date defaultValue) {
try {
return readDate(index, pattern);
}
catch (IllegalArgumentException e) {
return defaultValue;
}
String candidate = readAndTrim(index);
return StringUtils.hasText(candidate) ? readDate(index, pattern) : defaultValue;
}
/*
@@ -637,10 +629,10 @@ public class DefaultFieldSet implements FieldSet {
@Override
public Date readDate(String name, String pattern, Date defaultValue) {
try {
return readDate(name, pattern);
return readDate(indexOf(name), pattern, defaultValue);
}
catch (IllegalArgumentException e) {
return defaultValue;
throw new IllegalArgumentException(e.getMessage() + ", name: [" + name + "]");
}
}

View File

@@ -430,6 +430,37 @@ public class DefaultFieldSetTests {
assertEquals(date, fieldSet.readDate("BlankInput", "dd-MM-yyyy", date));
}
@Test
public void testReadDateInvalidWithDefault() throws Exception {
Date defaultDate = new Date();
try {
fieldSet.readDate(1, defaultDate);
fail("Should throw IllegalArgumentException");
} catch (IllegalArgumentException e) {
assertTrue(e.getMessage().indexOf("yyyy-MM-dd") > 0);
}
try {
fieldSet.readDate("String", defaultDate);
fail("Should throw IllegalArgumentException");
} catch (IllegalArgumentException e) {
assertTrue(e.getMessage().indexOf("yyyy-MM-dd") > 0);
assertTrue(e.getMessage().indexOf("name: [String]") > 0);
}
try {
fieldSet.readDate(1, "dd-MM-yyyy", defaultDate);
fail("Should throw IllegalArgumentException");
} catch (IllegalArgumentException e) {
assertTrue(e.getMessage().indexOf("dd-MM-yyyy") > 0);
}
try {
fieldSet.readDate("String", "dd-MM-yyyy", defaultDate);
fail("Should throw IllegalArgumentException");
} catch (IllegalArgumentException e) {
assertTrue(e.getMessage().indexOf("dd-MM-yyyy") > 0);
assertTrue(e.getMessage().indexOf("name: [String]") > 0);
}
}
@Test
public void testStrictReadDateWithPattern() throws Exception {