public void ConcatFunction(string concatArgs, string expected, JintFunctionEvaluation subject)
        {
            var expression = $"[concat({concatArgs})]";

            var result = subject.Evaluate(expression);

            result.Should().Be(expected);
        }
        public void ArrayFunction(string argument, string expected, JintFunctionEvaluation subject)
        {
            var expression = $"[array({argument})]";

            var result = subject.Evaluate(expression);

            result.Should().Be(expected);
        }
        public void VariableFunctionIntegration(JintFunctionEvaluation subject, NameChecking nameChecking)
        {
            var path = Path.Combine("Examples", "storage-variable-name.json");
            var text = File.ReadAllText(path);

            var output = subject.EvaluateAndReplaceFunctions(text);

            output.Should().Contain("\"name\": \"my_storage\",");
            nameChecking.CheckTemplate(output).Should().BeEmpty();
        }
        public void VariableTags(JintFunctionEvaluation subject, NameChecking nameChecking)
        {
            var path = Path.Combine("Examples", "variable-tags.json");
            var text = File.ReadAllText(path);

            var output = subject.EvaluateAndReplaceFunctions(text);

            output.Should().Contain("\"tag1\": \"the 1st\",");
            output.Should().Contain("\"tag2\": \"the 2nd\"");
            nameChecking.CheckTemplate(output).Should().BeEmpty();
        }
        public void VariableEvaluation(JintFunctionEvaluation subject)
        {
            var variables = new Dictionary <string, string>
            {
                { "var1", "[concat('cl', 'ou', 'd')]" }
            };
            var expression = $"[variables('var1')]";

            var output = subject.Evaluate(expression, variables);

            output.Should().Be("\"cloud\"");
        }