public virtual ICauterizeTypeFormatter GetFormatter(Type t) { ICauterizeTypeFormatter formatter; if (t.IsSubclassOf(typeof(CauterizeComposite))) { formatter = new CauterizeCompositeFormatter(this); } else if (t.IsSubclassOf(typeof(CauterizeGroup))) { formatter = new CauterizeGroupFormatter(this); } else if (t.IsSubclassOf(typeof(CauterizeFixedArray))) { formatter = new CauterizeFixedArrayFormatter(this); } else if (t.IsSubclassOf(typeof(CauterizeVariableArray))) { formatter = new CauterizeVariableArrayFormatter(this); } else if (t.IsSubclassOf(typeof(Enum))) { formatter = new CauterizeEnumFormatter(); } else { formatter = new CauterizePrimitiveFormatter(); } return(formatter); }
public virtual ICauterizeTypeFormatter GetFormatter(Type t) { ICauterizeTypeFormatter formatter; if (t.IsSubclassOf(typeof (CauterizeComposite))) { formatter = new CauterizeCompositeFormatter(this); } else if (t.IsSubclassOf(typeof (CauterizeGroup))) { formatter = new CauterizeGroupFormatter(this); } else if (t.IsSubclassOf(typeof (CauterizeFixedArray))) { formatter = new CauterizeFixedArrayFormatter(this); } else if (t.IsSubclassOf(typeof (CauterizeVariableArray))) { formatter = new CauterizeVariableArrayFormatter(this); } else if (t.IsSubclassOf(typeof (Enum))) { formatter = new CauterizeEnumFormatter(); } else { formatter = new CauterizePrimitiveFormatter(); } return formatter; }
public void TestDeserialize() { var stream = new MemoryStream(); var factory = new Mock<CauterizeTypeFormatterFactory>(); var sf1 = new Mock<ICauterizeTypeFormatter>(); var sf2 = new Mock<ICauterizeTypeFormatter>(); factory.Setup(f => f.GetFormatter(It.IsAny<Type>())).Returns((Type t) => t == typeof(Int16) ? sf1.Object : sf2.Object); sf1.Setup(sf => sf.Deserialize(stream, typeof (Int16))).Returns((Int16) 5); sf2.Setup(sf => sf.Deserialize(stream, typeof (Int32))).Returns(15); var formatter = new CauterizeCompositeFormatter(factory.Object); var output = (TestComposite) formatter.Deserialize(stream, typeof (TestComposite)); Assert.AreEqual(15, output.MyIntNormal); Assert.AreEqual(5, output.MyIntSmall); }
public void TestSerialize() { var stream = new MemoryStream(); var factory = new Mock<CauterizeTypeFormatterFactory>(); var sf1 = new Mock<ICauterizeTypeFormatter>(); var sf2 = new Mock<ICauterizeTypeFormatter>(); factory.Setup(f => f.GetFormatter(It.IsAny<Type>())).Returns((Type t) => t == typeof(Int16) ? sf1.Object : sf2.Object); sf1.Setup(sf => sf.Serialize(stream, (Int16)2)); sf2.Setup(sf => sf.Serialize(stream, 2222)); var formatter = new CauterizeCompositeFormatter(factory.Object); var testObj = new TestComposite(); testObj.MyIntNormal = 2222; testObj.MyIntSmall = 2; formatter.Serialize(stream, testObj); sf2.VerifyAll(); sf1.VerifyAll(); }