test/java/time/test/java/time/format/TestReducedParser.java
Print this page
*** 57,75 ****
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package test.java.time.format;
- import java.time.format.*;
-
import static java.time.temporal.ChronoField.DAY_OF_YEAR;
import static java.time.temporal.ChronoField.YEAR;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
import java.text.ParsePosition;
! import java.time.format.DateTimeBuilder;
import java.time.temporal.TemporalField;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
--- 57,74 ----
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package test.java.time.format;
import static java.time.temporal.ChronoField.DAY_OF_YEAR;
import static java.time.temporal.ChronoField.YEAR;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
import java.text.ParsePosition;
! import java.time.format.DateTimeFormatter;
! import java.time.temporal.TemporalAccessor;
import java.time.temporal.TemporalField;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
*** 93,114 ****
}
@Test(dataProvider="error")
public void test_parse_error(TemporalField field, int width, int baseValue, String text, int pos, Class<?> expected) {
try {
! getFormatter0(field, width, baseValue).parseToBuilder(text, new ParsePosition(pos));
} catch (RuntimeException ex) {
assertTrue(expected.isInstance(ex));
}
}
//-----------------------------------------------------------------------
public void test_parse_fieldRangeIgnored() throws Exception {
ParsePosition pos = new ParsePosition(0);
! DateTimeBuilder dtb = getFormatter0(DAY_OF_YEAR, 3, 10).parseToBuilder("456", pos);
assertEquals(pos.getIndex(), 3);
! assertParsed(dtb, DAY_OF_YEAR, 456L); // parsed dayOfYear=456
}
//-----------------------------------------------------------------------
@DataProvider(name="Parse")
Object[][] provider_parse() {
--- 92,113 ----
}
@Test(dataProvider="error")
public void test_parse_error(TemporalField field, int width, int baseValue, String text, int pos, Class<?> expected) {
try {
! getFormatter0(field, width, baseValue).parseUnresolved(text, new ParsePosition(pos));
} catch (RuntimeException ex) {
assertTrue(expected.isInstance(ex));
}
}
//-----------------------------------------------------------------------
public void test_parse_fieldRangeIgnored() throws Exception {
ParsePosition pos = new ParsePosition(0);
! TemporalAccessor parsed = getFormatter0(DAY_OF_YEAR, 3, 10).parseUnresolved("456", pos);
assertEquals(pos.getIndex(), 3);
! assertParsed(parsed, DAY_OF_YEAR, 456L); // parsed dayOfYear=456
}
//-----------------------------------------------------------------------
@DataProvider(name="Parse")
Object[][] provider_parse() {
*** 163,198 ****
}
@Test(dataProvider="Parse")
public void test_parse(TemporalField field, int width, int baseValue, String input, int pos, int parseLen, Integer parseVal) {
ParsePosition ppos = new ParsePosition(pos);
! DateTimeBuilder dtb = getFormatter0(field, width, baseValue).parseToBuilder(input, ppos);
if (ppos.getErrorIndex() != -1) {
assertEquals(ppos.getErrorIndex(), parseLen);
} else {
assertEquals(ppos.getIndex(), parseLen);
! assertParsed(dtb, YEAR, parseVal != null ? (long) parseVal : null);
}
}
@Test(dataProvider="Parse")
public void test_parseLenient(TemporalField field, int width, int baseValue, String input, int pos, int parseLen, Integer parseVal) {
setStrict(false);
ParsePosition ppos = new ParsePosition(pos);
! DateTimeBuilder dtb = getFormatter0(field, width, baseValue).parseToBuilder(input, ppos);
if (ppos.getErrorIndex() != -1) {
assertEquals(ppos.getErrorIndex(), parseLen);
} else {
assertEquals(ppos.getIndex(), parseLen);
! assertParsed(dtb, YEAR, parseVal != null ? (long) parseVal : null);
}
}
! private void assertParsed(DateTimeBuilder dtb, TemporalField field, Long value) {
if (value == null) {
! assertEquals(dtb, null);
} else {
! assertEquals(dtb.getLong(field), (long)value);
}
}
}
--- 162,198 ----
}
@Test(dataProvider="Parse")
public void test_parse(TemporalField field, int width, int baseValue, String input, int pos, int parseLen, Integer parseVal) {
ParsePosition ppos = new ParsePosition(pos);
! TemporalAccessor parsed = getFormatter0(field, width, baseValue).parseUnresolved(input, ppos);
if (ppos.getErrorIndex() != -1) {
assertEquals(ppos.getErrorIndex(), parseLen);
} else {
assertEquals(ppos.getIndex(), parseLen);
! assertParsed(parsed, YEAR, parseVal != null ? (long) parseVal : null);
}
}
@Test(dataProvider="Parse")
public void test_parseLenient(TemporalField field, int width, int baseValue, String input, int pos, int parseLen, Integer parseVal) {
setStrict(false);
ParsePosition ppos = new ParsePosition(pos);
! TemporalAccessor parsed = getFormatter0(field, width, baseValue).parseUnresolved(input, ppos);
if (ppos.getErrorIndex() != -1) {
assertEquals(ppos.getErrorIndex(), parseLen);
} else {
assertEquals(ppos.getIndex(), parseLen);
! assertParsed(parsed, YEAR, parseVal != null ? (long) parseVal : null);
}
}
! private void assertParsed(TemporalAccessor parsed, TemporalField field, Long value) {
if (value == null) {
! assertEquals(parsed, null);
} else {
! assertEquals(parsed.isSupported(field), true);
! assertEquals(parsed.getLong(field), (long) value);
}
}
}