public void Should_Serialize_Fields() { var mapping = ObjectSerializationMapper.Create() .FromType <FieldTestClass>() .PublicFields() .Map(); var serializationOps = ObjectSerializerCompiler.CompileSerializationOps(mapping).ToList().AsReadOnly(); var context = ObjectSerializerInterpreter.InterpretObjectSerializationNullContext( typeof(FieldTestClass), serializationOps, ObjectSerializerProgram.GetOpValueSerializerTypes(serializationOps).ToList().AsReadOnly() ); var serializeDelegate = ObjectSerializerInterpreter.InterpretDynamicSerializeDelegate( context, typeof(FieldTestClass), serializationOps ); var testObject = new FieldTestClass() { X = 1500, Y = 37500 }; var buffer = new byte[8]; serializeDelegate(context, testObject, buffer, 0); Assert.Equal(testObject.X, MemoryMapper.ReadInt(buffer, 0)); Assert.Equal(testObject.Y, MemoryMapper.ReadInt(buffer, sizeof(int))); }
public void TestFieldParseMethodForObject() { // Prepare var obj = new FieldTestClass(); var fields = obj .GetType() .GetProperties() .AsFields() .AsList(); // Act var parsed = Field.Parse(obj); // Assert Assert.AreEqual(3, parsed.Count()); Assert.IsTrue(parsed.All(field => fields.Contains(field))); }