public void ParseReferenceFields() { var random = new Random(); var source = new SimpleFieldsWithReference { DateTimeValue = DateTime.Now, DecimalValue = new Decimal(random.NextDouble() * 100), GuidValue = Guid.NewGuid(), Another = new SimpleFields { DateTimeValue = DateTime.UtcNow, DecimalValue = new Decimal(random.NextDouble() * 100), GuidValue = Guid.NewGuid() } }; var target = Parse(source); var outer = typeof(SimpleFieldsWithReference); Assert.That(target.AssemblyName, Is.EqualTo(outer.Assembly.GetName().ToString())); Assert.That(target.TypeName, Is.EqualTo(outer.Namespace + "." + outer.DeclaringType.Name + "+" + outer.Name)); Assert.That(target["DateTimeValue"], Is.EqualTo(source.DateTimeValue)); Assert.That(target["DecimalValue"], Is.EqualTo(source.DecimalValue)); Assert.That(target["GuidValue"], Is.EqualTo(source.GuidValue)); var anotherObj = target["Another"]; Assert.That(anotherObj, Is.InstanceOf<ObjectValues>()); var another = anotherObj as ObjectValues; var inner = typeof(SimpleFields); Assert.That(another.AssemblyName, Is.EqualTo(inner.Assembly.GetName().ToString())); Assert.That(another.TypeName, Is.EqualTo(inner.Namespace + "." + inner.DeclaringType.Name + "+" + inner.Name)); Assert.That(another["DateTimeValue"], Is.EqualTo(source.Another.DateTimeValue)); Assert.That(another["DecimalValue"], Is.EqualTo(source.Another.DecimalValue)); Assert.That(another["GuidValue"], Is.EqualTo(source.Another.GuidValue)); }
public void ParseObjectNull() { var source = new SimpleFieldsWithReference(); var target = Parse(source); Assert.That(target["Another"], Is.Null); }