public void CreateManualExpression_Surface_ReturnExpressionAsString() { var expression = new Expression <CircularEntity>(); expression.Add(new EntityItem <CircularEntity>(expression) { Entity = A, Index = 0, IndexAtLevel = 0, Level = 1 }); expression.Add(new EntityItem <CircularEntity>(expression) { Entity = B, Index = 1, IndexAtLevel = 0, Level = 2 }); expression.Add(new EntityItem <CircularEntity>(expression) { Entity = C, Index = 2, IndexAtLevel = 1, Level = 2 }); expression.Add(new EntityItem <CircularEntity>(expression) { Entity = Y, Index = 3, IndexAtLevel = 0, Level = 3 }); expression.Add(new EntityItem <CircularEntity>(expression) { Entity = D, Index = 4, IndexAtLevel = 2, Level = 2 }); expression.Add(new EntityItem <CircularEntity>(expression) { Entity = E, Index = 5, IndexAtLevel = 0, Level = 3 }); expression.Add(new EntityItem <CircularEntity>(expression) { Entity = F, Index = 6, IndexAtLevel = 1, Level = 3 }); expression.Add(new EntityItem <CircularEntity>(expression) { Entity = G, Index = 7, IndexAtLevel = 0, Level = 4 }); expression.Add(new EntityItem <CircularEntity>(expression) { Entity = B, Index = 8, IndexAtLevel = 0, Level = 5 }); expression.Add(new EntityItem <CircularEntity>(expression) { Entity = C, Index = 9, IndexAtLevel = 1, Level = 5 }); expression.Add(new EntityItem <CircularEntity>(expression) { Entity = Y, Index = 10, IndexAtLevel = 1, Level = 4 }); expression.Add(new EntityItem <CircularEntity>(expression) { Entity = Z, Index = 11, IndexAtLevel = 2, Level = 3 }); var expressionString = new CircularEntityExpressionSerializer <CircularEntity>(expression, i => i.Name).Serialize(); Assert.Equal("A + B + (C + Y) + (D + E + (F + (G + B + C) + Y) + Z)", expressionString); }
public void SerializationCircular1() { // create a simple object var A = new CircularEntity("A"); var B = new CircularEntity("B"); var C = new CircularEntity("C"); var D = new CircularEntity("D"); A = A + B + (C + D); var expression = A.AsExpression(c => c.Children); var serialization = new CircularEntityExpressionSerializer <CircularEntity>(expression, f => f.Name); var expressionAsString = serialization.Serialize(); System.Console.WriteLine(expressionAsString); }
public void SerializationCircular2() { // create a simple object var A = new CircularEntity("A"); var B = new CircularEntity("B"); var C = new CircularEntity("C"); var D = new CircularEntity("BigName"); A = A + B + (C + D); var expression = A.AsExpression(c => c.Children); var serialization = new CircularEntityExpressionSerializer <CircularEntity>(expression, f => f.Name); serialization.EncloseParenthesisInRoot = true; serialization.ForceQuoteEvenWhenValidIdentified = true; serialization.ValueFormatter = new TruncateFormatter(3); var expressionAsString = serialization.Serialize(); System.Console.WriteLine(expressionAsString); }