コード例 #1
0
        public void CanceledWhileReading_TaskCanceledExceptionThrown()
        {
            string inFrame = StompCommands.Error + "\r\nH1:V1\nH2:V2\n\r\nABC\0";

            for (int i = 0; i < inFrame.Length; i++)
            {
                using (MemoryStream inStream = new NoEndChunkedMemoryStream())
                {
                    inStream.Write(inFrame.Substring(0, i));
                    inStream.Seek(0, SeekOrigin.Begin);

                    IStompFrameReader reader = new Stomp12FrameReader(inStream);

                    try
                    {
                        CancellationToken cToken   = new CancellationTokenSource(10).Token;
                        Frame             outFrame = reader.ReadFrameAsync(cToken).Result;
                        Assert.Fail("AggregateException(TaskCanceledException) expected.");
                    }
                    catch (AggregateException e)
                    {
                        Assert.IsTrue(e.InnerException is TaskCanceledException);
                    }
                }
            }
        }
コード例 #2
0
        public void FrameInChunks_SuccessfullyRead()
        {
            string inFrame = StompCommands.Message + "\r\nH0:V0\r\ncontent-length:20\r\n\r\n12345678901234567890\0";

            using (MemoryStream inStream = new NoEndChunkedMemoryStream(chunkSize: 4))
            {
                inStream.Write(inFrame);
                inStream.Seek(0, SeekOrigin.Begin);

                IStompFrameReader reader   = new Stomp12FrameReader(inStream);
                Frame             outFrame = reader.ReadFrameAsync().Result;
                Assert.AreEqual(StompCommands.Message, outFrame.Command);
                Assert.AreEqual(2, outFrame.Headers.Count());
                Assert.AreEqual("V0", outFrame.GetAllHeaderValues("H0").First());
                Assert.AreEqual("20", outFrame.GetAllHeaderValues("content-length").First());
                Assert.AreEqual("12345678901234567890", outFrame.GetBodyAsString());
            }
        }