private static String AsString(VariableReferenceTree tree) { var result = Print(tree.Value); if (tree.IndexExpression != null) { result += "[" + Print(tree.IndexExpression) + "]"; } return(result); }
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)); }