Test.TestLocalFeatures.Run C# (CSharp) Méthode

Run() private méthode

private Run ( ) : void
Résultat void
        public void Run()
        {
            LocalFeatures local = new LocalFeatures("139pt2m7");
            local.Uptime = TimeSpan.FromHours(37.8);
            local.DueDate = DateTime.UtcNow.AddMinutes(1);
            local.Internal = "assembly";
            local.PR = "Hi";
            local.Amount = Math.E;
            local.Deny("they exist");
            local.MyInterface = new MyImplementeInterface();
            local.MyEnum = LocalFeatureTest.TopEnum.Last;
            MemoryStream ms1 = new MemoryStream();
            LocalFeatures.Serialize(ms1, local);

            MemoryStream ms2 = new MemoryStream(ms1.ToArray());
            LocalFeatures l2 = new LocalFeatures("Secret");
            //Since this property is an interface AND required we must set it before calling Deserialize
            l2.MyInterface = new MyImplementeInterface();
            LocalFeatures.Deserialize(ms2, l2);

            //Test in Equals to have access to all fields
            Assert.IsTrue(local.Equals(l2), "Local Features");

            //Test preservation of unknown fields
            byte[] streamBuffer;
            byte[] streamBufferV2Orig;
            byte[] streamBufferV1Mod;
            MyMessageV2 v2original = MyMessageV2.TestInstance();

            //Write
            using (MemoryStream ms = new MemoryStream())
            {
                MyMessageV2.Serialize(ms, v2original);
                streamBuffer = ms.ToArray();
                streamBufferV2Orig = streamBuffer;
            }

            //Read V1, modify and write back
            MyMessageV1 v1 = MyMessageV1.Deserialize(new MemoryStream(streamBuffer));
            v1.FieldA = 42;
            using (MemoryStream ms = new MemoryStream())
            {
                MyMessageV1.Serialize(ms, v1);
                streamBuffer = ms.ToArray();
                streamBufferV1Mod = streamBuffer;
            }

            //Compare stream buffers
            //Test (
            //  "Stream buffer length",
            //  streamBufferV2Orig.Length == streamBufferV1Mod.Length
            //);
            for (int n = 0; n < streamBufferV2Orig.Length; n++)
            {
                if (n == 1)
                    continue; //expected difference for FieldA
                if (streamBufferV2Orig[n] != streamBufferV1Mod[n])
                    throw new InvalidDataException("Stream buffers do not match at byte " + n);
            }

            //Read V2 and test
            MyMessageV2 v2test = MyMessageV2.Deserialize(new MemoryStream(streamBuffer));
            //Test FieldA
            Assert.AreEqual(v2test.FieldA, v1.FieldA, "Modified in v1");
            //Restore and test entire v2
            v2test.FieldA = v2original.FieldA;
            Assert.IsTrue(v2original.Equals(v2test), "MyMessageV2 WriteRead");
        }

Usage Example

Exemple #1
0
        public static void Main(string[] args)
        {
            Console.WriteLine("Hello Binary World!");

            TestReadme.Run();

            TestZigZag.Run();

            TestStandardFeatures.Run();

            TestLocalFeatures.Run();

            TestNonOptimizedCases.Run();

            TestProtoBufNet.Run();

            TestPerformance.Run();
        }
TestLocalFeatures