Exemple #1
0
        public void CsvWriterWrites_NoID()
        {
            using (MemoryStream stream = new MemoryStream())
            {
                List <Contact> store = new List <Contact>();
                store.Add(Contact.Create("first", "ln", "street", "city", "st", "zip"));
                store.Add(Contact.Create("second", "ln", "street", "city", "st", "zip"));
                store.Add(Contact.Create("third", "ln", "street", "city", "st", "zip"));

                CsvContactWriter writer = new CsvContactWriter();

                writer.Write(stream, store);
                stream.Flush();
                stream.Seek(0, SeekOrigin.Begin);

                StreamReader sr = new StreamReader(stream);

                string header = sr.ReadLine();
                string first  = sr.ReadLine();
                string second = sr.ReadLine();
                string third  = sr.ReadLine();

                Assert.AreEqual("ID,FirstName,LastName,StreetAddress,City,State,PostalCode", header,
                                "Header row is not equal to expected");

                Assert.AreEqual(",first,ln,street,city,st,zip", first);
                Assert.AreEqual(",second,ln,street,city,st,zip", second);
                Assert.AreEqual(",third,ln,street,city,st,zip", third);

                Assert.AreEqual(-1, sr.Peek());
            }
        }
Exemple #2
0
        public void CsvReader_AddWorksAfterRead()
        {
            using (MemoryStream ms = new MemoryStream())
            {
                ContactStore store = new ContactStore();
                store.Add(Contact.Create("first", "ln", "street", "city", "st", "zip"));
                store.Add(Contact.Create("second", "ln", "street", "city", "st", "zip"));
                store.Add(Contact.Create("third", "ln", "street", "city", "st", "zip"));

                CsvContactWriter writer = new CsvContactWriter();

                writer.Write(ms, store.Contacts);

                ms.Seek(0, SeekOrigin.Begin);

                CsvContactReader reader   = new CsvContactReader();
                List <Contact>   contacts = new List <Contact>(reader.Read(ms));

                Assert.AreEqual(3, contacts.Count, "There should be 3 contacts");
                Assert.AreEqual("first", contacts[0].FirstName);
                Assert.AreEqual("second", contacts[1].FirstName);
                Assert.AreEqual("third", contacts[2].FirstName);

                store.Add(Contact.Create("fourth", "ln", "street", "city", "st", "zip"));
                Assert.AreEqual(4, store.Contacts.Count(), "There should be four contacts");

                ContactFieldFilter filter = new ContactFieldFilter();
                filter.SetFirstName("fourth");

                var found = store.Search(filter);
                Assert.AreEqual(1, found.Count(), "There should have been one item found");
                Assert.AreEqual("fourth", found.First().FirstName, "The contact name was wrong");
            }
        }
        public override CommandResult Execute()
        {
            if (!Args.ContainsKey("file"))
            {
                Log.Error(@"Save command requires a 'file' argument with the path to a new or existing CSV file.");
                return(null);
            }

            string file = Args["file"];

            using (Stream strm = File.OpenWrite(file))
            {
                CsvContactWriter writer = new CsvContactWriter();
                writer.Write(strm, Store.Contacts);
            }

            return(new NonUndoCommandResult(this, new List <Contact>(0)));
        }
Exemple #4
0
        public void CsvReader_ReadsHappyPath_RoundTrip()
        {
            using (MemoryStream ms = new MemoryStream())
            {
                ContactStore store = new ContactStore();
                store.Add(Contact.Create("first", "ln", "street", "city", "st", "zip"));
                store.Add(Contact.Create("second", "ln", "street", "city", "st", "zip"));
                store.Add(Contact.Create("third", "ln", "street", "city", "st", "zip"));

                CsvContactWriter writer = new CsvContactWriter();

                writer.Write(ms, store.Contacts);

                ms.Seek(0, SeekOrigin.Begin);

                CsvContactReader reader   = new CsvContactReader();
                List <Contact>   contacts = new List <Contact>(reader.Read(ms));

                Assert.AreEqual(3, contacts.Count, "There should be 3 contacts");
                Assert.AreEqual("first", contacts[0].FirstName);
                Assert.AreEqual("second", contacts[1].FirstName);
                Assert.AreEqual("third", contacts[2].FirstName);
            }
        }