private static void RunObjectTreeTest(Type serializerType, Type messageType) { ISerializerAdapter serializer = (ISerializerAdapter)Activator.CreateInstance(serializerType); object message = catalog.CreateInstance(messageType); using (MemoryStream ms = new MemoryStream()) { object output = null; bool ex = false; try { serializer.Serialize(new IndisposableStream(ms), message); ms.Flush(); ms.Seek(0, SeekOrigin.Begin); output = serializer.Deserialize(new IndisposableStream(ms), messageType); } catch (Exception x) { Assert.Inconclusive("The the serializer has at least thrown an exception instead of unexpected results {0}", x); ex = true; } if (!ex) { ObjectDataTree messageData = new ObjectDataTree(message); ObjectDataTree outputData = new ObjectDataTree(output); Assert.AreEqual(messageData.StringValue(), outputData.StringValue()); (message as IAssertEquality).AssertEquality(output); } } }
void Can_Parse_Simple_Class() { Catalog catalog = new Catalog(); Sample instance = catalog.CreateInstance<Sample>(); ObjectDataTree dataTree = new ObjectDataTree(instance); string asString = dataTree.StringValue(); ObjectDataTree otherDataTree = new ObjectDataTree(instance); string otherString = otherDataTree.StringValue(); Assert.NotEmpty(asString); Assert.NotEmpty(otherString); otherString.Should().Be(asString); }
private static void RunTest(Type messageType) { IAssertEquality message = (IAssertEquality)messageType.GetMethod("CreateInstance", BindingFlags.Static | BindingFlags.Public | BindingFlags.FlattenHierarchy).Invoke(null, null); ObjectDataTree messageTree = new ObjectDataTree(message); using (MemoryStream ms = new MemoryStream()) { Serialize(new IndisposableStream(ms), message); ms.Flush(); ms.Seek(0, SeekOrigin.Begin); object result = Deserialize(new IndisposableStream(ms), messageType); ObjectDataTree resultTree = new ObjectDataTree(result); resultTree.StringValue().Should().Be(messageTree.StringValue()); message.AssertEquality(result); } }
private static void RunTest(Type message) { Catalog catalog = new Catalog(); catalog.RegisterBuilder<ObjectPropertyWithCustomValue>().WithPostConstruction(o => ((ObjectPropertyWithCustomValue)o).Value = catalog.CreateInstance<CustomObject>()); catalog.RegisterBuilder<ArrayField>().WithConstructor(() => ArrayField.CreateInstance()); IAssertEquality instance = (IAssertEquality)catalog.CreateInstance(message); Assert.IsType(message, instance); ObjectDataTree messageTree = new ObjectDataTree(instance); using (MemoryStream ms = new MemoryStream()) { Serialize(new IndisposableStream(ms), instance); ms.Flush(); ms.Seek(0, SeekOrigin.Begin); object result = Deserialize(new IndisposableStream(ms), message); ObjectDataTree resultTree = new ObjectDataTree(result); resultTree.StringValue().Should().Be(messageTree.StringValue()); instance.AssertEquality(result); } }