public void LoadPharoKernelClassesSkippingReservedMethods()
{
Loader loaderlib = new Loader(@"Library2.st", new SimpleCompiler());
Loader loaderobj = new Loader(@"PharoCoreKernelObjects.st", new SimpleCompiler());
Loader loader = new Loader(@"PharoKernelClasses.st", new SimpleCompiler());
Machine machine = CreateMachine();
loaderlib.LoadAndExecute(machine);
object result = machine.GetGlobalObject("Object");
Assert.IsNotNull(result);
Assert.IsInstanceOfType(result, typeof(BaseClass));
result = machine.GetGlobalObject("Behavior");
Assert.IsNotNull(result);
Assert.IsInstanceOfType(result, typeof(BaseClass));
var cls = (BaseClass)result;
Assert.IsNotNull(cls.GetInstanceMethod("uses:instanceVariableNames:"));
Assert.IsNotNull(cls.GetInstanceMethod("subclass:uses:instanceVariableNames:classVariableNames:poolDictionaries:category:"));
loaderobj.LoadAndExecute(machine);
loader.LoadAndExecute(machine);
result = machine.GetGlobalObject("ProtoObject");
Assert.IsNotNull(result);
Assert.IsInstanceOfType(result, typeof(BaseClass));
result = machine.GetGlobalObject("Boolean");
Assert.IsNotNull(result);
Assert.IsInstanceOfType(result, typeof(BaseClass));
result = machine.GetGlobalObject("UndefinedObject");
Assert.IsNotNull(result);
Assert.IsInstanceOfType(result, typeof(BaseClass));
}