public void Alteration() { var jtest = new JTest { Payload = new JTest() }; var json = JsonConvert.SerializeObject(jtest); dynamic jdynamic = new JDynamic(json); Compare(jdynamic, jtest); jdynamic.String = jtest.String = jtest.String.ToLower(); //jdynamic.Short = ++jtest.Short; //jdynamic.UShort = ++jtest.UShort; jdynamic.Int = ++jtest.Int; //jdynamic.UInt = ++jtest.UInt; //jdynamic.Long = ++jtest.Long; jdynamic.Decimal = ++jtest.Decimal; jdynamic.Guid = jtest.Guid = Guid.NewGuid(); jdynamic.DateTime = jtest.DateTime = DateTime.Now; jdynamic.DateTimeOffset = jtest.DateTimeOffset = DateTimeOffset.Now; jdynamic.Payload = jtest.Payload = new JTest(jtest); Compare(jdynamic, jtest); }
//[TestMethod] public void QueryMembers() { var jtest = new JTest { Payload = new JTest() }; var json = JsonConvert.SerializeObject(jtest); dynamic jdynamic = new JDynamic(json); var jmembers = jtest.GetMembers(); foreach (var info in jmembers) { var jvalue = info.GetValue(jtest); var dvalue = jdynamic[info.Name]; switch (jvalue) { case JTest jt: { Compare(jdynamic.Payload, jt); break; } default: { Assert.AreEqual(jvalue, dvalue); break; } } } }
public JTest(JTest jtest) { String = jtest.String; Decimal = /* Long = */ Int = jtest.Int; //UInt = jtest.UInt; Guid = jtest.Guid; DateTime = jtest.DateTime; DateTimeOffset = jtest.DateTimeOffset; Null = null; }
public void Construction() { var jtest = new JTest { Payload = new JTest() }; var json = JsonConvert.SerializeObject(jtest); dynamic jdynamic = new JDynamic(json); Compare(jdynamic, jtest); }
public void ListMembers() { var jtest = new JTest { Payload = new JTest() }; var json = JsonConvert.SerializeObject(jtest); dynamic jdynamic = new JDynamic(json); var jmembers = jtest.GetMemberNames(); var dmembers = jdynamic.GetDynamicMemberNames(); Assert.IsTrue(Enumerable.SequenceEqual(jmembers, dmembers)); }
private void Compare(dynamic jdynamic, JTest jtest) { Assert.AreEqual(jdynamic.String, jtest.String); Assert.AreEqual(jdynamic.Int, jtest.Int); Assert.AreEqual(jdynamic.Guid, jtest.Guid); Assert.AreEqual(jdynamic.Decimal, jtest.Decimal); Assert.AreEqual(jdynamic.DateTime, jtest.DateTime); Assert.AreEqual(jdynamic.DateTimeOffset, jtest.DateTimeOffset); Assert.IsNull(jdynamic.Null); if (null != jdynamic.Payload) { Compare(jdynamic.Payload, (JTest)jtest.Payload); } else { Assert.IsNull(jtest.Payload); } }