using Upsilon; using Upsilon.Evaluator; using Xunit; namespace UpsilonTests.GeneralTests { public class IfTests : TestClass { public IfTests(StaticScriptFixture fix) : base(fix) { } [Fact] public void BasicIfTest() { const string input = @" if true then return true end return false"; var actual = Executor.EvaluateScript(input, Options); Assert.True(actual); } [Theory] [InlineData("true", 3, 8, 3)] [InlineData("false", 3, 8, 8)] [InlineData("5 == 5", 500, 349, 500)] public void BasicIfElseTests(string condition, int in1, int in2, long expected) { var input = $@" if {condition} then return {in1} else return {in2} end"; var actual = Executor.EvaluateScript(input, Options); Assert.Equal(expected, actual); } [Theory] [InlineData("true", "false", 3, 8, 5, 3)] [InlineData("false", "true", 3, 8, 5, 8)] public void BasicIfElseIfElseTests(string condition1, string condition2, int in1, int in2, int in3, long expected) { var input = $@" if {condition1} then return {in1} elseif {condition2} then return {in2} else return {in3} end"; var actual = Executor.EvaluateScript(input, Options); Assert.Equal(expected, actual); } } }