public void It_Should_Dereference_An_Array_Element() { // Arrange LiquidCollection liquidCollection = new LiquidCollection { LiquidString.Create("a string"), LiquidNumeric.Create(123), LiquidNumeric.Create(456m), new LiquidBoolean(false) }; // Assert var valueAt = liquidCollection.ValueAt(0); Assert.That(valueAt.Value, Is.EqualTo("a string")); }
public override LiquidExpressionResult ApplyTo(ITemplateContext ctx, LiquidCollection liquidArrayExpression) { if (liquidArrayExpression == null || liquidArrayExpression.Value == null) { return(LiquidExpressionResult.Error("Array is nil")); } //Console.WriteLine("Array is " + liquidArrayExpression.ArrValue.Count); //Console.WriteLine("Index is " + _index.IntValue); if (liquidArrayExpression.Count > 0 && liquidArrayExpression.Count >= _index.IntValue + 1) { return(LiquidExpressionResult.Success(liquidArrayExpression.ValueAt(_index.IntValue))); } else { return(LiquidExpressionResult.Error("Array has no element at position " + _index.IntValue)); } // // return LiquidExpressionResult.Success(liquidArrayExpression.ArrValue.Count > 0 && // liquidArrayExpression.ArrValue.Count >= _index.IntValue + 1 ? // liquidArrayExpression.ValueAt(_index.IntValue) : // ConstantFactory.CreateError<LiquidCollection>("Array has no element at position " + _index.IntValue)); }