public void CompileAndExecuteNewDotNetObject() { Block block; block = new Block(); block.CompileGetDotNetType("System.IO.FileInfo"); block.CompileGetConstant("FooBar.txt"); block.CompileSend("!new:"); block.CompileByteCode(ByteCode.ReturnPop); object obj = block.Execute(null, null); Assert.IsNotNull(obj); Assert.IsInstanceOfType(obj, typeof(System.IO.FileInfo)); }
public void DecompileSendKeywordWithTwoArgument() { Block block = new Block(); block.CompileSend("foo:with:"); BlockDecompiler decompiler = new BlockDecompiler(block); var result = decompiler.Decompile(); Assert.IsNotNull(result); Assert.AreEqual(1, result.Count); Assert.AreEqual("Send foo:with: 2", result[0]); }
public void DecompileSendUnary() { Block block = new Block(); block.CompileSend("foo"); BlockDecompiler decompiler = new BlockDecompiler(block); var result = decompiler.Decompile(); Assert.IsNotNull(result); Assert.AreEqual(1, result.Count); Assert.AreEqual("Send foo 0", result[0]); }
public void DecompileSendBinaryOperator() { Block block = new Block(); block.CompileSend("+"); BlockDecompiler decompiler = new BlockDecompiler(block); var result = decompiler.Decompile(); Assert.IsNotNull(result); Assert.AreEqual(1, result.Count); Assert.AreEqual("Send + 1", result[0]); }