public void CanSerializeAndDeserializeComplexHierarchies()
{
var complexHierarchy = ComplexSerializationHierarchy.CreateComplexNonCatelHierarchy();
TestSerializationOnAllSerializers((serializer, config, description) =>
{
var deserializedObject = SerializationTestHelper.SerializeAndDeserialize(complexHierarchy, serializer, config);
Assert.AreEqual(complexHierarchy.LastName, deserializedObject.LastName, description);
Assert.AreEqual(complexHierarchy.Persons.Count, deserializedObject.Persons.Count, description);
for (int i = 0; i < deserializedObject.Persons.Count; i++)
{
var expectedPerson = complexHierarchy.Persons[i];
var actualPerson = deserializedObject.Persons[i];
Assert.AreEqual(expectedPerson.Gender, actualPerson.Gender, description);
Assert.AreEqual(expectedPerson.FirstName, actualPerson.FirstName, description);
Assert.AreEqual(expectedPerson.LastName, actualPerson.LastName, description);
}
});
}
}