View Javadoc

1   /*
2    *  Copyright 2001-2010 Stephen Colebourne
3    *
4    *  Licensed under the Apache License, Version 2.0 (the "License");
5    *  you may not use this file except in compliance with the License.
6    *  You may obtain a copy of the License at
7    *
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    *
10   *  Unless required by applicable law or agreed to in writing, software
11   *  distributed under the License is distributed on an "AS IS" BASIS,
12   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   *  See the License for the specific language governing permissions and
14   *  limitations under the License.
15   */
16  package org.joda.time;
17  
18  import junit.framework.TestCase;
19  import junit.framework.TestSuite;
20  
21  import org.joda.convert.StringConvert;
22  import org.joda.time.chrono.ISOChronology;
23  
24  /**
25   * Test string conversion.
26   *
27   * @author Stephen Colebourne
28   */
29  public class TestStringConvert extends TestCase {
30  
31      private static final DateTimeZone ZONE = DateTimeZone.forID("+02:00");
32  
33      public static void main(String[] args) {
34          junit.textui.TestRunner.run(suite());
35      }
36  
37      public static TestSuite suite() {
38          return new TestSuite(TestStringConvert.class);
39      }
40  
41      public TestStringConvert(String name) {
42          super(name);
43      }
44  
45      protected void setUp() throws Exception {
46      }
47  
48      protected void tearDown() throws Exception {
49      }
50  
51      //-----------------------------------------------------------------------
52      public void testDateMidnight() {
53          DateMidnight test = new DateMidnight(2010, 6, 30, ISOChronology.getInstance(ZONE));
54          String str = StringConvert.INSTANCE.convertToString(test);
55          assertEquals("2010-06-30T00:00:00.000+02:00", str);
56          assertEquals(test, StringConvert.INSTANCE.convertFromString(DateMidnight.class, str));
57      }
58  
59      public void testDateTime() {
60          DateTime test = new DateTime(2010, 6, 30, 2, 30, 50, 678, ISOChronology.getInstance(ZONE));
61          String str = StringConvert.INSTANCE.convertToString(test);
62          assertEquals("2010-06-30T02:30:50.678+02:00", str);
63          assertEquals(test, StringConvert.INSTANCE.convertFromString(DateTime.class, str));
64      }
65  
66      public void testMutableDateTime() {
67          MutableDateTime test = new MutableDateTime(2010, 6, 30, 2, 30, 50, 678, ISOChronology.getInstance(ZONE));
68          String str = StringConvert.INSTANCE.convertToString(test);
69          assertEquals("2010-06-30T02:30:50.678+02:00", str);
70          assertEquals(test, StringConvert.INSTANCE.convertFromString(MutableDateTime.class, str));
71      }
72  
73      public void testLocalDateTime() {
74          LocalDateTime test = new LocalDateTime(2010, 6, 30, 2, 30);
75          String str = StringConvert.INSTANCE.convertToString(test);
76          assertEquals("2010-06-30T02:30:00.000", str);
77          assertEquals(test, StringConvert.INSTANCE.convertFromString(LocalDateTime.class, str));
78      }
79  
80      public void testLocalDate() {
81          LocalDate test = new LocalDate(2010, 6, 30);
82          String str = StringConvert.INSTANCE.convertToString(test);
83          assertEquals("2010-06-30", str);
84          assertEquals(test, StringConvert.INSTANCE.convertFromString(LocalDate.class, str));
85      }
86  
87      public void testLocalTime() {
88          LocalTime test = new LocalTime(2, 30, 50, 678);
89          String str = StringConvert.INSTANCE.convertToString(test);
90          assertEquals("02:30:50.678", str);
91          assertEquals(test, StringConvert.INSTANCE.convertFromString(LocalTime.class, str));
92      }
93  
94      public void testYearMonth() {
95          YearMonth test = new YearMonth(2010, 6);
96          String str = StringConvert.INSTANCE.convertToString(test);
97          assertEquals("2010-06", str);
98          assertEquals(test, StringConvert.INSTANCE.convertFromString(YearMonth.class, str));
99      }
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 }