test/java/time/test/java/time/format/TestZoneOffsetParser.java
Print this page
*** 63,73 ****
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
import java.text.ParsePosition;
import java.time.ZoneOffset;
! import java.time.format.DateTimeBuilder;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
/**
--- 63,73 ----
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
import java.text.ParsePosition;
import java.time.ZoneOffset;
! import java.time.temporal.TemporalAccessor;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
/**
*** 86,157 ****
}
@Test(dataProvider="error")
public void test_parse_error(String pattern, String noOffsetText, String text, int pos, Class<?> expected) {
try {
! getFormatter(pattern, noOffsetText).parseToBuilder(text, new ParsePosition(pos));
} catch (RuntimeException ex) {
assertTrue(expected.isInstance(ex));
}
}
//-----------------------------------------------------------------------
public void test_parse_exactMatch_UTC() throws Exception {
ParsePosition pos = new ParsePosition(0);
! DateTimeBuilder dtb = getFormatter("+HH:MM:ss", "Z").parseToBuilder("Z", pos);
assertEquals(pos.getIndex(), 1);
! assertParsed(dtb, ZoneOffset.UTC);
}
public void test_parse_startStringMatch_UTC() throws Exception {
ParsePosition pos = new ParsePosition(0);
! DateTimeBuilder dtb = getFormatter("+HH:MM:ss", "Z").parseToBuilder("ZOTHER", pos);
assertEquals(pos.getIndex(), 1);
! assertParsed(dtb, ZoneOffset.UTC);
}
public void test_parse_midStringMatch_UTC() throws Exception {
ParsePosition pos = new ParsePosition(5);
! DateTimeBuilder dtb = getFormatter("+HH:MM:ss", "Z").parseToBuilder("OTHERZOTHER", pos);
assertEquals(pos.getIndex(), 6);
! assertParsed(dtb, ZoneOffset.UTC);
}
public void test_parse_endStringMatch_UTC() throws Exception {
ParsePosition pos = new ParsePosition(5);
! DateTimeBuilder dtb = getFormatter("+HH:MM:ss", "Z").parseToBuilder("OTHERZ", pos);
assertEquals(pos.getIndex(), 6);
! assertParsed(dtb, ZoneOffset.UTC);
}
//-----------------------------------------------------------------------
public void test_parse_exactMatch_UTC_EmptyUTC() throws Exception {
ParsePosition pos = new ParsePosition(0);
! DateTimeBuilder dtb = getFormatter("+HH:MM:ss", "").parseToBuilder("", pos);
assertEquals(pos.getIndex(), 0);
! assertParsed(dtb, ZoneOffset.UTC);
}
public void test_parse_startStringMatch_UTC_EmptyUTC() throws Exception {
ParsePosition pos = new ParsePosition(0);
! DateTimeBuilder dtb = getFormatter("+HH:MM:ss", "").parseToBuilder("OTHER", pos);
assertEquals(pos.getIndex(), 0);
! assertParsed(dtb, ZoneOffset.UTC);
}
public void test_parse_midStringMatch_UTC_EmptyUTC() throws Exception {
ParsePosition pos = new ParsePosition(5);
! DateTimeBuilder dtb = getFormatter("+HH:MM:ss", "").parseToBuilder("OTHEROTHER", pos);
assertEquals(pos.getIndex(), 5);
! assertParsed(dtb, ZoneOffset.UTC);
}
public void test_parse_endStringMatch_UTC_EmptyUTC() throws Exception {
ParsePosition pos = new ParsePosition(5);
! DateTimeBuilder dtb = getFormatter("+HH:MM:ss", "").parseToBuilder("OTHER", pos);
assertEquals(pos.getIndex(), 5);
! assertParsed(dtb, ZoneOffset.UTC);
}
//-----------------------------------------------------------------------
@DataProvider(name="offsets")
Object[][] provider_offsets() {
--- 86,157 ----
}
@Test(dataProvider="error")
public void test_parse_error(String pattern, String noOffsetText, String text, int pos, Class<?> expected) {
try {
! getFormatter(pattern, noOffsetText).parseUnresolved(text, new ParsePosition(pos));
} catch (RuntimeException ex) {
assertTrue(expected.isInstance(ex));
}
}
//-----------------------------------------------------------------------
public void test_parse_exactMatch_UTC() throws Exception {
ParsePosition pos = new ParsePosition(0);
! TemporalAccessor parsed = getFormatter("+HH:MM:ss", "Z").parseUnresolved("Z", pos);
assertEquals(pos.getIndex(), 1);
! assertParsed(parsed, ZoneOffset.UTC);
}
public void test_parse_startStringMatch_UTC() throws Exception {
ParsePosition pos = new ParsePosition(0);
! TemporalAccessor parsed = getFormatter("+HH:MM:ss", "Z").parseUnresolved("ZOTHER", pos);
assertEquals(pos.getIndex(), 1);
! assertParsed(parsed, ZoneOffset.UTC);
}
public void test_parse_midStringMatch_UTC() throws Exception {
ParsePosition pos = new ParsePosition(5);
! TemporalAccessor parsed = getFormatter("+HH:MM:ss", "Z").parseUnresolved("OTHERZOTHER", pos);
assertEquals(pos.getIndex(), 6);
! assertParsed(parsed, ZoneOffset.UTC);
}
public void test_parse_endStringMatch_UTC() throws Exception {
ParsePosition pos = new ParsePosition(5);
! TemporalAccessor parsed = getFormatter("+HH:MM:ss", "Z").parseUnresolved("OTHERZ", pos);
assertEquals(pos.getIndex(), 6);
! assertParsed(parsed, ZoneOffset.UTC);
}
//-----------------------------------------------------------------------
public void test_parse_exactMatch_UTC_EmptyUTC() throws Exception {
ParsePosition pos = new ParsePosition(0);
! TemporalAccessor parsed = getFormatter("+HH:MM:ss", "").parseUnresolved("", pos);
assertEquals(pos.getIndex(), 0);
! assertParsed(parsed, ZoneOffset.UTC);
}
public void test_parse_startStringMatch_UTC_EmptyUTC() throws Exception {
ParsePosition pos = new ParsePosition(0);
! TemporalAccessor parsed = getFormatter("+HH:MM:ss", "").parseUnresolved("OTHER", pos);
assertEquals(pos.getIndex(), 0);
! assertParsed(parsed, ZoneOffset.UTC);
}
public void test_parse_midStringMatch_UTC_EmptyUTC() throws Exception {
ParsePosition pos = new ParsePosition(5);
! TemporalAccessor parsed = getFormatter("+HH:MM:ss", "").parseUnresolved("OTHEROTHER", pos);
assertEquals(pos.getIndex(), 5);
! assertParsed(parsed, ZoneOffset.UTC);
}
public void test_parse_endStringMatch_UTC_EmptyUTC() throws Exception {
ParsePosition pos = new ParsePosition(5);
! TemporalAccessor parsed = getFormatter("+HH:MM:ss", "").parseUnresolved("OTHER", pos);
assertEquals(pos.getIndex(), 5);
! assertParsed(parsed, ZoneOffset.UTC);
}
//-----------------------------------------------------------------------
@DataProvider(name="offsets")
Object[][] provider_offsets() {
*** 229,297 ****
}
@Test(dataProvider="offsets")
public void test_parse_exactMatch(String pattern, String parse, ZoneOffset expected) throws Exception {
ParsePosition pos = new ParsePosition(0);
! DateTimeBuilder dtb = getFormatter(pattern, "Z").parseToBuilder(parse, pos);
assertEquals(pos.getIndex(), parse.length());
! assertParsed(dtb, expected);
}
@Test(dataProvider="offsets")
public void test_parse_startStringMatch(String pattern, String parse, ZoneOffset expected) throws Exception {
ParsePosition pos = new ParsePosition(0);
! DateTimeBuilder dtb = getFormatter(pattern, "Z").parseToBuilder(parse + ":OTHER", pos);
assertEquals(pos.getIndex(), parse.length());
! assertParsed(dtb, expected);
}
@Test(dataProvider="offsets")
public void test_parse_midStringMatch(String pattern, String parse, ZoneOffset expected) throws Exception {
ParsePosition pos = new ParsePosition(5);
! DateTimeBuilder dtb = getFormatter(pattern, "Z").parseToBuilder("OTHER" + parse + ":OTHER", pos);
assertEquals(pos.getIndex(), parse.length() + 5);
! assertParsed(dtb, expected);
}
@Test(dataProvider="offsets")
public void test_parse_endStringMatch(String pattern, String parse, ZoneOffset expected) throws Exception {
ParsePosition pos = new ParsePosition(5);
! DateTimeBuilder dtb = getFormatter(pattern, "Z").parseToBuilder("OTHER" + parse, pos);
assertEquals(pos.getIndex(), parse.length() + 5);
! assertParsed(dtb, expected);
}
@Test(dataProvider="offsets")
public void test_parse_exactMatch_EmptyUTC(String pattern, String parse, ZoneOffset expected) throws Exception {
ParsePosition pos = new ParsePosition(0);
! DateTimeBuilder dtb = getFormatter(pattern, "").parseToBuilder(parse, pos);
assertEquals(pos.getIndex(), parse.length());
! assertParsed(dtb, expected);
}
@Test(dataProvider="offsets")
public void test_parse_startStringMatch_EmptyUTC(String pattern, String parse, ZoneOffset expected) throws Exception {
ParsePosition pos = new ParsePosition(0);
! DateTimeBuilder dtb = getFormatter(pattern, "").parseToBuilder(parse + ":OTHER", pos);
assertEquals(pos.getIndex(), parse.length());
! assertParsed(dtb, expected);
}
@Test(dataProvider="offsets")
public void test_parse_midStringMatch_EmptyUTC(String pattern, String parse, ZoneOffset expected) throws Exception {
ParsePosition pos = new ParsePosition(5);
! DateTimeBuilder dtb = getFormatter(pattern, "").parseToBuilder("OTHER" + parse + ":OTHER", pos);
assertEquals(pos.getIndex(), parse.length() + 5);
! assertParsed(dtb, expected);
}
@Test(dataProvider="offsets")
public void test_parse_endStringMatch_EmptyUTC(String pattern, String parse, ZoneOffset expected) throws Exception {
ParsePosition pos = new ParsePosition(5);
! DateTimeBuilder dtb = getFormatter(pattern, "").parseToBuilder("OTHER" + parse, pos);
assertEquals(pos.getIndex(), parse.length() + 5);
! assertParsed(dtb, expected);
}
//-----------------------------------------------------------------------
@DataProvider(name="bigOffsets")
Object[][] provider_bigOffsets() {
--- 229,297 ----
}
@Test(dataProvider="offsets")
public void test_parse_exactMatch(String pattern, String parse, ZoneOffset expected) throws Exception {
ParsePosition pos = new ParsePosition(0);
! TemporalAccessor parsed = getFormatter(pattern, "Z").parseUnresolved(parse, pos);
assertEquals(pos.getIndex(), parse.length());
! assertParsed(parsed, expected);
}
@Test(dataProvider="offsets")
public void test_parse_startStringMatch(String pattern, String parse, ZoneOffset expected) throws Exception {
ParsePosition pos = new ParsePosition(0);
! TemporalAccessor parsed = getFormatter(pattern, "Z").parseUnresolved(parse + ":OTHER", pos);
assertEquals(pos.getIndex(), parse.length());
! assertParsed(parsed, expected);
}
@Test(dataProvider="offsets")
public void test_parse_midStringMatch(String pattern, String parse, ZoneOffset expected) throws Exception {
ParsePosition pos = new ParsePosition(5);
! TemporalAccessor parsed = getFormatter(pattern, "Z").parseUnresolved("OTHER" + parse + ":OTHER", pos);
assertEquals(pos.getIndex(), parse.length() + 5);
! assertParsed(parsed, expected);
}
@Test(dataProvider="offsets")
public void test_parse_endStringMatch(String pattern, String parse, ZoneOffset expected) throws Exception {
ParsePosition pos = new ParsePosition(5);
! TemporalAccessor parsed = getFormatter(pattern, "Z").parseUnresolved("OTHER" + parse, pos);
assertEquals(pos.getIndex(), parse.length() + 5);
! assertParsed(parsed, expected);
}
@Test(dataProvider="offsets")
public void test_parse_exactMatch_EmptyUTC(String pattern, String parse, ZoneOffset expected) throws Exception {
ParsePosition pos = new ParsePosition(0);
! TemporalAccessor parsed = getFormatter(pattern, "").parseUnresolved(parse, pos);
assertEquals(pos.getIndex(), parse.length());
! assertParsed(parsed, expected);
}
@Test(dataProvider="offsets")
public void test_parse_startStringMatch_EmptyUTC(String pattern, String parse, ZoneOffset expected) throws Exception {
ParsePosition pos = new ParsePosition(0);
! TemporalAccessor parsed = getFormatter(pattern, "").parseUnresolved(parse + ":OTHER", pos);
assertEquals(pos.getIndex(), parse.length());
! assertParsed(parsed, expected);
}
@Test(dataProvider="offsets")
public void test_parse_midStringMatch_EmptyUTC(String pattern, String parse, ZoneOffset expected) throws Exception {
ParsePosition pos = new ParsePosition(5);
! TemporalAccessor parsed = getFormatter(pattern, "").parseUnresolved("OTHER" + parse + ":OTHER", pos);
assertEquals(pos.getIndex(), parse.length() + 5);
! assertParsed(parsed, expected);
}
@Test(dataProvider="offsets")
public void test_parse_endStringMatch_EmptyUTC(String pattern, String parse, ZoneOffset expected) throws Exception {
ParsePosition pos = new ParsePosition(5);
! TemporalAccessor parsed = getFormatter(pattern, "").parseUnresolved("OTHER" + parse, pos);
assertEquals(pos.getIndex(), parse.length() + 5);
! assertParsed(parsed, expected);
}
//-----------------------------------------------------------------------
@DataProvider(name="bigOffsets")
Object[][] provider_bigOffsets() {
*** 320,332 ****
}
@Test(dataProvider="bigOffsets")
public void test_parse_bigOffsets(String pattern, String parse, long offsetSecs) throws Exception {
ParsePosition pos = new ParsePosition(0);
! DateTimeBuilder dtb = getFormatter(pattern, "").parseToBuilder(parse, pos);
assertEquals(pos.getIndex(), parse.length());
! assertEquals(dtb.getLong(OFFSET_SECONDS), offsetSecs);
}
//-----------------------------------------------------------------------
@DataProvider(name="badOffsets")
Object[][] provider_badOffsets() {
--- 320,332 ----
}
@Test(dataProvider="bigOffsets")
public void test_parse_bigOffsets(String pattern, String parse, long offsetSecs) throws Exception {
ParsePosition pos = new ParsePosition(0);
! TemporalAccessor parsed = getFormatter(pattern, "").parseUnresolved(parse, pos);
assertEquals(pos.getIndex(), parse.length());
! assertEquals(parsed.getLong(OFFSET_SECONDS), offsetSecs);
}
//-----------------------------------------------------------------------
@DataProvider(name="badOffsets")
Object[][] provider_badOffsets() {
*** 391,444 ****
}
@Test(dataProvider="badOffsets")
public void test_parse_invalid(String pattern, String parse, int expectedPosition) throws Exception {
ParsePosition pos = new ParsePosition(0);
! DateTimeBuilder dtb = getFormatter(pattern, "Z").parseToBuilder(parse, pos);
assertEquals(pos.getErrorIndex(), expectedPosition);
}
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
public void test_parse_caseSensitiveUTC_matchedCase() throws Exception {
setCaseSensitive(true);
ParsePosition pos = new ParsePosition(0);
! DateTimeBuilder dtb = getFormatter("+HH:MM:ss", "Z").parseToBuilder("Z", pos);
assertEquals(pos.getIndex(), 1);
! assertParsed(dtb, ZoneOffset.UTC);
}
public void test_parse_caseSensitiveUTC_unmatchedCase() throws Exception {
setCaseSensitive(true);
ParsePosition pos = new ParsePosition(0);
! DateTimeBuilder dtb = getFormatter("+HH:MM:ss", "Z").parseToBuilder("z", pos);
assertEquals(pos.getErrorIndex(), 0);
! assertEquals(dtb, null);
}
public void test_parse_caseInsensitiveUTC_matchedCase() throws Exception {
setCaseSensitive(false);
ParsePosition pos = new ParsePosition(0);
! DateTimeBuilder dtb = getFormatter("+HH:MM:ss", "Z").parseToBuilder("Z", pos);
assertEquals(pos.getIndex(), 1);
! assertParsed(dtb, ZoneOffset.UTC);
}
public void test_parse_caseInsensitiveUTC_unmatchedCase() throws Exception {
setCaseSensitive(false);
ParsePosition pos = new ParsePosition(0);
! DateTimeBuilder dtb = getFormatter("+HH:MM:ss", "Z").parseToBuilder("z", pos);
assertEquals(pos.getIndex(), 1);
! assertParsed(dtb, ZoneOffset.UTC);
}
! private void assertParsed(DateTimeBuilder dtb, ZoneOffset expectedOffset) {
if (expectedOffset == null) {
! assertEquals(dtb, null);
} else {
! assertEquals(dtb.getFieldValueMap().size(), 1);
! assertEquals(dtb.getLong(OFFSET_SECONDS), (long) expectedOffset.getTotalSeconds());
}
}
}
--- 391,445 ----
}
@Test(dataProvider="badOffsets")
public void test_parse_invalid(String pattern, String parse, int expectedPosition) throws Exception {
ParsePosition pos = new ParsePosition(0);
! TemporalAccessor parsed = getFormatter(pattern, "Z").parseUnresolved(parse, pos);
assertEquals(pos.getErrorIndex(), expectedPosition);
+ assertEquals(parsed, null);
}
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
public void test_parse_caseSensitiveUTC_matchedCase() throws Exception {
setCaseSensitive(true);
ParsePosition pos = new ParsePosition(0);
! TemporalAccessor parsed = getFormatter("+HH:MM:ss", "Z").parseUnresolved("Z", pos);
assertEquals(pos.getIndex(), 1);
! assertParsed(parsed, ZoneOffset.UTC);
}
public void test_parse_caseSensitiveUTC_unmatchedCase() throws Exception {
setCaseSensitive(true);
ParsePosition pos = new ParsePosition(0);
! TemporalAccessor parsed = getFormatter("+HH:MM:ss", "Z").parseUnresolved("z", pos);
assertEquals(pos.getErrorIndex(), 0);
! assertEquals(parsed, null);
}
public void test_parse_caseInsensitiveUTC_matchedCase() throws Exception {
setCaseSensitive(false);
ParsePosition pos = new ParsePosition(0);
! TemporalAccessor parsed = getFormatter("+HH:MM:ss", "Z").parseUnresolved("Z", pos);
assertEquals(pos.getIndex(), 1);
! assertParsed(parsed, ZoneOffset.UTC);
}
public void test_parse_caseInsensitiveUTC_unmatchedCase() throws Exception {
setCaseSensitive(false);
ParsePosition pos = new ParsePosition(0);
! TemporalAccessor parsed = getFormatter("+HH:MM:ss", "Z").parseUnresolved("z", pos);
assertEquals(pos.getIndex(), 1);
! assertParsed(parsed, ZoneOffset.UTC);
}
! private void assertParsed(TemporalAccessor parsed, ZoneOffset expectedOffset) {
if (expectedOffset == null) {
! assertEquals(parsed, null);
} else {
! assertEquals(parsed.isSupported(OFFSET_SECONDS), true);
! assertEquals(parsed.getLong(OFFSET_SECONDS), (long) expectedOffset.getTotalSeconds());
}
}
}