public void JsonClonePropertyToFieldTests() { var test = new PropertyClass { Name = "hello", Age = 1, Weight = 47.11, DayOfWeek = DayOfWeek.Monday, ListOfString = new List <string> { "A", "B", "C" } }; var result = test.JsonClone <PropertyClass, FieldClass>(); Assert.Equal(typeof(FieldClass), result.GetType()); Assert.Equal(test.Name, result.Name); Assert.Equal(test.Age, result.Age); Assert.Equal(test.Weight, result.Weight); Assert.Equal(test.DayOfWeek, result.DayOfWeek); Assert.Equal(test.ListOfString.Count, result.ListOfString.Count); Assert.Equal(test.ListOfString[0], result.ListOfString[0]); Assert.Equal(test.ListOfString[1], result.ListOfString[1]); Assert.Equal(test.ListOfString[2], result.ListOfString[2]); test.Name = ""; Assert.NotEqual(test.Name, result.Name); test.Age = 0; Assert.NotEqual(test.Age, result.Age); test.Weight = 0; Assert.NotEqual(test.Weight, result.Weight); test.DayOfWeek = DayOfWeek.Friday; Assert.NotEqual(test.DayOfWeek, result.DayOfWeek); test.ListOfString.Add("D"); Assert.Equal(4, test.ListOfString.Count); Assert.Equal(3, result.ListOfString.Count); result.ListOfString.Add("D"); result.ListOfString.Add("E"); Assert.Equal(4, test.ListOfString.Count); Assert.Equal(5, result.ListOfString.Count); }