public void TestSerialize() { var stream = new MemoryStream(); var testObj = new TestFixedArray(); testObj[0] = 4; testObj[2] = 8; var sf = new Mock <ICauterizeTypeFormatter>(); var factory = new Mock <CauterizeTypeFormatterFactory>(); factory.Setup(f => f.GetFormatter(typeof(Int64))).Returns(sf.Object); var counter = 0; sf.Setup(f => f.Serialize(stream, It.IsAny <Int64>())).Callback((Stream str, object value) => { if (counter == 0) { Assert.AreEqual(4, value); } else if (counter == 2) { Assert.AreEqual(8, value); } else { Assert.AreEqual(0, value); } counter++; }); var formatter = new CauterizeFixedArrayFormatter(factory.Object); formatter.Serialize(stream, testObj); sf.VerifyAll(); }
public void TestDeserialize() { var stream = new MemoryStream(); var factory = new Mock <CauterizeTypeFormatterFactory>(); var sf = new Mock <ICauterizeTypeFormatter>(); factory.Setup(f => f.GetFormatter(typeof(Int64))).Returns(sf.Object); var counter = 0; sf.Setup(f => f.Deserialize(stream, typeof(Int64))).Returns((Stream str, Type t) => { var ret = 0; if (counter == 1) { ret = 101; } else if (counter == 2) { ret = 321; } counter++; return(ret); }); var formatter = new CauterizeFixedArrayFormatter(factory.Object); var result = (TestFixedArray)formatter.Deserialize(stream, typeof(TestFixedArray)); Assert.AreEqual(0, result[0]); Assert.AreEqual(101, result[1]); Assert.AreEqual(321, result[2]); }