Example #1
0
        private void Test(string frame, Func <byte[], IByteBuffer, ZeroFrameDecoderTestWrapper, IByteBuffer> deliveryStrategy, string expectedOutput)
        {
            byte[]      frameBytes = Bytes.FromHexString(frame);
            IByteBuffer input      = Unpooled.Buffer(256);
            ZeroFrameDecoderTestWrapper zeroFrameDecoderTestWrapper = new ZeroFrameDecoderTestWrapper(_frameCipher, _macProcessor);

            IByteBuffer result = deliveryStrategy(frameBytes, input, zeroFrameDecoderTestWrapper);

            Assert.NotNull(result, "did not decode frame");

            byte[] resultBytes = new byte[result.ReadableBytes];
            result.ReadBytes(resultBytes);
            TestContext.WriteLine(resultBytes.ToHexString());
            string expected = expectedOutput;

            TestContext.WriteLine(resultBytes.ToHexString());
            Assert.AreEqual(expected, resultBytes.ToHexString());
            Assert.AreEqual(input.ReaderIndex, input.WriterIndex, "reader index == writer index");
        }
Example #2
0
        private static IByteBuffer DeliverBlockByBlock(byte[] frame, IByteBuffer input, ZeroFrameDecoderTestWrapper zeroFrameDecoderTestWrapper)
        {
            IByteBuffer result = null;

            for (int i = 0; i < frame.Length; i += 16)
            {
                input.WriteBytes(frame.Slice(i, 16));
                result = zeroFrameDecoderTestWrapper.Decode(input);
                if (result != null)
                {
                    break;
                }
            }

            return(result);
        }
Example #3
0
 private static IByteBuffer DeliverAllAtOnceFollowedByACorruptedHeader(byte[] frame, IByteBuffer input, ZeroFrameDecoderTestWrapper zeroFrameDecoderTestWrapper)
 {
     byte[] corruptedHeader = new byte[32];
     input.WriteBytes(Bytes.Concat(frame, corruptedHeader));
     return(zeroFrameDecoderTestWrapper.Decode(input, false));
 }
Example #4
0
 private static IByteBuffer DeliverAllAtOnce(byte[] frame, IByteBuffer input, ZeroFrameDecoderTestWrapper zeroFrameDecoderTestWrapper)
 {
     input.WriteBytes(frame);
     return(zeroFrameDecoderTestWrapper.Decode(input));
 }