예제 #1
0
        private void SerializeAndAssert(IModelChange change)
        {
            var before = new ModelChangeCollection();

            before.Changes.Add(change);
            var after = Serialize(before, change.GetType());

            Assert.AreEqual(before, after);
        }
예제 #2
0
        private ModelChangeCollection Serialize(ModelChangeCollection before, params Type[] additionalTypes)
        {
            var serializer = new XmiSerializer(additionalTypes);

            string xmi;

            using (var writer = new StringWriter())
            {
                serializer.Serialize(before, writer);
                xmi = writer.ToString();
            }

            using (var reader = new StringReader(xmi))
            {
                return(serializer.Deserialize(reader) as ModelChangeCollection);
            }
        }
예제 #3
0
        public void SerializeElementCreation()
        {
            var toCreate = new Semaphore()
            {
                Id = 1
            };
            var change = new ElementCreation(toCreate);
            var before = new ModelChangeCollection();

            before.Changes.Add(change);
            var after = Serialize(before, typeof(ElementCreation));

            // We can't use SerializeAndAssert, because ElementCreation.Equals
            // compares the Semaphores, which don't implement Equals.

            Assert.AreEqual(1, after.Changes.Count);
            Assert.IsInstanceOfType(after.Changes[0], typeof(ElementCreation));
            var afterChange = (ElementCreation)after.Changes[0];

            Assert.IsInstanceOfType(afterChange.Element, typeof(Semaphore));
            Assert.AreEqual(toCreate.Id, ((Semaphore)afterChange.Element).Id);
        }