Further embedding of Ruby as implementation detail

Interfaces themselves as language agnostic

--HG--
branch : dev
extra : rebase_source : d15b587bafec98d49b322ba2dd8ad0f493798563
This commit is contained in:
Louis DeJardin
2010-10-13 12:51:10 -07:00
13 changed files with 47 additions and 62 deletions

View File

@@ -36,11 +36,12 @@ namespace Orchard.Tests.Scripting {
}
[Test]
public void GetRubyEngineReturnsAWorkingRubyEngine() {
var ruby = _scriptingRuntime.GetRubyEngine();
public void CreateScopeReturnsWorkingScope() {
var scope = _scriptingRuntime.CreateScope();
Assert.IsNotNull(ruby);
Assert.That(ruby.Execute("21 + 21"), Is.EqualTo(42));
Assert.IsNotNull(scope);
scope.SetVariable("alpha", 42);
Assert.That(scope.GetVariable("alpha"), Is.EqualTo(42));
}
[Test]
@@ -52,7 +53,7 @@ namespace Orchard.Tests.Scripting {
[Test]
public void ScriptingManagerCanEvalExpression() {
_scriptingManager.SetVariable("foo", 21);
Assert.That(_scriptingManager.Eval("foo + 21"), Is.EqualTo(42));
Assert.That(_scriptingManager.ExecuteExpression("foo + 21"), Is.EqualTo(42));
}
[Test]
@@ -63,8 +64,8 @@ namespace Orchard.Tests.Scripting {
scriptManager1.SetVariable("foo", 1);
scriptManager2.SetVariable("foo", 2);
var result1 = scriptManager1.Eval("3 + foo");
var result2 = scriptManager2.Eval("3 + foo");
var result1 = scriptManager1.ExecuteExpression("3 + foo");
var result2 = scriptManager2.ExecuteExpression("3 + foo");
Assert.That(result1, Is.EqualTo(4));
Assert.That(result2, Is.EqualTo(5));
@@ -75,23 +76,15 @@ namespace Orchard.Tests.Scripting {
var targetPath = Path.Combine(_tempFolderName, "SampleMethodDefinition.rb");
File.WriteAllText(targetPath, "def f\r\nreturn 32\r\nend\r\n");
_scriptingManager.ExecuteFile(targetPath);
Assert.That(_scriptingManager.Eval("f / 4"), Is.EqualTo(8));
Assert.That(_scriptingManager.ExecuteExpression("f / 4"), Is.EqualTo(8));
}
[Test]
public void GlobalObjectCanBeDynamic() {
dynamic global = new Clay(new PropBehavior());
_scriptingManager.SetScriptingScope(_scriptingRuntime.GetRubyEngine().CreateScope((IDynamicMetaObjectProvider)global));
global.foo = 5;
Assert.That(_scriptingManager.Eval("3 + foo"), Is.EqualTo(8));
}
[Test]
public void CanDeclareCallbackOnGlobalMethod() {
_scriptingManager.SetVariable("x", new Clay(new ReturnMethodNameLengthBehavior()));
Assert.That(_scriptingManager.Eval("3 + x.foo()"), Is.EqualTo(6));
Assert.That(_scriptingManager.ExecuteExpression("3 + x.foo()"), Is.EqualTo(6));
}
@@ -109,7 +102,7 @@ namespace Orchard.Tests.Scripting {
_scriptingManager.ExecuteFile(targetPath);
_scriptingManager.SetVariable("callbacks", new CallbackApi());
Assert.That(_scriptingManager.Eval("execute { 1 + hello + world('yep') }"), Is.EqualTo(11));
Assert.That(_scriptingManager.ExecuteExpression("execute { 1 + hello + world('yep') }"), Is.EqualTo(11));
}
public class CallbackApi {