public void TestCircularObjects() { var instance = new ExportObjectToCSharpCode_Test_Class_1 { Child1 = new ExportObjectToCSharpCode_Test_Class_1 { ReadOnlyList2 = new List <string> { "A", "B" } } }; instance.Child1.Child1 = instance; var Exporter = new ReflectionHelper.ObjectToCSharpCodeExporter(); var objectASharpCode = Exporter.Export(instance); const string expected = @"new WhiteStone.Test.ExportObjectToCSharpCode_Test_Class_1 { Child1 = new WhiteStone.Test.ExportObjectToCSharpCode_Test_Class_1 { ReadOnlyList2 = new System.Collections.Generic.List<System.String> { ""A"", ""B"" } } } "; Assert.IsTrue(StringHelper.IsEqualAsData(expected, objectASharpCode)); Assert.AreEqual(0, Exporter._objectCreationStack.Count); Exporter = new ReflectionHelper.ObjectToCSharpCodeExporter(); Exporter.UsingList.Add(typeof(ExportObjectToCSharpCode_Test_Class_1).Namespace); Exporter.UsingList.Add(typeof(List <>).Namespace); objectASharpCode = Exporter.Export(instance); const string expectedWithUsing = @"new ExportObjectToCSharpCode_Test_Class_1 { Child1 = new ExportObjectToCSharpCode_Test_Class_1 { ReadOnlyList2 = new List<System.String> { ""A"", ""B"" } } } "; Assert.IsTrue(StringHelper.IsEqualAsData(expectedWithUsing, objectASharpCode)); Assert.AreEqual(0, Exporter._objectCreationStack.Count); }
public void ExportObjectToCSharpCode_Test() { Assert.AreEqual("null", ExportObjectToCSharpCode(null)); Assert.AreEqual("\"Aloha\"", ExportObjectToCSharpCode("Aloha")); Assert.AreEqual("\"Aloha\"", ExportObjectToCSharpCode("Aloha")); Assert.AreEqual("@\"Aloha\"", ExportObjectToCSharpCode(@"A loha")); var instance = new ExportObjectToCSharpCode_Test_Class_1(); Assert.AreEqual("newWhiteStone.Test.ExportObjectToCSharpCode_Test_Class_1()", ExportObjectToCSharpCode(instance)); instance.A1 = 6; Assert.AreEqual("newWhiteStone.Test.ExportObjectToCSharpCode_Test_Class_1{A1=6}", ExportObjectToCSharpCode(instance)); instance.A2 = 79; Assert.AreEqual("newWhiteStone.Test.ExportObjectToCSharpCode_Test_Class_1{A1=6,A2=79}", ExportObjectToCSharpCode(instance)); instance.A78 = 654.87; Assert.AreEqual("newWhiteStone.Test.ExportObjectToCSharpCode_Test_Class_1{A1=6,A2=79,A78=654.87}", ExportObjectToCSharpCode(instance)); instance.A4 = new ExportObjectToCSharpCode_Test_Class_1(); Assert.AreEqual("newWhiteStone.Test.ExportObjectToCSharpCode_Test_Class_1{A1=6,A2=79,A78=654.87,A4=newWhiteStone.Test.ExportObjectToCSharpCode_Test_Class_1()}", ExportObjectToCSharpCode(instance)); instance.A4.A1 = 65; Assert.AreEqual("newWhiteStone.Test.ExportObjectToCSharpCode_Test_Class_1{A1=6,A2=79,A78=654.87,A4=newWhiteStone.Test.ExportObjectToCSharpCode_Test_Class_1{A1=65}}", ExportObjectToCSharpCode(instance)); instance.A6 = new List <int?>(); Assert.AreEqual("newWhiteStone.Test.ExportObjectToCSharpCode_Test_Class_1{A1=6,A2=79,A78=654.87,A4=newWhiteStone.Test.ExportObjectToCSharpCode_Test_Class_1{A1=65},A6=newSystem.Collections.Generic.List<System.Nullable<System.Int32>>{}}", ExportObjectToCSharpCode(instance)); instance.A6.Add(34); instance.A6.Add(38); instance.A6.Add(9); Assert.AreEqual("newWhiteStone.Test.ExportObjectToCSharpCode_Test_Class_1{A1=6,A2=79,A78=654.87,A4=newWhiteStone.Test.ExportObjectToCSharpCode_Test_Class_1{A1=65},A6=newSystem.Collections.Generic.List<System.Nullable<System.Int32>>{34,38,9}}", ExportObjectToCSharpCode(instance)); instance.A5 = new List <ExportObjectToCSharpCode_Test_Class_1>(); var value = ExportObjectToCSharpCode(instance); Assert.AreEqual("newWhiteStone.Test.ExportObjectToCSharpCode_Test_Class_1{A1=6,A2=79,A78=654.87,A4=newWhiteStone.Test.ExportObjectToCSharpCode_Test_Class_1{A1=65},A5=newSystem.Collections.Generic.List<WhiteStone.Test.ExportObjectToCSharpCode_Test_Class_1>{},A6=newSystem.Collections.Generic.List<System.Nullable<System.Int32>>{34,38,9}}", value); instance.A5.Add(new ExportObjectToCSharpCode_Test_Class_1 { A1 = 5 }); value = ExportObjectToCSharpCode(instance); var expected = "newWhiteStone.Test.ExportObjectToCSharpCode_Test_Class_1{A1=6,A2=79,A78=654.87,A4=newWhiteStone.Test.ExportObjectToCSharpCode_Test_Class_1{A1=65},A5=newSystem.Collections.Generic.List<WhiteStone.Test.ExportObjectToCSharpCode_Test_Class_1>{newWhiteStone.Test.ExportObjectToCSharpCode_Test_Class_1{A1=5}},A6=newSystem.Collections.Generic.List<System.Nullable<System.Int32>>{34,38,9}}"; Assert.AreEqual(expected, value); Assert.AreEqual("newWhiteStone.Test.ExportObjectToCSharpCode_Test_Class_1{A7=newSystem.DateTime(2015,1,1,1,1,1,1)}", ExportObjectToCSharpCode(new ExportObjectToCSharpCode_Test_Class_1 { A7 = new DateTime(2015, 1, 1, 1, 1, 1, 1) })); var instance2 = new ExportObjectToCSharpCode_Test_Class_1 { A10 = ExportObjectToCSharpCode_Test_EnumType.B }; Assert.AreEqual("newWhiteStone.Test.ExportObjectToCSharpCode_Test_Class_1{A10=WhiteStone.Test.ExportObjectToCSharpCode_Test_EnumType.B}", ExportObjectToCSharpCode(instance2)); var guid = Guid.NewGuid(); instance = new ExportObjectToCSharpCode_Test_Class_1 { GuidProperty = guid }; Assert.AreEqual("newWhiteStone.Test.ExportObjectToCSharpCode_Test_Class_1{GuidProperty=newSystem.Guid(\"" + guid + "\")}", ExportObjectToCSharpCode(instance)); instance = new ExportObjectToCSharpCode_Test_Class_1 { D1Dictionary = new Dictionary <string, object> { { "a", "t" } } }; Assert.AreEqual("newWhiteStone.Test.ExportObjectToCSharpCode_Test_Class_1{D1Dictionary=newSystem.Collections.Generic.Dictionary<System.String,System.Object>{{\"a\",\"t\"}}}", ExportObjectToCSharpCode(instance)); instance = new ExportObjectToCSharpCode_Test_Class_1 { D1Dictionary = new Dictionary <string, object> { { "a", new KeyValuePair <int, short>(4, 7) } } }; Assert.AreEqual("newWhiteStone.Test.ExportObjectToCSharpCode_Test_Class_1{D1Dictionary=newSystem.Collections.Generic.Dictionary<System.String,System.Object>{{\"a\",System.Collections.Generic.KeyValuePair<System.Int32,System.Int16>(4,7)}}}", ExportObjectToCSharpCode(instance)); instance = new ExportObjectToCSharpCode_Test_Class_1 { ArrayProperty_String = new[] { "A", "B" } }; Assert.AreEqual("newWhiteStone.Test.ExportObjectToCSharpCode_Test_Class_1{ArrayProperty_String=newSystem.String[]{\"A\",\"B\"}}", ExportObjectToCSharpCode(instance)); instance = new ExportObjectToCSharpCode_Test_Class_1 { ReadOnlyList1 = new List <string> { "A", "B" } }; Assert.AreEqual("newWhiteStone.Test.ExportObjectToCSharpCode_Test_Class_1{ReadOnlyList1=newSystem.Collections.Generic.List<System.String>{\"A\",\"B\"}}", ExportObjectToCSharpCode(instance)); instance = new ExportObjectToCSharpCode_Test_Class_1 { ReadOnlyList2 = new List <string> { "A", "B" } }; Assert.AreEqual("newWhiteStone.Test.ExportObjectToCSharpCode_Test_Class_1{ReadOnlyList2=newSystem.Collections.Generic.List<System.String>{\"A\",\"B\"}}", ExportObjectToCSharpCode(instance)); instance = new ExportObjectToCSharpCode_Test_Class_1 { IList = new[] { "A", "B" } }; Assert.AreEqual("newWhiteStone.Test.ExportObjectToCSharpCode_Test_Class_1{IList=newSystem.String[]{\"A\",\"B\"}}", ExportObjectToCSharpCode(instance)); instance = new ExportObjectToCSharpCode_Test_Class_1 { DerivedEnum = new DerivedEnum("A", 6) }; Assert.AreEqual("newWhiteStone.Test.ExportObjectToCSharpCode_Test_Class_1{DerivedEnum=newWhiteStone.Test.DerivedEnum(\"A\",6)}", ExportObjectToCSharpCode(instance)); instance = new ExportObjectToCSharpCode_Test_Class_1 { intArray = new[] { 5, 7 } }; Assert.AreEqual("newWhiteStone.Test.ExportObjectToCSharpCode_Test_Class_1{intArray=newSystem.Int32[]{5,7}}", ExportObjectToCSharpCode(instance)); }