public void SerializeAndDeserializeSimpleObject()
{
Machine machine = new Machine();
BaseClass cls = new BaseClass("MyClass", machine);
BaseObject bo = new BaseObject(cls, new object[] { 1, 2, 3 });
BinaryFormatter formatter = new BinaryFormatter();
BaseObject bo2;
Machine machine2;
BaseClass cls2;
using (MemoryStream stream = new MemoryStream())
{
formatter.Serialize(stream, bo);
stream.Seek(0, SeekOrigin.Begin);
machine2 = new Machine(true);
Assert.AreSame(Machine.Current, machine2);
cls2 = new BaseClass("MyClass", machine2);
machine2.SetGlobalObject("MyClass", cls2);
bo2 = (BaseObject)formatter.Deserialize(stream);
}
Assert.AreEqual(1, bo2[0]);
Assert.AreEqual(2, bo2[1]);
Assert.AreEqual(3, bo2[2]);
Assert.IsNotNull(bo2.Behavior);
Assert.AreSame(cls2, bo2.Behavior);
Assert.AreEqual(cls, bo.Behavior);
}