public void EditableObjectModelCollection_SerializationTest1()
        {
            var root   = new EditablePersonCollectionRoot();
            var people = root.EditablePersonCollection;

            people.FirstName = "Tom";
            people.LastName  = "Jones";

            people.Add(new EditablePerson());
            people.Add(new EditablePerson());
            people.Add(new EditablePerson());

            people.AcceptChanges();

            var stream     = new MemoryStream();
            var serializer = new DataContractSerializer(typeof(EditablePersonCollectionRoot));

            serializer.WriteObject(stream, root);
            stream.Position = 0;
            var newRoot   = (EditablePersonCollectionRoot)serializer.ReadObject(stream);
            var newPeople = newRoot.EditablePersonCollection;

            //Property serialization isn't supported by the data contract serializer
            //Assert.AreEqual(people.FirstName, newPeople.FirstName);
            //Assert.AreEqual(people.LastName, newPeople.LastName);
            //Assert.AreEqual(people.FullName, newPeople.FullName);
            Assert.AreEqual(people.IsChangedLocal, newPeople.IsChangedLocal);
            Assert.AreEqual(people.Count, newPeople.Count);
        }
        public void EditableObjectModelCollection_SerializationTest1()
        {
            var root = new EditablePersonCollectionRoot();
            var people = root.EditablePersonCollection;
            people.FirstName = "Tom";
            people.LastName = "Jones";

            people.Add(new EditablePerson());
            people.Add(new EditablePerson());
            people.Add(new EditablePerson());

            people.AcceptChanges();

            var stream = new MemoryStream();
            var serializer = new DataContractSerializer(typeof(EditablePersonCollectionRoot));
            serializer.WriteObject(stream, root);
            stream.Position = 0;
            var newRoot = (EditablePersonCollectionRoot)serializer.ReadObject(stream);
            var newPeople = newRoot.EditablePersonCollection;

            //Property serialization isn't supported by the data contract serializer
            //Assert.AreEqual(people.FirstName, newPeople.FirstName);
            //Assert.AreEqual(people.LastName, newPeople.LastName);
            //Assert.AreEqual(people.FullName, newPeople.FullName);
            Assert.AreEqual(people.IsChangedLocal, newPeople.IsChangedLocal);
            Assert.AreEqual(people.Count, newPeople.Count);
        }