public void CreateRemotingAndClientServerAndExportClass()
{
Loader loader = new Loader(@"DefineRectangleWithNewAndInitialize.st", new SimpleCompiler());
Machine machine = new Machine(true);
RemotingHostServer server = new RemotingHostServer(machine, 10004, "Server4");
Machine machine2 = new Machine(true);
loader.LoadAndExecute(machine2);
BaseClass rect = (BaseClass)machine2.GetGlobalObject("Rectangle");
RemotingHostClient client = new RemotingHostClient("localhost", 10004, "Server4");
client.Execute(rect.ToOutputString());
object result = machine.GetGlobalObject("Rectangle");
Assert.IsNotNull(result);
Assert.IsInstanceOfType(result, typeof(BaseClass));
object newresult = client.Evaluate("Rectangle new");
Assert.IsNotNull(newresult);
Assert.IsInstanceOfType(newresult, typeof(IObject));
IObject newrect = (IObject)newresult;
Assert.AreSame(rect, newrect.Behavior);
Assert.AreEqual(10, newrect[0]);
Assert.AreEqual(20, newrect[1]);
server.Stop();
}