001: package org.columba.calendar.parser;
002:
003: import java.io.File;
004: import java.util.Iterator;
005:
006: import junit.framework.TestCase;
007:
008: import org.columba.calendar.base.CalendarItem;
009: import org.columba.calendar.base.api.ICalendarItem;
010: import org.columba.calendar.model.api.IEventInfo;
011: import org.columba.calendar.model.api.IRecurrence;
012:
013: import com.miginfocom.calendar.activity.recurrence.RecurrenceRule;
014:
015: public class CalendarImporterTest extends TestCase {
016:
017: public void testImportCalendar() {
018: File example1 = new File(
019: "calendar/src/test/resources/SunbirdEvents.ics");
020: CalendarItem calendarItem = new CalendarItem("example",
021: ICalendarItem.TYPE.LOCAL, "example", null);
022: CalendarImporter importer = new CalendarImporter();
023: Iterator<IEventInfo> i = null;
024: try {
025: i = importer.importCalendar(calendarItem, example1);
026: } catch (Exception e) {
027: e.printStackTrace();
028: fail("Got following exception:" + e.getMessage());
029: }
030:
031: // check three entries
032: for (; i.hasNext();) {
033: IEventInfo entry = i.next();
034: // Event: Anniversary
035: if ("Anniversary".equals(entry.getEvent().getSummary())) {
036: assertEquals("Anniversary", entry.getEvent()
037: .getCategories());
038: assertEquals("Anniversary every year", entry.getEvent()
039: .getDescription());
040: assertEquals(15, entry.getEvent().getDtStamp().get(
041: java.util.Calendar.DAY_OF_MONTH));
042: assertEquals(0, entry.getEvent().getDtStamp().get(
043: java.util.Calendar.MONTH));
044: assertEquals(2007, entry.getEvent().getDtStamp().get(
045: java.util.Calendar.YEAR));
046: // 204524
047: assertEquals(21, entry.getEvent().getDtStamp().get(
048: java.util.Calendar.HOUR_OF_DAY));
049: assertEquals(45, entry.getEvent().getDtStamp().get(
050: java.util.Calendar.MINUTE));
051: assertEquals(24, entry.getEvent().getDtStamp().get(
052: java.util.Calendar.SECOND));
053: assertEquals("cb5f77cd-655d-45f9-9b78-04bb668abccc",
054: entry.getEvent().getId());
055: assertEquals(IRecurrence.RECURRENCE_ANNUALLY, entry
056: .getEvent().getRecurrence().getType());
057: assertEquals(IRecurrence.RECURRENCE_END_FOREVER, entry
058: .getEvent().getRecurrence().getEndType());
059: assertEquals("20070125", entry.getEvent().getDtStart()
060: .get(java.util.Calendar.YEAR)
061: + "0"
062: + (entry.getEvent().getDtStart().get(
063: java.util.Calendar.MONTH) + 1)
064: + ""
065: + entry.getEvent().getDtStart().get(
066: java.util.Calendar.DAY_OF_MONTH) + "");
067: assertEquals("20070126", entry.getEvent().getDtEnd()
068: .get(java.util.Calendar.YEAR)
069: + "0"
070: + (entry.getEvent().getDtEnd().get(
071: java.util.Calendar.MONTH) + 1)
072: + ""
073: + entry.getEvent().getDtEnd().get(
074: java.util.Calendar.DAY_OF_MONTH) + "");
075: // Event: All Day Event
076: } else if ("AllDayEvent".equals(entry.getEvent()
077: .getSummary())) {
078: assertEquals("Business", entry.getEvent()
079: .getCategories());
080: assertEquals("I will the whole day do some work", entry
081: .getEvent().getDescription());
082: assertEquals("PUBLIC", entry.getEvent().getEventClass());
083: assertEquals("5", entry.getEvent().getPriority());
084: assertEquals(15, entry.getEvent().getDtStamp().get(
085: java.util.Calendar.DAY_OF_MONTH));
086: assertEquals(0, entry.getEvent().getDtStamp().get(
087: java.util.Calendar.MONTH));
088: assertEquals(2007, entry.getEvent().getDtStamp().get(
089: java.util.Calendar.YEAR));
090: assertEquals("CONFIRMED", entry.getEvent().getStatus());
091: assertEquals(23, entry.getEvent().getDtStart().get(
092: java.util.Calendar.DAY_OF_MONTH));
093: assertEquals(0, entry.getEvent().getDtStart().get(
094: java.util.Calendar.MONTH));
095: assertEquals(2007, entry.getEvent().getDtStart().get(
096: java.util.Calendar.YEAR));
097: assertEquals(0, entry.getEvent().getDtStart().get(
098: java.util.Calendar.HOUR_OF_DAY));
099: assertEquals(0, entry.getEvent().getDtStart().get(
100: java.util.Calendar.MINUTE));
101: assertEquals(0, entry.getEvent().getDtStart().get(
102: java.util.Calendar.SECOND));
103: assertEquals(24, entry.getEvent().getDtEnd().get(
104: java.util.Calendar.DAY_OF_MONTH));
105: assertEquals(0, entry.getEvent().getDtEnd().get(
106: java.util.Calendar.MONTH));
107: assertEquals(2007, entry.getEvent().getDtEnd().get(
108: java.util.Calendar.YEAR));
109: assertEquals(0, entry.getEvent().getDtEnd().get(
110: java.util.Calendar.HOUR_OF_DAY));
111: assertEquals(0, entry.getEvent().getDtEnd().get(
112: java.util.Calendar.MINUTE));
113: assertEquals(0, entry.getEvent().getDtEnd().get(
114: java.util.Calendar.SECOND));
115: assertEquals("at home", entry.getEvent().getLocation());
116: assertEquals("8197de12-8a20-4dd0-a13a-4e932745914e",
117: entry.getEvent().getId());
118: // Event: Normal Event
119: } else if ("NormalEvent".equals(entry.getEvent()
120: .getSummary())) {
121: System.out.println("Normal Event");
122: }
123: }
124: }
125:
126: public void testImportCalendarRecurrence() {
127: File example1 = new File(
128: "calendar/src/test/resources/SunbirdRecurrendEvents.ics");
129: CalendarItem calendarItem = new CalendarItem("example",
130: ICalendarItem.TYPE.LOCAL, "example", null);
131: CalendarImporter importer = new CalendarImporter();
132: Iterator<IEventInfo> i = null;
133: try {
134: i = importer.importCalendar(calendarItem, example1);
135: } catch (Exception e) {
136: e.printStackTrace();
137: fail("Got following exception:" + e.getMessage());
138: }
139:
140: // check three entries
141: for (; i.hasNext();) {
142: IEventInfo entry = i.next();
143:
144: }
145: }
146:
147: public void testCorrectUid() {
148: String uid = "";
149: assertEquals(true,
150: CalendarImporter.correctUid(uid).length() > 0);
151: uid = "uuid:197601031$§%&§$%&&-_";
152: assertEquals("uuid-197601031----------_", CalendarImporter
153: .correctUid(uid));
154: }
155:
156: }
|