示例#1
0
        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());
                            }
                        }
        }
示例#2
0
 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());
         }
     }
 }
示例#3
0
        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());
        }
示例#4
0
 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());
         }
     }
 }
示例#5
0
        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);
                    }
                }
            }
        }
示例#6
0
 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);
             }
         }
     }
 }
示例#7
0
        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());
            }
        }
示例#8
0
        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);
        }
示例#9
0
        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);
                }
            }
        }
示例#10
0
        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
        }
示例#11
0
        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);
        }