Beispiel #1
0
        public void TestTagWithInferenceBinary()
        {
            TagData data = new TagData
            {
                Bravo   = 15,
                Charlie = 17,
                Delta   = 4,
                Zulu    = 9
            };

            RuntimeTypeModel tm = TypeModel.Create();

            // for compatibility with DataMember
            //tm.SkipForcedAdvancedVersioning = true;

            var first  = tm.GetDebugSchema(typeof(TagData));
            var second = tm.GetDebugSchema(typeof(TagDataExpected));

            TagDataExpected clone = tm.ChangeType <TagData, TagDataExpected>(data);

            Assert.AreEqual(data.Bravo, clone.Bravo, "Bravo");
            Assert.AreEqual(data.Charlie, clone.Charlie, "Charlie");
            Assert.AreEqual(data.Delta, clone.Delta, "Delta");
            Assert.AreEqual(data.Zulu, clone.Zulu, "Zulu");
        }
Beispiel #2
0
        public void ThreeApproachesAreCompatible()
        {
            string surrogate, fields, defaultRef_AFirst, defaultRef_BFirst;
            string defaultRef_AFirst_proto;
            string fields_proto;
            string surrogate_proto;

            // Items should be not as reference but element A.Value should

            using (var ms = new MemoryStream())
            {
                RuntimeTypeModel m = CreateDefaultRefModel(true, true);
                m.Serialize(ms, CreateB_WithDefaultRef());
                defaultRef_AFirst       = BitConverter.ToString(ms.GetBuffer(), 0, (int)ms.Length);
                defaultRef_AFirst_proto = m.GetDebugSchema(typeof(B_WithDefaultRef));
            }
            using (var ms = new MemoryStream())
            {
                CreateDefaultRefModel(false, true).Serialize(ms, CreateB_WithDefaultRef());
                defaultRef_BFirst = BitConverter.ToString(ms.GetBuffer(), 0, (int)ms.Length);
            }
            using (var ms = new MemoryStream())
            {
                RuntimeTypeModel m = CreateSurrogateModel(true);
                m.Serialize(ms, CreateB());
                surrogate       = BitConverter.ToString(ms.GetBuffer(), 0, (int)ms.Length);
                surrogate_proto = m.GetDebugSchema(typeof(B));
            }

            using (var ms = new MemoryStream())
            {
                RuntimeTypeModel m = CreateFieldsModel(true);
                m.Serialize(ms, CreateB());
                fields       = BitConverter.ToString(ms.GetBuffer(), 0, (int)ms.Length);
                fields_proto = m.GetDebugSchema(typeof(B));
            }

            Assert.AreEqual(surrogate, fields, "fields vs surrogate");
            Assert.AreEqual(surrogate, defaultRef_AFirst, "default-ref (A-first) vs surrogate");
            Assert.AreEqual(surrogate, defaultRef_BFirst, "default-ref (B-first) vs surrogate");
        }