Пример #1
0
        public void Read_SingleChunkMessage_Succeeds()
        {
            ITokenReader      tokenReader      = new XmlTokenReader();
            ITokenReaderState tokenReaderState = new XmlTokenReaderState();

            String expectedMessage = StockLocationInfoResponseEnvelopeDataContractTests.Response.Xml;

            ReadOnlySequence <byte> buffer = new ReadOnlySequence <byte>(XmlSerializationSettings.Encoding.GetBytes(expectedMessage));

            bool readResult = tokenReader.Read(ref tokenReaderState, ref buffer, out ReadOnlySequence <byte> token, out _);

            Assert.IsTrue(readResult);

            String actualMessage = XmlSerializationSettings.Encoding.GetString(token.ToArray());

            Assert.IsTrue(XmlComparer.AreEqual(expectedMessage, actualMessage));
        }
Пример #2
0
        public void Read_MultipleChunkMessage_Succeeds()
        {
            ITokenReader      tokenReader      = new XmlTokenReader();
            ITokenReaderState tokenReaderState = new XmlTokenReaderState();

            String expectedMessage = StockLocationInfoResponseEnvelopeDataContractTests.Response.Xml;

            (String Left, String Right)messageBlocks = expectedMessage.Divide();

            ReadOnlySequence <byte> firstChunk  = new ReadOnlySequence <byte>(XmlSerializationSettings.Encoding.GetBytes(messageBlocks.Left));
            ReadOnlySequence <byte> secondChunk = new ReadOnlySequence <byte>(XmlSerializationSettings.Encoding.GetBytes(messageBlocks.Left + messageBlocks.Right));

            bool firstReadResult = tokenReader.Read(ref tokenReaderState, ref firstChunk, out _, out _);

            Assert.IsFalse(firstReadResult);

            bool secondReadResult = tokenReader.Read(ref tokenReaderState, ref secondChunk, out ReadOnlySequence <byte> token, out _);

            Assert.IsTrue(secondReadResult);

            String actualMessage = XmlSerializationSettings.Encoding.GetString(token.ToArray());

            Assert.IsTrue(XmlComparer.AreEqual(expectedMessage, actualMessage));
        }