public void CanCustomizeHowReferencesAreResolved() { var xml = Assembly.GetExecutingAssembly() .GetManifestResourceStream(@"SquaredInfinity.Foundation.Serialization.UnitTests.Serialization.FlexiXml.Repository.Resources.repository.xml") .ReadToEnd(); var xDoc = XDocument.Parse(xml); var s = new FlexiXmlSerializer(); var options = new FlexiXmlSerializationOptions(); options.UniqueIdAttributeName = XName.Get("name"); options.UniqueIdReferenceAttributeName = XName.Get("ref"); var o = s.Deserialize<Configuration>(xDoc, options); Assert.IsNotNull(o); Assert.AreEqual(2, o.Repository.Formatters.Count); Assert.AreEqual(2, o.Emails.Count); Assert.AreSame(o.Repository.Formatters[0], o.Emails[0].BodyFormatter); Assert.AreSame(o.Repository.Formatters[1], o.Emails[0].SubjectFormatter); Assert.AreSame(o.Repository.Formatters[0], o.Emails[1].BodyFormatter); Assert.AreSame(o.Repository.Formatters[1], o.Emails[1].SubjectFormatter); }
public void UsesKnownTypesLookup() { // in this test Entity on root is serialized as TestEntityA, but KnownTypes mappign is set (all in xml) to TestEntityB // Entity should therefore resolve to TestEntityB var xml = Assembly.GetExecutingAssembly() .GetManifestResourceStream(@"SquaredInfinity.Foundation.Serialization.FlexiXml.KnownTypesLookup.KnownTypesLookup.xml") .ReadToEnd(); var s = new FlexiXmlSerializer(); var op = new FlexiXmlSerializationOptions(); op.TypeInformation = TypeInformation.LookupOnly; var root = s.Deserialize<TestRoot>(xml, op); Assert.IsNotNull(root); Assert.AreEqual(typeof(TestEntityB), root.Entity.GetType()); Assert.AreEqual(13, root.Entity.Id); }