public void AppendCsvList()
        {
            ListSerializable <User> users = new UserList();

            users.Add(new User("Toto", "Titi"));
            users.Add(new User("Tata", "Roro"));

            IWriter <User> writer = new CsvWriter <User>(';');

            writer.Write <UserList>(users, CsvFile);

            ListSerializable <User> OtherUsers = new UserList();

            OtherUsers.Add(new User("lala", "lala"));
            OtherUsers.Add(new User("test", "test"));

            writer.Append <UserList>(OtherUsers, CsvFile, "users");

            IReader <User>    reader    = new CsvReader <User>(';');
            Collection <User> usersList = reader.read <UserList>(CsvFile);

            Assert.AreEqual(4, usersList.Count);
            for (int i = 0; i < users.Count(); i++)
            {
                Assert.AreEqual(users[i].Name, usersList[i].Name);
                Assert.AreEqual(users[i].Firstname, usersList[i].Firstname);
            }

            for (int i = 0; i < OtherUsers.Count(); i++)
            {
                Assert.AreEqual(OtherUsers[i].Name, usersList[i + 2].Name);
                Assert.AreEqual(OtherUsers[i].Firstname, usersList[i + 2].Firstname);
            }
        }
        public void AppendCsv()
        {
            User user = new User("Toto", "Titi");

            IWriter <User> writer = new CsvWriter <User>(';');

            writer.Write(user, CsvFile);

            User user2 = new User("tata", "tata");

            writer.Append <UserList>(user2, CsvFile);

            IReader <User>    reader    = new CsvReader <User>(';');
            Collection <User> usersList = reader.read <UserList>(CsvFile);

            Assert.AreEqual(2, usersList.Count);

            Assert.AreEqual(user.Name, usersList[0].Name);
            Assert.AreEqual(user.Firstname, usersList[0].Firstname);

            Assert.AreEqual(user.Name, usersList[0].Name);
            Assert.AreEqual(user.Firstname, usersList[0].Firstname);

            Assert.AreEqual(user2.Name, usersList[1].Name);
            Assert.AreEqual(user2.Firstname, usersList[1].Firstname);
        }
        public void AppendCsvFile()
        {
            User user = new User("Toto", "Titi");

            IWriter <User> writer = new CsvWriter <User>(';');

            writer.Write(user, CsvFile);

            User user2 = new User("tata", "tata");

            writer.Append <UserList>(user2, CsvFile);

            IReader <User> reader = new CsvReader <User>(';');

            reader.read <UserList>("invalidFile.csv");
        }
        public void DeserializeWithHeader()
        {
            ListSerializable <User> users = new UserList();

            users.Add(new User("Toto", "Titi"));
            users.Add(new User("Tata", "Roro"));

            IWriter <User> writer = new CsvWriter <User>(';', new StringList {
                "Name", "Firstname"
            });

            writer.Write <UserList>(users, CsvFile);

            writer.Append <UserList>(new User("test", "test"), CsvFile);

            IReader <User> reader = new CsvReader <User>(';', new StringList {
                "Name", "Firstname"
            });
            Collection <User> usersList = reader.read <UserList>(CsvFile);

            Assert.AreEqual(3, usersList.Count);
        }
        public void AppendCsvAndAddHeader()
        {
            User user = new User("Toto", "Titi");

            IWriter <User> writer = new CsvWriter <User>(';');

            //write file without header
            writer.Write(user, CsvFile);

            writer = new CsvWriter <User>(';', new StringList {
                "Name", "Firstname"
            });
            User user2 = new User("tata", "tata");

            //append user and add header
            writer.Append <UserList>(user2, CsvFile);

            CsvReader <User> reader    = new CsvReader <User>(';');
            StringList       usersList = reader.readLine(CsvFile, true);

            Assert.AreEqual(3, usersList.Count());

            Assert.AreEqual("Name;Firstname", usersList.First());
        }