private Option <ILiquidValue> CreateCollection(IEnumerable list) { var coll = new LiquidCollection(); foreach (var item in list) { coll.Add(Convert(item)); // may throw exception } return(coll); }
LiquidCollection FunctionsToLiquid(int indent) { var col = new LiquidCollection(); foreach (var f in components) { col.Add(LiquidString.Create(f.ToString(indent + 1) + "\n")); } return(col); }
LiquidCollection ConditionBlocksToLiquid(int indent) { var col = new LiquidCollection(); foreach (var c in conditionBlocks) { col.Add(c.ToLiquidString(indent)); } return(col); }
protected LiquidCollection BodyToLiquid(int indent) { var col = new LiquidCollection(); foreach (var b in body) { col.Add(b.ToLiquidString(indent + 1)); } return(col); }
public LiquidCollection TokenContractsToLiquid() { var collection = new LiquidCollection(); foreach (var tokenConverter in tokenConverters) { collection.Add(tokenConverter.GetTokenContract().ToLiquidString(0)); } return(collection); }
public override LiquidExpressionResult ApplyTo(ITemplateContext ctx, LiquidCollection liquidArrayExpression) { var list = liquidArrayExpression.Select(x => x.HasValue ? FieldAccessor.TryField(ctx, x.Value, _selector.StringVal) : LiquidExpressionResult.ErrorOrNone(ctx, _selector.StringVal)).ToList(); //new None<ILiquidValue>()).ToList(); return(list.Any(x => x.IsError) ? list.First(x => x.IsError) : LiquidExpressionResult.Success(new LiquidCollection(list.Select(x => x.SuccessResult).ToList()))); }
public void It_Should_Return_An_Error_If_Array_Is_Empty() // TODO: Check if this is the case { // Arrange LiquidCollection liquidCollection = new LiquidCollection(); var filter = new FirstFilter(); // Act var result = filter.Apply(new TemplateContext(), liquidCollection); // Assert Assert.True(result.IsError); }
public void An_Array_With_No_Value_Should_Have_Zero_Length() { // Arrange LiquidCollection liquidCollection = new LiquidCollection(); var filter = new SizeFilter(); // Act var result = filter.Apply(new TemplateContext(), liquidCollection).SuccessValue <LiquidNumeric>(); // Assert Assert.Equal(0, result.Value); }
public void It_Should_Return_The_Same_Object_If_Src_And_Dest_Are_Arrays() { // Arrange var original = new LiquidCollection { LiquidNumeric.Create(123.4m), LiquidNumeric.Create(5) }; // Act var result = ValueCaster.Cast <LiquidCollection, LiquidCollection>(original).SuccessValue <LiquidCollection>(); // Assert Assert.Equal(original, result); }
public LiquidCollection TokenContractsToLiquid() { var tokenContracts = new LiquidCollection(); foreach (var tokenConverter in tokenConverters) { if (tokenConverter.IsOriginalToken()) { tokenContracts.Add(tokenConverter.GetTokenContract().ToLiquidString(0)); } } return(tokenContracts); }
public void It_Should_Return_The_Same_Object_If_Dest_Is_An_ExpressionConstant() { // Arrange var original = new LiquidCollection { LiquidNumeric.Create(123.4m), LiquidNumeric.Create(5) }; // Act var result = ValueCaster.Cast <LiquidCollection, LiquidValue>(original).SuccessValue <LiquidCollection>(); // Assert Assert.That(result, Is.EqualTo(original)); }
public static Option <ILiquidValue> Transform(JArray arr) { var result = new LiquidCollection(); var list = arr.Select(el => (Option <ILiquidValue>)Transform((dynamic)el)); // .Cast<Option<ILiquidValue>>(); foreach (var item in list) { //result.Add(Option<ILiquidValue>.Create(item)); result.Add(item); } return(result); }
LiquidCollection ParametersToLiquid() { var col = new LiquidCollection(); foreach (var par in parameters) { if (par != parameters[parameters.Count - 1]) { par.Name = par.Name + ", "; } col.Add(par.ToLiquidString()); } return(col); }
public void It_Should_Save_Meta_Data() { // Arrange var expected = "Hello"; var liquidCollection = new LiquidCollection(); // Act liquidCollection.MetaData["test"] = expected; // Assert Assert.That(liquidCollection.MetaData.ContainsKey("test")); Assert.That(liquidCollection.MetaData["test"], Is.EqualTo(expected)); }
private static TemplateContext CreateContextWithDictionary() { var ctx = new TemplateContext(); var payments = new LiquidCollection { LiquidNumeric.Create(12.34m), LiquidNumeric.Create(33.45m), }; ctx.DefineLocalVariable("user", new LiquidHash { { "payments", payments } }); return(ctx); }
LiquidCollection GetDependencies() { LiquidCollection liquidCol = new LiquidCollection(); HashSet <string> dependencies = new HashSet <string>(); dependencies.UnionWith(DataModelConverter.GetDependencies()); foreach (var dependency in dependencies) { var statement = new SolidityStatement($"import {dependency}"); liquidCol.Add(statement.ToLiquidString(0)); } return(liquidCol); }
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 void It_Should_Format_An_Array_By_Concatenating_Each_Elements_STring_Value() { // Arrange var num = new LiquidCollection { LiquidString.Create("a"), LiquidString.Create("b"), LiquidString.Create("c") }; // Act var result1 = ValueCaster.Cast <LiquidCollection, LiquidString>(num); var stringliteral = result1.SuccessValue <LiquidString>() .StringVal; // Assert Assert.Equal("abc", stringliteral); }
public void It_Should_Return_Empty_When_Index_Is_Empty() { // Arrange TemplateContext templateContext = new TemplateContext(); var arrayofnums = new LiquidCollection { LiquidNumeric.Create(0), LiquidNumeric.Create(1) }; templateContext.DefineLocalVariable("arrayofnums", arrayofnums); // Act String result = GenerateAndRender("Result : {{ arrayofnums[4][arrayofnums[4]] }}", templateContext); // Assert Assert.Equal("Result : ", result); }
public void It_Should_Render_An_Array_Element() { // Arrange TemplateContext templateContext = new TemplateContext(); var list = new LiquidCollection { LiquidString.Create("aaa"), LiquidNumeric.Create(123m) }; templateContext.DefineLocalVariable("myarray", list); // Act String result = GenerateAndRender("Result : {{ myarray[1] }}", templateContext); // Assert Assert.Equal("Result : 123.0", result); }
public void It_Should_Return_The_Last_Element() { // Arrange LiquidCollection liquidCollection = new LiquidCollection { LiquidString.Create("a string"), LiquidNumeric.Create(123), LiquidNumeric.Create(456m), new LiquidBoolean(false) }; var filter = new LastFilter(); // Act var result = filter.Apply(new TemplateContext(), liquidCollection).SuccessValue <LiquidBoolean>(); // Assert Assert.Equal(liquidCollection[liquidCollection.Count - 1], result); }
public void It_Should_Return_An_Error_If_A_Number_Is_Treated_Like_An_Array() { // Arrange TemplateContext templateContext = new TemplateContext(); var arrayofnums = new LiquidCollection { LiquidNumeric.Create(0), LiquidNumeric.Create(1) }; templateContext.DefineLocalVariable("arrayofnums", arrayofnums); templateContext.DefineLocalVariable("numeric", LiquidNumeric.Create(1)); // Act String result = GenerateAndRender("Result : {{ arrayofnums[4][numeric[4]] }}", templateContext); // Assert Assert.Contains("cannot apply an index to a numeric.", result); }
public void It_Should_Return_An_Error_When_Trying_To_Map_A_Non_Dictionary() { // Arrange var mapFilter = new MapFilter(LiquidString.Create("field1")); var liquidCollection = new LiquidCollection { LiquidNumeric.Create(123), LiquidString.Create("Test") }; // Act var result = mapFilter.Apply(new TemplateContext(), liquidCollection).SuccessValue <LiquidCollection>(); // Assert Assert.That(result.Count, Is.EqualTo(liquidCollection.Count)); Assert.That(result[0].HasValue, Is.False); Assert.That(result[1].HasValue, Is.False); }
public void It_Should_Render_An_Array() { // Arrange TemplateContext templateContext = new TemplateContext(); var list = new LiquidCollection { LiquidString.Create("aaa"), LiquidNumeric.Create(123m) }; templateContext.DefineLocalVariable("myarray", list); // Arrange String result = GenerateAndRender("Result : {{ myarray }}", templateContext); // Assert //Assert.That(result, Is.EqualTo("Result : [ \"aaa\", 123 ]")); Assert.That(result, Is.EqualTo("Result : aaa123.0")); }
public void It_Should_Measure_The_Size_Of_An_Array() { // Arrange LiquidCollection liquidCollection = new LiquidCollection { LiquidString.Create("a string"), LiquidNumeric.Create(123), LiquidNumeric.Create(456m), new LiquidBoolean(false) }; var filter = new SizeFilter(); // Act var result = filter.Apply(new TemplateContext(), liquidCollection).SuccessValue <LiquidNumeric>(); // Assert Assert.Equal(4, result.Value); }
public void It_Should_Return_An_Element_At_Position_0() { // Arrange LiquidCollection liquidCollection = new LiquidCollection { LiquidString.Create("a string"), LiquidNumeric.Create(123), LiquidNumeric.Create(456m), new LiquidBoolean(false) }; var filter = new PositionFilter(LiquidNumeric.Create(0)); // Act var result = filter.Apply(new TemplateContext(), liquidCollection).SuccessValue <LiquidString>(); // Assert Assert.That(result, Is.EqualTo(liquidCollection[0])); }
public void It_Should_Join_An_Array_With_A_String() { // Arrange LiquidCollection liquidCollection = new LiquidCollection { LiquidString.Create("a string"), LiquidNumeric.Create(123), LiquidNumeric.Create(456m), new LiquidBoolean(false) }; var filter = new JoinFilter(LiquidString.Create(", ")); // Act var result = filter.Apply(new TemplateContext(), liquidCollection).SuccessValue <LiquidString>(); //Logger.Log(result.ToString()); // Assert Assert.That(result.StringVal, Is.EqualTo("a string, 123, 456.0, false")); }
public void It_Should_Access_Size_Property_Of_An_Array() { // Arrange LiquidCollection liquidCollection = new LiquidCollection { LiquidString.Create("a string"), LiquidNumeric.Create(123), LiquidNumeric.Create(456m), new LiquidBoolean(false) }; var ctx = new TemplateContext().WithAllFilters(); ctx.DefineLocalVariable("myarray", liquidCollection); // Act var result = RenderingHelper.RenderTemplate("Result : {{ myarray.size }}", ctx); // Assert Assert.That(result, Is.EqualTo("Result : 4")); }
public void It_Should_Render_An_Array_Element_From_A_Nested_Index() { // Arrange TemplateContext templateContext = new TemplateContext(); var indexlist = new LiquidCollection { LiquidNumeric.Create(0), LiquidNumeric.Create(1) }; var list = new LiquidCollection { LiquidString.Create("aaa"), LiquidString.Create("bbb") }; templateContext.DefineLocalVariable("indexes", indexlist); templateContext.DefineLocalVariable("myarray", list); // Act String result = GenerateAndRender("Result : {{ myarray[indexes[1]] }}", templateContext); // Assert Assert.Equal("Result : bbb", result); }
public void It_Should_Allow_A_Variable_With_Int_Index() { // Arrange ITemplateContext ctx = new TemplateContext().WithAllFilters(); LiquidCollection arr = new LiquidCollection { LiquidNumeric.Create(33) }; ctx.DefineLocalVariable("bar", arr); var template = LiquidTemplate.Create("{{ 1 | plus: bar[0] }}"); // Act String result = template.LiquidTemplate.Render(ctx).Result; Logger.Log(result); // Assert Assert.That(result, Is.EqualTo("34")); }