public void ParseStaticExpression() { var action = CallAction.Let <TestActionObject>("v1", null, _ => TestActionObject.Method1()); action.Should().SaveTo("v1"); action.Should().CallStatic(typeof(TestActionObject), "Method1"); action.Should().HaveNoParameters(); }
public void VariableParameter() { var action = CallAction.Let <TestActionObject>("v1", null, _ => TestActionObject.Duplicate((new Variable <int>("a")).Value)); action.Should().SaveTo("v1") .And.CallStatic <TestActionObject>("Duplicate") .And.HaveParametersCount(1) .And.HaveVariableParameterN <int>(0, "a"); }
public void NullParameter() { var action = CallAction.Let <TestActionObject>("v1", null, _ => TestActionObject.Stringize(null)); action.Should().SaveTo("v1") .And.CallStatic <TestActionObject>("Stringize") .And.HaveParametersCount(1) .And.HaveNullParameterN(0); }
public void CalculateParameterFromConstants() { var action = CallAction.Let <TestActionObject>("v1", null, _ => TestActionObject.Duplicate(10 + 5)); action.Should().SaveTo("v1") .And.CallStatic <TestActionObject>("Duplicate") .And.HaveParametersCount(1) .And.HaveParameterN(0, 15); }
public void CalculateParameterFromExternals() { const int a = 10; const int b = 5; var action = CallAction.Let <TestActionObject>("v1", null, _ => TestActionObject.Duplicate(a + b)); action.Should().SaveTo("v1") .And.CallStatic <TestActionObject>("Duplicate") .And.HaveParametersCount(1) .And.HaveParameterN(0, 15); }
public void ParseParameters() { var action = CallAction.Let <TestActionObject>("v1", null, _ => TestActionObject.Formula(10, 20, 5)); action.Should().SaveTo("v1") .And.CallStatic <TestActionObject>("Formula") .And.HaveParametersCount(3) .And.HaveParameterN(0, 10) .And.HaveParameterN(1, 20) .And.HaveParameterN(2, 5); }
public void InstanceCallWithOtherType() { TestActionObject.Method1Called = false; Variables variables = new Variables(); TestActionObject tc = new TestActionObject(); variables["v1"] = tc; var action = CallAction.Let("v2", "v1", "Stringize", 10); action.Execute(variables); variables["v2"].Should().BeOfType <string>(); variables["v2"].Should().Be("10"); }
public void InstanceCall() { TestActionObject.Method1Called = false; Variables variables = new Variables(); TestActionObject tc = new TestActionObject(); variables["v1"] = tc; var action = CallAction.Let("v2", "v1", "Method2"); action.Execute(variables); tc.Method2Called.Should().BeTrue(); variables["v2"].Should().BeOfType <int>(); variables["v2"].Should().Be(5); }