01: package org.vraptor.converter.joda;
02:
03: import org.joda.time.LocalDate;
04: import org.vraptor.AbstractTest;
05: import org.vraptor.LogicRequest;
06: import org.vraptor.converter.ConversionException;
07:
08: import java.util.Arrays;
09: import java.util.Date;
10: import java.util.GregorianCalendar;
11: import java.util.Locale;
12:
13: public class LocalDateConverterTest extends AbstractTest {
14: public void testCanConvert() {
15: assertTrue(Arrays.deepEquals(new LocalDateConverter()
16: .getSupportedTypes(), new Class[] { LocalDate.class }));
17: }
18:
19: public void testConvertNull() throws ConversionException {
20: LogicRequest context = getSetContext();
21: Object convertedNull = new LocalDateConverter().convert(null,
22: LocalDate.class, context);
23: Object convertedEmpty = new LocalDateConverter().convert("",
24: LocalDate.class, context);
25: assertNull("Null", convertedNull);
26: assertNull("Empty", convertedEmpty);
27: }
28:
29: public void testConvert() throws ConversionException {
30: LogicRequest context = getSetContext();
31: LocalDate expected = new LocalDate(1970, 1, 1);
32: assertEquals(expected, new LocalDateConverter().convert(
33: "1/1/1970", LocalDate.class, context));
34: }
35:
36: public void testConvertFromCalendar() throws ConversionException {
37: LogicRequest context = getSetContext();
38: GregorianCalendar calendar = new GregorianCalendar(1970, 0, 1);
39: LocalDate expectedFromCalendar = LocalDate
40: .fromCalendarFields(calendar);
41: Object converted = new LocalDateConverter().convert("1/1/1970",
42: LocalDate.class, context);
43: assertEquals(expectedFromCalendar, converted);
44: }
45:
46: public void testConvertFromDate() throws ConversionException {
47: LogicRequest context = getSetContext();
48: Date date = new GregorianCalendar(1970, 0, 1).getTime();
49: LocalDate expectedFromDate = LocalDate.fromDateFields(date);
50: Object converted = new LocalDateConverter().convert("1/1/1970",
51: LocalDate.class, context);
52: assertEquals(expectedFromDate, converted);
53: }
54:
55: private LogicRequest getSetContext() {
56: LogicRequest context = createLogicRequest();
57: context.getSessionContext().setAttribute(
58: "javax.servlet.jsp.jstl.fmt.locale.session",
59: Locale.ENGLISH);
60: return context;
61: }
62:
63: public void testConvertionError() {
64: LogicRequest context = getSetContext();
65: try {
66: new LocalDateConverter().convert("XX:YY", LocalDate.class,
67: context);
68: fail();
69: } catch (ConversionException e) {
70: // ok
71: }
72: }
73:
74: }
|