private static String AsString(VariableReferenceTree tree)
            {
                var result = Print(tree.Value);

                if (tree.IndexExpression != null)
                {
                    result += "[" + Print(tree.IndexExpression) + "]";
                }
                return(result);
            }
Пример #2
0
        public void It_Should_Add_A_String_Indexed_Array_Reference_In_An_Object()
        {
            // Act
            var ast = _generator.Generate("Result : {{ myvar[\"test\"] }}");

            // Assert
            var liquidExpressionNode = LiquidASTGeneratorTests.FindNodesWithType(ast.LiquidAST, typeof(LiquidExpressionTree)).FirstOrDefault();

            Assert.NotNull(liquidExpressionNode);
            // ReSharper disable once PossibleNullReferenceException
            Assert.NotNull(liquidExpressionNode.Data);
            var liquidExpression = ((LiquidExpressionTree)liquidExpressionNode.Data);

            // Assert
            Assert.NotNull(liquidExpression.ExpressionTree.Data.Expression);
            Assert.IsType <VariableReferenceTree>(liquidExpression.ExpressionTree.Data.Expression);
            VariableReferenceTree varRefTree = (VariableReferenceTree)liquidExpression.ExpressionTree.Data.Expression;

            Assert.IsType <VariableReferenceTree>(varRefTree.IndexExpression);
            VariableReferenceTree indexVarRefTree = (VariableReferenceTree)varRefTree.IndexExpression;

            Assert.IsType <LiquidString>(indexVarRefTree.Value);
        }
        public void It_Should_Add_An_Int_Indexed_Array_Reference_In_An_Object()
        {
            // Act
            var ast = _generator.Generate("Result : {{ myvar[3] }}");

            // Assert
            var liquidExpressionNode = LiquidASTGeneratorTests.FindNodesWithType(ast.LiquidAST, typeof(LiquidExpressionTree)).FirstOrDefault();

            Assert.That(liquidExpressionNode, Is.Not.Null);
            // ReSharper disable once PossibleNullReferenceException
            Assert.That(liquidExpressionNode.Data, Is.Not.Null);
            var liquidExpression = ((LiquidExpressionTree)liquidExpressionNode.Data);

            // Assert
            Assert.That(liquidExpression.ExpressionTree.Data.Expression, Is.Not.Null);
            Assert.That(liquidExpression.ExpressionTree.Data.Expression, Is.TypeOf <VariableReferenceTree>());
            VariableReferenceTree varRefTree = (VariableReferenceTree)liquidExpression.ExpressionTree.Data.Expression;

            Assert.That(varRefTree.IndexExpression, Is.TypeOf <VariableReferenceTree>());
            VariableReferenceTree indexVarRefTree = (VariableReferenceTree)varRefTree.IndexExpression;

            Assert.That(indexVarRefTree.Value, Is.AssignableTo <LiquidNumeric>());
            Assert.That(((LiquidNumeric)indexVarRefTree.Value).IntValue, Is.EqualTo(3));
        }