/* * Copyright 2001-2013 Stephen Colebourne * * 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.joda.time; import junit.framework.TestCase; import junit.framework.TestSuite; import org.joda.convert.StringConvert; import org.joda.time.chrono.ISOChronology; /** * Test string conversion. * * @author Stephen Colebourne */ public class TestStringConvert extends TestCase { private static final DateTimeZone ZONE = DateTimeZone.forID("+02:00"); public static void main(String[] args) { junit.textui.TestRunner.run(suite()); } public static TestSuite suite() { return new TestSuite(TestStringConvert.class); } public TestStringConvert(String name) { super(name); } protected void setUp() throws Exception { } protected void tearDown() throws Exception { } //----------------------------------------------------------------------- @SuppressWarnings("deprecation") public void testDateMidnight() { DateMidnight test = new DateMidnight(2010, 6, 30, ISOChronology.getInstance(ZONE)); String str = StringConvert.INSTANCE.convertToString(test); assertEquals("2010-06-30T00:00:00.000+02:00", str); assertEquals(test, StringConvert.INSTANCE.convertFromString(DateMidnight.class, str)); } public void testDateTime() { DateTime test = new DateTime(2010, 6, 30, 2, 30, 50, 678, ISOChronology.getInstance(ZONE)); String str = StringConvert.INSTANCE.convertToString(test); assertEquals("2010-06-30T02:30:50.678+02:00", str); assertEquals(test, StringConvert.INSTANCE.convertFromString(DateTime.class, str)); } public void testMutableDateTime() { MutableDateTime test = new MutableDateTime(2010, 6, 30, 2, 30, 50, 678, ISOChronology.getInstance(ZONE)); String str = StringConvert.INSTANCE.convertToString(test); assertEquals("2010-06-30T02:30:50.678+02:00", str); assertEquals(test, StringConvert.INSTANCE.convertFromString(MutableDateTime.class, str)); } public void testLocalDateTime() { LocalDateTime test = new LocalDateTime(2010, 6, 30, 2, 30); String str = StringConvert.INSTANCE.convertToString(test); assertEquals("2010-06-30T02:30:00.000", str); assertEquals(test, StringConvert.INSTANCE.convertFromString(LocalDateTime.class, str)); } public void testLocalDate() { LocalDate test = new LocalDate(2010, 6, 30); String str = StringConvert.INSTANCE.convertToString(test); assertEquals("2010-06-30", str); assertEquals(test, StringConvert.INSTANCE.convertFromString(LocalDate.class, str)); } public void testLocalTime() { LocalTime test = new LocalTime(2, 30, 50, 678); String str = StringConvert.INSTANCE.convertToString(test); assertEquals("02:30:50.678", str); assertEquals(test, StringConvert.INSTANCE.convertFromString(LocalTime.class, str)); } public void testYearMonth() { YearMonth test = new YearMonth(2010, 6); String str = StringConvert.INSTANCE.convertToString(test); assertEquals("2010-06", str); assertEquals(test, StringConvert.INSTANCE.convertFromString(YearMonth.class, str)); } public void testMonthDay() { MonthDay test = new MonthDay(6, 30); String str = StringConvert.INSTANCE.convertToString(test); assertEquals("--06-30", str); assertEquals(test, StringConvert.INSTANCE.convertFromString(MonthDay.class, str)); } public void testMonthDay_leapDay() { MonthDay test = new MonthDay(2, 29); String str = StringConvert.INSTANCE.convertToString(test); assertEquals("--02-29", str); assertEquals(test, StringConvert.INSTANCE.convertFromString(MonthDay.class, str)); } //----------------------------------------------------------------------- public void testTimeZone() { DateTimeZone test = DateTimeZone.forID("Europe/Paris"); String str = StringConvert.INSTANCE.convertToString(test); assertEquals("Europe/Paris", str); assertEquals(test, StringConvert.INSTANCE.convertFromString(DateTimeZone.class, str)); } // public void testInterval() { // DateTime a = new DateTime(2010, 6, 30, 2, 30, 50, 678, ISOChronology.getInstance(ZONE)); // DateTime b = new DateTime(2011, 9, 10, 4, 20, 40, 234, ISOChronology.getInstance(ZONE)); // Interval test = new Interval(a, b); // String str = StringConvert.INSTANCE.convertToString(test); // assertEquals("2010-06-30T02:30:50.678+02:00/2011-09-10T04:20:40.234+02:00", str); // assertEquals(test, StringConvert.INSTANCE.convertFromString(Interval.class, str)); // } public void testDuration() { Duration test = new Duration(12345678L); String str = StringConvert.INSTANCE.convertToString(test); assertEquals("PT12345.678S", str); assertEquals(test, StringConvert.INSTANCE.convertFromString(Duration.class, str)); } public void testPeriod() { Period test = new Period(1, 2, 3, 4, 5, 6, 7, 8); String str = StringConvert.INSTANCE.convertToString(test); assertEquals("P1Y2M3W4DT5H6M7.008S", str); assertEquals(test, StringConvert.INSTANCE.convertFromString(Period.class, str)); } public void testMutablePeriod() { MutablePeriod test = new MutablePeriod(1, 2, 3, 4, 5, 6, 7, 8); String str = StringConvert.INSTANCE.convertToString(test); assertEquals("P1Y2M3W4DT5H6M7.008S", str); assertEquals(test, StringConvert.INSTANCE.convertFromString(MutablePeriod.class, str)); } public void testYears() { Years test = Years.years(5); String str = StringConvert.INSTANCE.convertToString(test); assertEquals("P5Y", str); assertEquals(test, StringConvert.INSTANCE.convertFromString(Years.class, str)); } public void testMonths() { Months test = Months.months(5); String str = StringConvert.INSTANCE.convertToString(test); assertEquals("P5M", str); assertEquals(test, StringConvert.INSTANCE.convertFromString(Months.class, str)); } public void testWeeks() { Weeks test = Weeks.weeks(5); String str = StringConvert.INSTANCE.convertToString(test); assertEquals("P5W", str); assertEquals(test, StringConvert.INSTANCE.convertFromString(Weeks.class, str)); } public void testDays() { Days test = Days.days(5); String str = StringConvert.INSTANCE.convertToString(test); assertEquals("P5D", str); assertEquals(test, StringConvert.INSTANCE.convertFromString(Days.class, str)); } public void testHours() { Hours test = Hours.hours(5); String str = StringConvert.INSTANCE.convertToString(test); assertEquals("PT5H", str); assertEquals(test, StringConvert.INSTANCE.convertFromString(Hours.class, str)); } public void testMinutes() { Minutes test = Minutes.minutes(5); String str = StringConvert.INSTANCE.convertToString(test); assertEquals("PT5M", str); assertEquals(test, StringConvert.INSTANCE.convertFromString(Minutes.class, str)); } public void testSeconds() { Seconds test = Seconds.seconds(5); String str = StringConvert.INSTANCE.convertToString(test); assertEquals("PT5S", str); assertEquals(test, StringConvert.INSTANCE.convertFromString(Seconds.class, str)); } }