public void InitializeMachine()
{
Machine machine = new Machine();
Assert.IsNotNull(machine.UndefinedObjectClass);
Assert.IsNull(machine.ClassClass);
Assert.IsNotNull(machine.Environment);
var result = machine.GetGlobalObject("UndefinedObject");
Assert.IsNotNull(result);
Assert.IsInstanceOfType(result, typeof(IBehavior));
Assert.IsInstanceOfType(result, typeof(BaseClass));
var klass = (BaseClass)result;
Assert.AreEqual("UndefinedObject", klass.Name);
Assert.AreSame(klass, machine.UndefinedObjectClass);
result = machine.GetGlobalObject("Machine");
Assert.IsNotNull(result);
Assert.AreSame(machine, result);
result = machine.GetGlobalObject("Smalltalk");
Assert.IsNotNull(result);
Assert.AreSame(machine.Environment, result);
Assert.AreSame(machine.Environment, machine.CurrentEnvironment);
}