public static void Run() { { UtilFramework.CamelCase camelCase = new UtilFramework.CamelCase("AbcDef"); UtilFramework.Assert(camelCase.TextList[0] == "Abc"); UtilFramework.Assert(camelCase.TextList[1] == "Def"); } { UtilFramework.CamelCase camelCase = new UtilFramework.CamelCase("abcDef"); UtilFramework.Assert(camelCase.TextList[0] == "abc"); UtilFramework.Assert(camelCase.TextList[1] == "Def"); } { UtilFramework.CamelCase camelCase = new UtilFramework.CamelCase("AbcDefCSharp"); UtilFramework.Assert(camelCase.TextList[0] == "Abc"); UtilFramework.Assert(camelCase.TextList[1] == "Def"); UtilFramework.Assert(camelCase.TextList[2] == "CSharp"); UtilFramework.Assert(camelCase.EndsWith("DefCSharp")); UtilFramework.Assert(camelCase.EndsWith("cDefCSharp") == false); UtilFramework.Assert(camelCase.EndsWith("AbcDefCSharp")); UtilFramework.Assert(camelCase.EndsWith("AbcDefCSharpCar") == false); UtilFramework.Assert(camelCase.EndsWith("CarAbcDefCSharp") == false); UtilFramework.Assert(camelCase.EndsWith("") == true); } { UtilFramework.CamelCase camelCase = new UtilFramework.CamelCase("AbcDefCSharp"); UtilFramework.Assert(camelCase.StartsWith("Abc")); UtilFramework.Assert(camelCase.StartsWith("AbcDef")); UtilFramework.Assert(camelCase.StartsWith("AbcDefCSharp")); UtilFramework.Assert(camelCase.StartsWith("AbcDefCShar") == false); UtilFramework.Assert(camelCase.StartsWith("AbcDefCSharpLk") == false); UtilFramework.Assert(camelCase.StartsWith("LkAbcDefCSharp") == false); UtilFramework.Assert(camelCase.StartsWith("")); } { UtilFramework.CamelCase camelCase = new UtilFramework.CamelCase("ImageFileId"); UtilFramework.Assert(camelCase.EndsWith("FileId")); } { UtilFramework.CamelCase camelCase = new UtilFramework.CamelCase("ImagEFileId"); UtilFramework.Assert(camelCase.EndsWith("FileId") == false); } { var source = new AppMain(); // Serialize, deserialize UtilJson.Serialize(source, out string jsonSession, out string jsonClient); var dest = (AppMain)UtilJson.Deserialize(jsonSession); } { var source = new MyApp(); source.Div = new Div(source); source.Div.ComponentRemove(); // Serialize, deserialize UtilJson.Serialize(source, out string jsonSession, out string jsonClient); var dest = (MyApp)UtilJson.Deserialize(jsonSession); } { var source = new MyApp(); source.Row = new BootstrapRow(source); source.Col = new BootstrapCol((BootstrapRow)source.Row); // Serialize, deserialize UtilJson.Serialize(source, out string jsonSession, out string jsonClient); var dest = (MyApp)UtilJson.Deserialize(jsonSession); UtilFramework.Assert(!jsonSession.Contains("PropertyReadOnly")); } { var source = new MyApp(); // Serialize, deserialize UtilJson.Serialize(source, out string jsonSession, out string jsonClient); var dest = (MyApp)UtilJson.Deserialize(jsonSession); UtilFramework.Assert(!jsonSession.Contains("PropertyReadOnly")); } { var source = new MyApp(); // Serialize, deserialize UtilJson.Serialize(source, out string jsonSession, out string jsonClient); var dest = (MyApp)UtilJson.Deserialize(jsonSession); UtilFramework.Assert(!jsonSession.Contains("PropertyReadOnly")); } { var source = new MyApp(); var myGrid = new MyGrid(source) { Text = "K7", IsHide = true }; source.MyCell = new MyCell { MyGridBoth = myGrid, MyText = "7755" }; // Serialize, deserialize UtilJson.Serialize(source, out string jsonSession, out string jsonClient); var dest = (MyApp)UtilJson.Deserialize(jsonSession); UtilFramework.Assert(UtilFramework.FindCount(jsonClient, "K7") == 1); UtilFramework.Assert(UtilFramework.FindCount(jsonSession, "K7") == 1); // Ensure session stores reference UtilFramework.Assert(dest.List[0] == dest.MyCell.MyGridBoth); } { var source = new MyApp(); var myGrid = new MyGrid(source) { Text = "K7", IsHide = true }; var myGrid2 = new MyGrid(source) { Text = "K8", IsHide = true }; source.MyCell = new MyCell { MyGrid = myGrid, MyGrid2 = myGrid2, MyText = "7755" }; // Serialize, deserialize UtilJson.Serialize(source, out string jsonSession, out string jsonClient); var dest = (MyApp)UtilJson.Deserialize(jsonSession); UtilFramework.Assert(jsonClient.Contains("K7")); UtilFramework.Assert(!jsonClient.Contains("K8")); UtilFramework.Assert(dest.List[1] == dest.MyCell.MyGrid2); } RunComponentJson(); { A source = new A(); source.MyEnum = MyEnum.Left; // Serialize, deserialize UtilJson.Serialize(source, out string jsonSession, out string jsonClient); A dest = (A)UtilJson.Deserialize(jsonSession); UtilFramework.Assert(dest.MyEnum == MyEnum.Left); UtilFramework.Assert(dest.MyEnumNullable == null); } { A source = new A(); source.MyEnumNullable = MyEnum.None; // Serialize, deserialize UtilJson.Serialize(source, out string jsonSession, out string jsonClient); A dest = (A)UtilJson.Deserialize(jsonSession); UtilFramework.Assert(dest.MyEnumNullable == MyEnum.None); } { A source = new A(); // Serialize, deserialize UtilJson.Serialize(source, out string jsonSession, out string jsonClient); A dest = (A)UtilJson.Deserialize(jsonSession); UtilFramework.Assert(!jsonSession.Contains(nameof(A.MyEnumList))); UtilFramework.Assert(source.MyEnumList == null); UtilFramework.Assert(dest.MyEnumList != null); UtilFramework.Assert(dest.MyEnumList.Count == 0); } { A source = new A(); source.MyEnumList = new List <MyEnum>(); source.MyEnumList.Add(MyEnum.None); source.MyEnumList.Add(MyEnum.Left); source.MyEnumList.Add(MyEnum.Right); // Serialize, deserialize UtilJson.Serialize(source, out string jsonSession, out string jsonClient); A dest = (A)UtilJson.Deserialize(jsonSession); UtilFramework.Assert(jsonSession.Contains(nameof(A.MyEnumList))); UtilFramework.Assert(dest.MyEnumList[0] == MyEnum.None); UtilFramework.Assert(dest.MyEnumList[1] == MyEnum.Left); UtilFramework.Assert(dest.MyEnumList[2] == MyEnum.Right); } { A source = new A(); source.MyEnumNullableList = new List <MyEnum?>(); source.MyEnumNullableList.Add(MyEnum.None); source.MyEnumNullableList.Add(MyEnum.Left); source.MyEnumNullableList.Add(null); source.MyEnumNullableList.Add(MyEnum.Right); // Serialize, deserialize UtilJson.Serialize(source, out string jsonSession, out string jsonClient); A dest = (A)UtilJson.Deserialize(jsonSession); UtilFramework.Assert(jsonSession.Contains(nameof(A.MyEnumNullableList))); UtilFramework.Assert(dest.MyEnumNullableList[0] == MyEnum.None); UtilFramework.Assert(dest.MyEnumNullableList[1] == MyEnum.Left); UtilFramework.Assert(dest.MyEnumNullableList[2] == null); UtilFramework.Assert(dest.MyEnumNullableList[3] == MyEnum.Right); } { A source = new A(); source.IntNullableList = new List <int?>(); source.IntNullableList.Add(0); source.IntNullableList.Add(1); source.IntNullableList.Add(null); source.IntNullableList.Add(2); // Serialize, deserialize UtilJson.Serialize(source, out string jsonSession, out string jsonClient); A dest = (A)UtilJson.Deserialize(jsonSession); UtilFramework.Assert(jsonSession.Contains(nameof(A.IntNullableList))); UtilFramework.Assert(dest.IntNullableList[0] == 0); UtilFramework.Assert(dest.IntNullableList[1] == 1); UtilFramework.Assert(dest.IntNullableList[2] == null); UtilFramework.Assert(dest.IntNullableList[3] == 2); } { A source = new A(); source.IntList = new List <int>(); source.IntList.Add(0); source.IntList.Add(1); source.IntList.Add(2); // Serialize, deserialize UtilJson.Serialize(source, out string jsonSession, out string jsonClient); A dest = (A)UtilJson.Deserialize(jsonSession); UtilFramework.Assert(jsonSession.Contains(nameof(A.IntList))); UtilFramework.Assert(dest.IntList[0] == 0); UtilFramework.Assert(dest.IntList[1] == 1); UtilFramework.Assert(dest.IntList[2] == 2); } { A source = new A(); source.V = 33; // Serialize, deserialize UtilJson.Serialize(source, out string jsonSession, out string jsonClient); A dest = (A)UtilJson.Deserialize(jsonSession); UtilFramework.Assert((int)dest.V == 33); } { A source = new A(); source.V = "Hello"; // Serialize, deserialize UtilJson.Serialize(source, out string jsonSession, out string jsonClient); A dest = (A)UtilJson.Deserialize(jsonSession); UtilFramework.Assert((string)dest.V == "Hello"); } { var date = DateTime.Now; A source = new A(); source.Row = new FrameworkDeployDb { Id = 22, FileName = @"C:\Temp\Readme.txt", Date = date }; // Serialize, deserialize UtilJson.Serialize(source, out string jsonSession, out string jsonClient); A dest = (A)UtilJson.Deserialize(jsonSession); UtilFramework.Assert(dest.Row.Id == 22); UtilFramework.Assert(dest.Row.FileName == @"C:\Temp\Readme.txt"); UtilFramework.Assert(dest.Row.Date == date); } { A source = new A(); source.V = MyEnum.None; // TODO Serialize enum on property of type object. // Serialize, deserialize // string json = UtilJson.Serialize(source); // A dest = (A)UtilJson.Deserialize(json); } }