public void SerializeGetChunkedFileResponseMessage()
        {
            GetChunkedFileResponseMessage response = new GetChunkedFileResponseMessage();
            ContentProperty contentProperty1       = new ContentProperty();

            contentProperty1.Name      = "Prop1";
            contentProperty1.Value     = "TestValue";
            contentProperty1.Retention = ContentPropertyRetention.KeepOnContentChange.ToString();

            ContentProperty contentProperty2 = new ContentProperty();

            contentProperty2.Name      = "last ocs save";
            contentProperty2.Value     = "TestValue2";
            contentProperty2.Retention = ContentPropertyRetention.DeleteOnContentChange.ToString();

            response.ContentProperties = new ContentProperty[] { contentProperty1, contentProperty2 };

            ChunkSignature chunk1 = new ChunkSignature();

            chunk1.ChunkId = "Chunk1";
            chunk1.Length  = 334;

            ChunkSignature chunk2 = new ChunkSignature();

            chunk2.ChunkId = "Chunk2";
            chunk2.Length  = 111334;

            ChunkSignature chunk3 = new ChunkSignature();

            chunk3.ChunkId = "Chunk3";
            chunk3.Length  = 4;

            ChunkSignature chunk4 = new ChunkSignature();

            chunk4.ChunkId = "Chunk4";
            chunk4.Length  = Int64.MaxValue;


            StreamSignature signature = new StreamSignature();

            signature.ChunkingScheme  = ChunkingScheme.FullFile.ToString();
            signature.StreamId        = "AlternateStream1";
            signature.ChunkSignatures = new ChunkSignature[4] {
                chunk1, chunk2, chunk3, chunk4
            };
            StreamSignature[] streamSignatures = new StreamSignature[1] {
                signature
            };

            response.Signatures = streamSignatures;

            using (MemoryStream ms = new MemoryStream())
            {
                DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(GetChunkedFileResponseMessage));
                ser.WriteObject(ms, response);
                ms.Seek(0, SeekOrigin.Begin);
                GetChunkedFileResponseMessage responseNew = (GetChunkedFileResponseMessage)ser.ReadObject(ms);

                // Assert
                Assert.AreEqual(response.ToString(), responseNew.ToString());
            }
        }
        public void SerializePutChunkedFileRequestMessage()
        {
            PutChunkedFileRequestMessage request = new PutChunkedFileRequestMessage();
            ContentProperty contentProperty1     = new ContentProperty();

            contentProperty1.Name      = "Prop1";
            contentProperty1.Value     = "TestValue";
            contentProperty1.Retention = ContentPropertyRetention.KeepOnContentChange.ToString();

            ContentProperty contentProperty2 = new ContentProperty();

            contentProperty2.Name      = "last ocs save";
            contentProperty2.Value     = "TestValue2";
            contentProperty2.Retention = ContentPropertyRetention.DeleteOnContentChange.ToString();

            request.ContentProperties = new ContentProperty[] { contentProperty1, contentProperty2 };

            ChunkSignature chunk1 = new ChunkSignature();

            chunk1.ChunkId = "Chunk1";
            chunk1.Length  = 334;

            ChunkSignature chunk2 = new ChunkSignature();

            chunk2.ChunkId = "Chunk2";
            chunk2.Length  = 111334;

            ChunkSignature chunk3 = new ChunkSignature();

            chunk3.ChunkId = "Chunk3";
            chunk3.Length  = 4;

            ChunkSignature chunk4 = new ChunkSignature();

            chunk4.ChunkId = "Chunk4";
            chunk4.Length  = 554;


            StreamSignature signature = new StreamSignature();

            signature.ChunkingScheme  = ChunkingScheme.FullFile.ToString();
            signature.StreamId        = "AlternateStream1";
            signature.ChunkSignatures = new ChunkSignature[4] {
                chunk1, chunk2, chunk3, chunk4
            };
            StreamSignature[] streamSignatures = new StreamSignature[1] {
                signature
            };

            request.Signatures = streamSignatures;

            request.UploadSessionTokenToCommit = "3DFCF2D5 - DABA - 4BDD - 88EC - 69823EDCF585";

            using (MemoryStream ms = new MemoryStream())
            {
                DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(PutChunkedFileRequestMessage));
                ser.WriteObject(ms, request);
                ms.Seek(0, SeekOrigin.Begin);
                PutChunkedFileRequestMessage requestNew = (PutChunkedFileRequestMessage)ser.ReadObject(ms);

                // Assert
                Assert.AreEqual(request.ToString(), requestNew.ToString());
            }
        }