001 /* 002 * Copyright 2001-2010 Stephen Colebourne 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 package org.joda.time; 017 018 import junit.framework.TestCase; 019 import junit.framework.TestSuite; 020 021 import org.joda.convert.StringConvert; 022 import org.joda.time.chrono.ISOChronology; 023 024 /** 025 * Test string conversion. 026 * 027 * @author Stephen Colebourne 028 */ 029 public class TestStringConvert extends TestCase { 030 031 private static final DateTimeZone ZONE = DateTimeZone.forID("+02:00"); 032 033 public static void main(String[] args) { 034 junit.textui.TestRunner.run(suite()); 035 } 036 037 public static TestSuite suite() { 038 return new TestSuite(TestStringConvert.class); 039 } 040 041 public TestStringConvert(String name) { 042 super(name); 043 } 044 045 protected void setUp() throws Exception { 046 } 047 048 protected void tearDown() throws Exception { 049 } 050 051 //----------------------------------------------------------------------- 052 public void testDateMidnight() { 053 DateMidnight test = new DateMidnight(2010, 6, 30, ISOChronology.getInstance(ZONE)); 054 String str = StringConvert.INSTANCE.convertToString(test); 055 assertEquals("2010-06-30T00:00:00.000+02:00", str); 056 assertEquals(test, StringConvert.INSTANCE.convertFromString(DateMidnight.class, str)); 057 } 058 059 public void testDateTime() { 060 DateTime test = new DateTime(2010, 6, 30, 2, 30, 50, 678, ISOChronology.getInstance(ZONE)); 061 String str = StringConvert.INSTANCE.convertToString(test); 062 assertEquals("2010-06-30T02:30:50.678+02:00", str); 063 assertEquals(test, StringConvert.INSTANCE.convertFromString(DateTime.class, str)); 064 } 065 066 public void testMutableDateTime() { 067 MutableDateTime test = new MutableDateTime(2010, 6, 30, 2, 30, 50, 678, ISOChronology.getInstance(ZONE)); 068 String str = StringConvert.INSTANCE.convertToString(test); 069 assertEquals("2010-06-30T02:30:50.678+02:00", str); 070 assertEquals(test, StringConvert.INSTANCE.convertFromString(MutableDateTime.class, str)); 071 } 072 073 public void testLocalDateTime() { 074 LocalDateTime test = new LocalDateTime(2010, 6, 30, 2, 30); 075 String str = StringConvert.INSTANCE.convertToString(test); 076 assertEquals("2010-06-30T02:30:00.000", str); 077 assertEquals(test, StringConvert.INSTANCE.convertFromString(LocalDateTime.class, str)); 078 } 079 080 public void testLocalDate() { 081 LocalDate test = new LocalDate(2010, 6, 30); 082 String str = StringConvert.INSTANCE.convertToString(test); 083 assertEquals("2010-06-30", str); 084 assertEquals(test, StringConvert.INSTANCE.convertFromString(LocalDate.class, str)); 085 } 086 087 public void testLocalTime() { 088 LocalTime test = new LocalTime(2, 30, 50, 678); 089 String str = StringConvert.INSTANCE.convertToString(test); 090 assertEquals("02:30:50.678", str); 091 assertEquals(test, StringConvert.INSTANCE.convertFromString(LocalTime.class, str)); 092 } 093 094 public void testYearMonth() { 095 YearMonth test = new YearMonth(2010, 6); 096 String str = StringConvert.INSTANCE.convertToString(test); 097 assertEquals("2010-06", str); 098 assertEquals(test, StringConvert.INSTANCE.convertFromString(YearMonth.class, str)); 099 } 100 101 public void testMonthDay() { 102 MonthDay test = new MonthDay(6, 30); 103 String str = StringConvert.INSTANCE.convertToString(test); 104 assertEquals("--06-30", str); 105 assertEquals(test, StringConvert.INSTANCE.convertFromString(MonthDay.class, str)); 106 } 107 108 public void testMonthDay_leapDay() { 109 MonthDay test = new MonthDay(2, 29); 110 String str = StringConvert.INSTANCE.convertToString(test); 111 assertEquals("--02-29", str); 112 assertEquals(test, StringConvert.INSTANCE.convertFromString(MonthDay.class, str)); 113 } 114 115 //----------------------------------------------------------------------- 116 public void testTimeZone() { 117 DateTimeZone test = DateTimeZone.forID("Europe/Paris"); 118 String str = StringConvert.INSTANCE.convertToString(test); 119 assertEquals("Europe/Paris", str); 120 assertEquals(test, StringConvert.INSTANCE.convertFromString(DateTimeZone.class, str)); 121 } 122 123 // public void testInterval() { 124 // DateTime a = new DateTime(2010, 6, 30, 2, 30, 50, 678, ISOChronology.getInstance(ZONE)); 125 // DateTime b = new DateTime(2011, 9, 10, 4, 20, 40, 234, ISOChronology.getInstance(ZONE)); 126 // Interval test = new Interval(a, b); 127 // String str = StringConvert.INSTANCE.convertToString(test); 128 // assertEquals("2010-06-30T02:30:50.678+02:00/2011-09-10T04:20:40.234+02:00", str); 129 // assertEquals(test, StringConvert.INSTANCE.convertFromString(Interval.class, str)); 130 // } 131 132 public void testDuration() { 133 Duration test = new Duration(12345678L); 134 String str = StringConvert.INSTANCE.convertToString(test); 135 assertEquals("PT12345.678S", str); 136 assertEquals(test, StringConvert.INSTANCE.convertFromString(Duration.class, str)); 137 } 138 139 public void testPeriod() { 140 Period test = new Period(1, 2, 3, 4, 5, 6, 7, 8); 141 String str = StringConvert.INSTANCE.convertToString(test); 142 assertEquals("P1Y2M3W4DT5H6M7.008S", str); 143 assertEquals(test, StringConvert.INSTANCE.convertFromString(Period.class, str)); 144 } 145 146 public void testMutablePeriod() { 147 MutablePeriod test = new MutablePeriod(1, 2, 3, 4, 5, 6, 7, 8); 148 String str = StringConvert.INSTANCE.convertToString(test); 149 assertEquals("P1Y2M3W4DT5H6M7.008S", str); 150 assertEquals(test, StringConvert.INSTANCE.convertFromString(MutablePeriod.class, str)); 151 } 152 153 public void testYears() { 154 Years test = Years.years(5); 155 String str = StringConvert.INSTANCE.convertToString(test); 156 assertEquals("P5Y", str); 157 assertEquals(test, StringConvert.INSTANCE.convertFromString(Years.class, str)); 158 } 159 160 public void testMonths() { 161 Months test = Months.months(5); 162 String str = StringConvert.INSTANCE.convertToString(test); 163 assertEquals("P5M", str); 164 assertEquals(test, StringConvert.INSTANCE.convertFromString(Months.class, str)); 165 } 166 167 public void testWeeks() { 168 Weeks test = Weeks.weeks(5); 169 String str = StringConvert.INSTANCE.convertToString(test); 170 assertEquals("P5W", str); 171 assertEquals(test, StringConvert.INSTANCE.convertFromString(Weeks.class, str)); 172 } 173 174 public void testDays() { 175 Days test = Days.days(5); 176 String str = StringConvert.INSTANCE.convertToString(test); 177 assertEquals("P5D", str); 178 assertEquals(test, StringConvert.INSTANCE.convertFromString(Days.class, str)); 179 } 180 181 public void testHours() { 182 Hours test = Hours.hours(5); 183 String str = StringConvert.INSTANCE.convertToString(test); 184 assertEquals("PT5H", str); 185 assertEquals(test, StringConvert.INSTANCE.convertFromString(Hours.class, str)); 186 } 187 188 public void testMinutes() { 189 Minutes test = Minutes.minutes(5); 190 String str = StringConvert.INSTANCE.convertToString(test); 191 assertEquals("PT5M", str); 192 assertEquals(test, StringConvert.INSTANCE.convertFromString(Minutes.class, str)); 193 } 194 195 public void testSeconds() { 196 Seconds test = Seconds.seconds(5); 197 String str = StringConvert.INSTANCE.convertToString(test); 198 assertEquals("PT5S", str); 199 assertEquals(test, StringConvert.INSTANCE.convertFromString(Seconds.class, str)); 200 } 201 202 }