public void SerializeDeserializeMachineWithLibrary()
{
Machine machine = new Machine();
LoadFile(machine, "Object.st");
LoadFile(machine, "Behavior.st");
LoadFile(machine, "Class.st");
LoadFile(machine, "Test.st");
var result = this.Process(machine, machine);
Assert.IsNotNull(result);
Assert.IsInstanceOfType(result, typeof(Machine));
var newmachine = (Machine)result;
CompareMachines(machine, newmachine);
// Test class
Assert.IsNotNull(newmachine.GetGlobalObject("Test"));
IClass cls = (IClass)newmachine.GetGlobalObject("Object");
Assert.IsNotNull(cls.GetInstanceMethod("error:"));
Assert.IsNotNull(cls.GetClassMethod("error:"));
cls = (IClass)newmachine.GetGlobalObject("Class");
Assert.IsNotNull(cls.GetInstanceMethod("error:"));
Assert.IsNotNull(cls.GetClassMethod("error:"));
cls = (IClass)newmachine.GetGlobalObject("Test");
Assert.IsNotNull(cls.GetInstanceMethod("error:"));
Assert.IsNotNull(cls.GetClassMethod("error:"));
}