예제 #1
0
        public void Length_field_based_framing_must_support_simple_framing_adapter()
        {
            var rechunkBidi = BidiFlow.FromFlowsMat(Rechunk, Rechunk, Keep.Left);
            var codecFlow   = Framing.SimpleFramingProtocol(1024)
                              .Atop(rechunkBidi)
                              .Atop(Framing.SimpleFramingProtocol(1024).Reversed())
                              .Join(Flow.Create <ByteString>()); // Loopback

            var random       = new Random();
            var testMessages = Enumerable.Range(1, 100).Select(_ => ReferenceChunk.Slice(0, random.Next(1024))).ToList();

            var task = Source.From(testMessages)
                       .Via(codecFlow)
                       .Limit(1000)
                       .RunWith(Sink.Seq <ByteString>(), Materializer);

            task.Wait(TimeSpan.FromSeconds(3)).Should().BeTrue();
            task.Result.ShouldAllBeEquivalentTo(testMessages);
        }