public void NonCompiledBuilderThrowsOnStringify() { var target = new A(); var builder = new ToStringBuilder <A>() .Include(a => a.Prop); builder.Stringify(target); }
public void NonPrimitiveValueTypes() { var target = new G(); var builder = new ToStringBuilder <G>() .IncludeAllPublic() .Compile(); var result = builder.Stringify(target); Assert.That(result, Contains.Substring("01/01/2010 01:01:01")); }
public void ChildObjects() { var target = new F(); var builder = new ToStringBuilder <F>() .Include(f => f.ChildObject) .Compile(); var result = builder.Stringify(target); Assert.That(result, Is.EqualTo("F{ChildObject:E{PublicField:0,_privateField:1}}")); }
public void IncludeAllPublic() { var target = new D(); var builder = new ToStringBuilder <D>() .IncludeAllPublic() .Compile(); var result = builder.Stringify(target); Assert.That(result, Is.EqualTo("D{" + "PublicField:0," + "PublicProperty:0" + "}")); }
public void BuilderReuse() { var target = new C(); var builder = new ToStringBuilder <C>() .Include(c => c.Int) .Compile(); for (int i = 0; i < 10; i++) { target.Int = i; var result = builder.Stringify(target); Assert.That(result, Is.EqualTo("C{Int:" + i + "}")); } }
public void BasicFormatting() { var target = new A { Prop = "A Property Value", Field = "A Field Value" }; var builder = new ToStringBuilder <A>() .Include(a => a.Field) .Include(a => a.Prop) .Compile(); var result = builder.Stringify(target); Assert.That(result, Is.EqualTo("A{Field:\"A Field Value\",Prop:\"A Property Value\"}")); }
public void MultiLineFormatting() { var target = new A { Prop = "A Property Value", Field = "A Field Value" }; var builder = new ToStringBuilder <A>() .MultiLine(true) .Include(a => a.Field) .Include(a => a.Prop) .Compile(); var result = builder.Stringify(target); Assert.That(result, Is.EqualTo("A\r\n{\r\n Field:\"A Field Value\",\r\n Prop:\"A Property Value\"\r\n}")); }
public void NotQuotingStrings() { var target = new A { Prop = "A Property Value", Field = "A Field Value" }; var builder = new ToStringBuilder <A>() .QuoteStrings(false) .Include(a => a.Field) .Include(a => a.Prop) .Compile(); var result = builder.Stringify(target); Assert.That(result, Is.EqualTo("A{Field:A Field Value,Prop:A Property Value}")); }
public void OrderAlphabetically() { var target = new B(); var builder = new ToStringBuilder <B>() .OrderAlphabetically(true) .Include(b => b.Short) .Include(b => b.Byte) .Include(b => b.SByte) .Include(b => b.Char) .Compile(); var result = builder.Stringify(target); Assert.That(result, Is.EqualTo("B{" + "Byte:1," + "Char:'c'," + "SByte:1," + "Short:1" + "}")); }
public void BuilderConcurrentUse() { var builder = new ToStringBuilder <C>() .Include(c => c.Int) .Compile(); Action task = () => { var target = new C(); for (int i = 0; i < 10000; i++) { target.Int = i; var result = builder.Stringify(target); Assert.That(result, Is.EqualTo("C{Int:" + i + "}")); } }; var taskA = Task.Factory.StartNew(task); var taskB = Task.Factory.StartNew(task); var taskC = Task.Factory.StartNew(task); Task.WaitAll(taskA, taskB, taskC); }
public void Primitives() { var target = new B(); var builder = new ToStringBuilder <B>() .Include(b => b.Byte) .Include(b => b.SByte) .Include(b => b.Char) .Include(b => b.Short) .Include(b => b.UShort) .Include(b => b.Int) .Include(b => b.UInt) .Include(b => b.Long) .Include(b => b.ULong) .Include(b => b.Float) .Include(b => b.Double) .Include(b => b.Decimal) .Compile(); var result = builder.Stringify(target); Assert.That(result, Is.EqualTo("B{" + "Byte:1," + "SByte:1," + "Char:'c'," + "Short:1," + "UShort:1," + "Int:1," + "UInt:1," + "Long:1," + "ULong:1," + "Float:1.1," + "Double:1.1," + "Decimal:1.1" + "}")); }