static void QuickDynamicTest() { ChoKVPRecordConfiguration config = new ChoKVPRecordConfiguration(); ChoKVPRecordFieldConfiguration idConfig = new ChoKVPRecordFieldConfiguration("UID"); config.KVPRecordFieldConfigurations.Add(idConfig); config.KVPRecordFieldConfigurations.Add(new ChoKVPRecordFieldConfiguration("DTSTAMP")); //config.KVPRecordFieldConfigurations.Add(new ChoKVPRecordFieldConfiguration("DTSTART")); //config.KVPRecordFieldConfigurations.Add(new ChoKVPRecordFieldConfiguration("DTENDX")); //config.KVPRecordFieldConfigurations.Add(new ChoKVPRecordFieldConfiguration("DTEND")); using (var stream = new MemoryStream()) using (var reader = new StreamReader(stream)) using (var writer = new StreamWriter(stream)) using (var parser = new ChoKVPReader(reader, config).ColumnCountStrict().ColumnOrderStrict()) { writer.WriteLine("BEGIN:VCALENDAR"); writer.WriteLine("VERSION:2.0"); writer.WriteLine("PRODID:-//hacksw/handcal//NONSGML v1.0//EN"); writer.WriteLine("[BEGIN:VEVENT"); writer.WriteLine("UID:[email protected]"); writer.WriteLine(" [email protected]"); writer.WriteLine("DTSTAMP:19970714T170000Z"); //writer.WriteLine("ORGANIZER;CN=John Doe:MAILTO:[email protected]"); //writer.WriteLine("DTSTART:19970714T170000Z"); //writer.WriteLine("DTEND:19970715T035959Z"); //writer.WriteLine("SUMMARY:Bastille Day Party"); //writer.WriteLine("END:VEVENT]"); //writer.WriteLine("[BEGIN:VEVENT"); //writer.WriteLine("UID:[email protected]"); //writer.WriteLine("DTSTAMP:19970714T170000Z"); //writer.WriteLine("ORGANIZER;CN=John Doe:MAILTO:[email protected]"); //writer.WriteLine("DTSTART:19970714T170000Z"); //writer.WriteLine("DTEND:19970715T035959Z"); //writer.WriteLine("SUMMARY:Bastille Day Party"); writer.WriteLine("END:VEVENT]"); writer.WriteLine("END:VCALENDAR"); writer.Flush(); stream.Position = 0; //parser.Configuration.RecordStart = "BEGIN:VCALENDAR"; //parser.Configuration.RecordEnd = "END:VEVENT"; //parser.Configuration.RecordStart = "[BEGIN:VEVENT"; //parser.Configuration.RecordEnd = "END:VEVENT"; parser.Configuration.RecordStart = "[BEGIN:VEVENT"; parser.Configuration.RecordEnd = "END:VEVENT]"; object rec; while ((rec = parser.Read()) != null) { Console.WriteLine(rec.ToStringEx()); } } }
static void LoadTest() { using (var r = new ChoKVPReader(@"C:\Users\raj\Documents\GitHub\ChoETL\src\Test\ChoKVPReaderTest\Maldives Holidays Calendar.ics").NotifyAfter(25)) { r.Configuration.RecordStart = "BEGIN:VEVENT"; r.Configuration.RecordEnd = "END:VEVENT"; foreach (var item in r) { Console.WriteLine(item.ToStringEx()); } } }
public static void LoadINIFileTest() { List <object> expected = new List <object> { new ChoDynamicObject { { "102", "Προβολή" }, { "103", "Επιλογές" }, { "104", "Απεγκαταστάτης" }, { "105", "Εργαλεία" }, { "106", "Λειτουργία Ανίχνευσης" }, { "107", "Κατάλογος" }, { "108", "Εικονίδια" }, { "109", "Λεπτομέρειες" }, { "110", "Απεγκατάσταση" }, { "111", "Απομάκρυνση Καταχώρησης" }, { "112", "Ανανέωση" }, { "113", "Είστε βέβαιοι πως θέλετε να απομακρύνετε της επιλεγμένη καταχώρηση;" }, { "114", "Είστε βέβαιοι πως θέλετε να απεγκαταστήσετε την επιλεγμένη εφαρμογή;" }, { "115", "Ενημέρωση" }, { "116", "Βοήθεια" }, { "117", "Βοήθεια Τρέχοντος Εργαλείου..." }, { "118", "Αρχική σελίδα..." }, { "119", "Περί..." }, { "120", "Δεν είστε Διαχειριστής!" }, { "121", "Είστε βέβαιοι ότι θέλετε να αφαιρέσετε το επιλεγμένο στοιχείο συστήματος?\\nSTOP, εκτός και είστε βέβαιοι τι κάνετε!" }, { "122", @"Το Revo Uninstaller σας παρουσιάζει όλα τα εγκατεστημένα προγράμματα και συστατικά για όλους τους χρήστες. Στον τύπο άποψης ""Λεπτομέρειες"", ή από τον κατάλογο επιλογών, μπορείτε να έχετε πρόσβαση σε πρόσθετες πληροφορίες (συνδέσεις και ιδιότητες για τις εγκαταστάσεις). Ένα βασικό χαρακτηριστικό γνώρισμα του Revo Uninstaller είναι η ""Λειτουργία Ανίχνευσης"". Αυτή η κατάσταση σας δίνει την ευελιξία να απεγκαταστήσετε, σταματήσετε, διαγράψετε ή να θέσετε εκτός λειτουργίας, προγράμματα από την αυτόματη εκκίνηση, με ένα κλικ." }, { "123", "Αναζήτηση:" }, { "124", "Εύρεση:" }, { "125", "Είστε βέβαιοι ότι θέλετε να αφαιρέσετε το επιλεγμένο στοιχείο συστήματος από το Μητρώο?\\nΤο στοιχείο πιθανώς είναι απαραίτητο στο λειτουργικό!" }, { "126", "δεν πρόκειται να εκκινήσει αυτόματα ξανά!" }, { "127", "είναι ρυθμισμένο σε αυτόματη εκκίνηση" }, { "128", "%s είναι εγκατεστημένο στην ίδια θέση με %s!\\nΠρόκειται να βρεθούν κατάλοιπα και από τις δύο εφαρμογές. Επιλέξτε με προσοχή ποιά θέλετε να απομακρύνετε!" }, { "129", "Εξαναγκασμένη Απεγκατάσταση" } } }; object[] actual = null; Assert.Warn(@"File C:\Program Files (x86)\VS Revo Group\Revo Uninstaller\lang\hellenic.ini not found, instead downloaded file from https://revouninstaller.net/revo_uninstaller_language_files_download.html and added to project. Please check."); using (var r = new ChoKVPReader(FileNameHellenicINI).WithDelimiter("=")) { r.Configuration.RecordStart = "[Uninstaller Toolbar]"; r.Configuration.RecordEnd = "[*"; r.Configuration.IgnoreEmptyLine = true; r.Configuration.Comment = ";"; actual = r.ToArray(); } CollectionAssert.AreEqual(expected, actual.ToList()); }
static void LoadINIFileTest() { using (var r = new ChoKVPReader(@"C:\Program Files (x86)\VS Revo Group\Revo Uninstaller\lang\hellenic.ini").WithDelimiter("=")) { r.Configuration.RecordStart = "[Uninstaller Toolbar]"; r.Configuration.RecordEnd = "[*"; r.Configuration.IgnoreEmptyLine = true; r.Configuration.Comment = ";"; foreach (dynamic item in r.ToArray()) { Console.WriteLine(item._102); Console.WriteLine(((object)item).ToStringEx()); } } }
static void LoadPOCOTest() { ChoETLFrxBootstrap.TraceLevel = System.Diagnostics.TraceLevel.Verbose; using (var r = new ChoKVPReader <CalendarEvent>(@"C:\Users\raj\Documents\GitHub\ChoETL\src\Test\ChoKVPReaderTest\Maldives Holidays Calendar.ics")) { using (var c = new ChoCSVWriter <CalendarEvent>(Console.Out)) { foreach (var item in r) { c.Write(item); } } } }
static void ConvertToCSVTest() { using (var r = new ChoKVPReader(@"C:\Users\raj\Documents\GitHub\ChoETL\src\Test\ChoKVPReaderTest\Maldives Holidays Calendar.ics").NotifyAfter(25)) { r.Configuration.RecordStart = "BEGIN:VEVENT"; r.Configuration.RecordEnd = "END:VEVENT"; using (var c = new ChoCSVWriter(Console.Out)) { foreach (var item in r) { c.Write(item); } } } }
public static void QuickTest() { using (var r = new ChoKVPReader(FileNameSampleICS)) { r.Configuration.RecordStart = "BEGIN:VEVENT"; r.Configuration.RecordEnd = "END:VEVENT"; r.Configuration.IgnoreEmptyLine = true; r.Configuration.Comment = ";"; //foreach (dynamic item in r) //{ // Console.WriteLine(item.SUMMARY); //} Assert.Throws <ChoETL.ChoRecordConfigurationException>(() => r.Read()); } }
public static void ConvertToCSVWithHeaderTest() { Assert.Warn(@"Original File ""C: \Users\raj\Documents\GitHub\ChoETL\src\Test\ChoKVPReaderTest\Maldives Holidays Calendar.ics"" not found. Used Copy (2) instead. Please check."); using (var r = new ChoKVPReader(FileNameMaldivesHolidaysCalendarCopy2ICS).NotifyAfter(25)) { r.Configuration.RecordStart = "BEGIN:VEVENT"; r.Configuration.RecordEnd = "END:VEVENT"; using (var c = new ChoCSVWriter(FileNameConvertToCSVWithHeaderTestActualCSV)) { foreach (var item in r) { c.Write(item); } } } FileAssert.AreEqual(FileNameConvertToCSVWithHeaderTestExpectedCSV, FileNameConvertToCSVWithHeaderTestActualCSV); }
static void QuickTest() { using (var r = new ChoKVPReader(@"sample.ics")) { r.Configuration.RecordStart = "BEGIN:VEVENT"; r.Configuration.RecordEnd = "END:VEVENT"; r.Configuration.IgnoreEmptyLine = true; r.Configuration.Comment = ";"; //foreach (dynamic item in r) //{ // Console.WriteLine(item.SUMMARY); //} dynamic rec; while ((rec = r.Read()) != null) { Console.WriteLine(rec.DESCRIPTION); } } }
public static void LoadPOCOTest() { Assert.Warn(@"Original file ""C:\Users\raj\Documents\GitHub\ChoETL\src\Test\ChoKVPReaderTest\Maldives Holidays Calendar.ics"" not found. Used Copy (2) instead. Please check."); ChoETLFrxBootstrap.TraceLevel = System.Diagnostics.TraceLevel.Verbose; using (var r = new ChoKVPReader <CalendarEvent>(FileNameMaldivesHolidaysCalendarCopy2ICS)) { using (var c = new ChoCSVWriter <CalendarEvent>(FileNameLoadPOCOTestActualCSV)) { foreach (var item in r) { c.Write(item); } } } FileAssert.AreEqual(FileNameLoadPOCOTestExpectedCSV, FileNameLoadPOCOTestActualCSV); // TODO: Move line 426 to 432 in file ChoKVPRecordReader should solve that problem }
public static void LoadTest() { Assert.Warn(@"Original file ""C:\Users\raj\Documents\GitHub\ChoETL\src\Test\ChoKVPReaderTest\Maldives Holidays Calendar.ics"" not found. Used Copy (2) instead. Please check."); List <object> expected = new List <object> { new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20091111" }, { "DTEND;VALUE=DATE", "20091112" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20081209T105319Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20081209T105319Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "Republic Day" }, { "EMAIL;[email protected],[email protected]", null }, { "TRANSP", "TRANSPARENT" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20081207" }, { "DTEND;VALUE=DATE", "20081208" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20071119T101310Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20071119T101631Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "Hajj Day" }, { "TRANSP", "OPAQUE" }, { "CATEGORIES:http", "//schemas.google.com/g/2005#event" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20091218" }, { "DTEND;VALUE=DATE", "20091219" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20081209T105432Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20081209T105432Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "Islamic New Year (H1431)" }, { "TRANSP", "TRANSPARENT" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20090822" }, { "DTEND;VALUE=DATE", "20090823" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20090227T132445Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20090227T132445Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "1st Ramazan" }, { "TRANSP", "TRANSPARENT" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20090726" }, { "DTEND;VALUE=DATE", "20090727" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20081209T105215Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20090227T133815Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "Independence Day" }, { "TRANSP", "TRANSPARENT" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20081001" }, { "DTEND;VALUE=DATE", "20081002" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20071119T101157Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20071119T101636Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "Eid Al-Fithr" }, { "TRANSP", "OPAQUE" }, { "CATEGORIES:http", "//schemas.google.com/g/2005#event" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20071221" }, { "DTEND;VALUE=DATE", "20071222" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20071117T130834Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20071215T112725Z" }, { "LOCATION", null }, { "SEQUENCE", "1" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "Eid-al-Adha 3" }, { "TRANSP", "OPAQUE" }, { "CATEGORIES:http", "//schemas.google.com/g/2005#event" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20090727" }, { "DTEND;VALUE=DATE", "20090728" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20081209T105245Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20081209T105245Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "on the occasion of Independence Day)" }, { "TRANSP", "TRANSPARENT" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20081103" }, { "DTEND;VALUE=DATE", "20081104" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20071119T101230Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20071119T101634Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "Victory Day" }, { "TRANSP", "OPAQUE" }, { "CATEGORIES:http", "//schemas.google.com/g/2005#event" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20071218" }, { "DTEND;VALUE=DATE", "20071219" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20071117T130833Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20071215T112712Z" }, { "LOCATION", null }, { "SEQUENCE", "2" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "Hajj Day" }, { "TRANSP", "OPAQUE" }, { "CATEGORIES:http", "//schemas.google.com/g/2005#event" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20090226" }, { "DTEND;VALUE=DATE", "20090227" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20081209T105041Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20081209T105041Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "National Day" }, { "TRANSP", "TRANSPARENT" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20071220" }, { "DTEND;VALUE=DATE", "20071221" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20071117T130837Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20071215T112715Z" }, { "LOCATION", null }, { "SEQUENCE", "1" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "Eid-al-Adha 2" }, { "TRANSP", "OPAQUE" }, { "CATEGORIES:http", "//schemas.google.com/g/2005#event" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20091126" }, { "DTEND;VALUE=DATE", "20091127" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20081209T105330Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20081209T105330Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "Hajj Day" }, { "TRANSP", "TRANSPARENT" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20081002" }, { "DTEND;VALUE=DATE", "20081004" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20071119T101217Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20071119T101635Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "Holiday on the Ocassion of Eid Al-Fithr" }, { "TRANSP", "OPAQUE" }, { "CATEGORIES:http", "//schemas.google.com/g/2005#event" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20071222" }, { "DTEND;VALUE=DATE", "20071223" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20071117T130835Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20071215T112727Z" }, { "LOCATION", null }, { "SEQUENCE", "1" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "Eid-al-Adha 4" }, { "TRANSP", "OPAQUE" }, { "CATEGORIES:http", "//schemas.google.com/g/2005#event" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20080110" }, { "DTEND;VALUE=DATE", "20080111" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20071119T100932Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20071119T101628Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "Islamic New Year" }, { "TRANSP", "OPAQUE" }, { "CATEGORIES:http", "//schemas.google.com/g/2005#event" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20071103" }, { "DTEND;VALUE=DATE", "20071104" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20071117T130835Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20071117T130835Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "Victory Day" }, { "TRANSP", "OPAQUE" }, { "CATEGORIES:http", "//schemas.google.com/g/2005#event" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20091127" }, { "DTEND;VALUE=DATE", "20091128" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20081209T105340Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20081209T105340Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "Eid-ul Al'haa" }, { "TRANSP", "TRANSPARENT" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20080309" }, { "DTEND;VALUE=DATE", "20080310" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20071119T100947Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20071119T101641Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "National Day" }, { "TRANSP", "OPAQUE" }, { "CATEGORIES:http", "//schemas.google.com/g/2005#event" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20071219" }, { "DTEND;VALUE=DATE", "20071220" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20071117T130837Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20071215T112712Z" }, { "LOCATION", null }, { "SEQUENCE", "1" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "Eid-al-Adha" }, { "TRANSP", "OPAQUE" }, { "CATEGORIES:http", "//schemas.google.com/g/2005#event" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20080727" }, { "DTEND;VALUE=DATE", "20080728" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20071119T101126Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20071119T101638Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "Holiday on the Ocassion of Independence Day" }, { "TRANSP", "OPAQUE" }, { "CATEGORIES:http", "//schemas.google.com/g/2005#event" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20090309" }, { "DTEND;VALUE=DATE", "20090310" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20081209T105108Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20081209T105108Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "Prophet Muhammad's Birthday" }, { "TRANSP", "TRANSPARENT" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20100101" }, { "DTEND;VALUE=DATE", "20100102" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20081209T105440Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20081209T105440Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "New Year" }, { "TRANSP", "TRANSPARENT" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20081229" }, { "DTEND;VALUE=DATE", "20081230" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20071119T101431Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20071119T101642Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "Islamic New Year" }, { "TRANSP", "OPAQUE" }, { "CATEGORIES:http", "//schemas.google.com/g/2005#event" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20090920" }, { "DTEND;VALUE=DATE", "20090921" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20090227T132530Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20090227T132714Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "Eid-ul Fitr" }, { "TRANSP", "TRANSPARENT" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20080726" }, { "DTEND;VALUE=DATE", "20080727" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20071119T101045Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20071119T101638Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "Independence Day" }, { "TRANSP", "OPAQUE" }, { "CATEGORIES:http", "//schemas.google.com/g/2005#event" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20090329" }, { "DTEND;VALUE=DATE", "20090330" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20081209T105128Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20081209T105128Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "Maldives' Embracement to Islam" }, { "TRANSP", "TRANSPARENT" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20080101" }, { "DTEND;VALUE=DATE", "20080102" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20071117T130838Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20071117T130838Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "New Year's Day" }, { "TRANSP", "OPAQUE" }, { "CATEGORIES:http", "//schemas.google.com/g/2005#event" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20081209" }, { "DTEND;VALUE=DATE", "20081212" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20071119T101401Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20071119T101630Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "Holiday on the Ocassion of Eid Al-haa (H1429)" }, { "TRANSP", "OPAQUE" }, { "CATEGORIES:http", "//schemas.google.com/g/2005#event" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20080408" }, { "DTEND;VALUE=DATE", "20080409" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20071119T101030Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20071119T101639Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "Maldives Embracement to Islam" }, { "TRANSP", "OPAQUE" }, { "CATEGORIES:http", "//schemas.google.com/g/2005#event" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20071111" }, { "DTEND;VALUE=DATE", "20071112" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20071117T130834Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20071117T130834Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "Republic Day" }, { "TRANSP", "OPAQUE" }, { "CATEGORIES:http", "//schemas.google.com/g/2005#event" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20080901" }, { "DTEND;VALUE=DATE", "20080902" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20071119T101141Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20071119T101637Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "First of Ramazan" }, { "TRANSP", "OPAQUE" }, { "CATEGORIES:http", "//schemas.google.com/g/2005#event" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20090101" }, { "DTEND;VALUE=DATE", "20090102" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20071119T101421Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20071119T101629Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "New Year Day" }, { "TRANSP", "OPAQUE" }, { "CATEGORIES:http", "//schemas.google.com/g/2005#event" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20091103" }, { "DTEND;VALUE=DATE", "20091104" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20081209T105312Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20081209T105312Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "Victory Day" }, { "TRANSP", "TRANSPARENT" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20080320" }, { "DTEND;VALUE=DATE", "20080321" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20071119T101006Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20071119T101640Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "Prophet Mohamed's Birthday" }, { "TRANSP", "OPAQUE" }, { "CATEGORIES:http", "//schemas.google.com/g/2005#event" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20081208" }, { "DTEND;VALUE=DATE", "20081209" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20071119T101332Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20071119T101631Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "Eid Al-haa (H1429)" }, { "TRANSP", "OPAQUE" }, { "CATEGORIES:http", "//schemas.google.com/g/2005#event" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20081111" }, { "DTEND;VALUE=DATE", "20081112" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20071119T101241Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20071119T101632Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "Republic Day" }, { "TRANSP", "OPAQUE" }, { "CATEGORIES:http", "//schemas.google.com/g/2005#event" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20091128" }, { "DTEND;VALUE=DATE", "20091201" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20081209T105356Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20081209T105356Z" }, { "LOCATION", null }, { "SEQUENCE", "0" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "(on the occasion of Eid-ul Al'haa)" }, { "TRANSP", "TRANSPARENT" } }, new ChoDynamicObject { { "DTSTART;VALUE=DATE", "20090921" }, { "DTEND;VALUE=DATE", "20090923" }, { "DTSTAMP", "20090301T061852Z" }, { "UID", "*****@*****.**" }, { "CLASS", "PRIVATE" }, { "CREATED", "20090227T132543Z" }, { "DESCRIPTION", null }, { "LAST-MODIFIED", "20090227T133830Z" }, { "LOCATION", null }, { "SEQUENCE", "4" }, { "STATUS", "CONFIRMED" }, { "SUMMARY", "On the occassion of Eid-ul Fitr" }, { "TRANSP", "TRANSPARENT" } } }; List <object> actual = new List <object>(); using (var r = new ChoKVPReader(FileNameMaldivesHolidaysCalendarCopy2ICS).NotifyAfter(25)) { r.Configuration.RecordStart = "BEGIN:VEVENT"; r.Configuration.RecordEnd = "END:VEVENT"; foreach (var item in r) { actual.Add(item); } } CollectionAssert.AreEqual(expected, actual); }