public void Test_DataContract()
        {
            var contract1 = new TestContract1();

            SerializeHelper(contract1, contract1.Jsml);
            DeserializeHelper(contract1, contract1.Jsml);
            DeserializeHelper(contract1, contract1.LegacyJsml);

            contract1.Foo = "Macro.Healthcare.ExternalPractitioner, Macro.Healthcare:G:0fa8fdae-4678-40d7-bc54-9ca700e646d9:2";
            SerializeHelper(contract1, contract1.Jsml);
            DeserializeHelper(contract1, contract1.Jsml);
            DeserializeHelper(contract1, contract1.LegacyJsml);

            var contract2 = new TestContract2();

            SerializeHelper(contract2, contract2.Jsml);
            DeserializeHelper(contract2, contract2.Jsml);
            DeserializeHelper(contract2, contract2.LegacyJsml);

            var now = DateTime.Now;

            contract2.Double             = 5.0;
            contract2.Bool               = true;
            contract2.NullableDateTime   = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second);
            contract2.ExtendedProperties = new Dictionary <string, string> {
                { "key1", "value1" }, { "key2", "value2" }
            };
            SerializeHelper(contract2, contract2.Jsml);
            DeserializeHelper(contract2, contract2.Jsml);
            DeserializeHelper(contract2, contract2.LegacyJsml);
        }
        public void Test_DataContract_containing_EntityRef()
        {
            var contract1 = new TestContract1();

            SerializeHelper(contract1, contract1.Jsml);
            DeserializeHelper(contract1, contract1.Jsml);
            DeserializeHelper(contract1, contract1.LegacyJsml);

            contract1.EntityRef = new EntityRef("Macro.Healthcare.ExternalPractitioner, Macro.Healthcare:G:0fa8fdae-4678-40d7-bc54-9ca700e646d9:2");
            SerializeHelper(contract1, contract1.Jsml);
            DeserializeHelper(contract1, contract1.Jsml);
            DeserializeHelper(contract1, contract1.LegacyJsml);
        }