/// <summary>
            /// Runs the test action of this test after setting up the input memory stream.
            /// </summary>
            /// <param name="streamBuffer">The batch reader stream buffer to test.</param>
            /// <param name="memoryStream">The memory stream with the input payload.</param>
            protected override void RunTestAction(BatchReaderStreamBufferWrapper streamBuffer, MemoryStream memoryStream)
            {
                // fill the buffer
                streamBuffer.RefillFrom(memoryStream, BatchReaderStreamBufferWrapper.BufferLength);

                int lineEndStart, lineEndEnd;
                var scanResult = streamBuffer.ScanForLineEnd(out lineEndStart, out lineEndEnd);
                this.VerifyResult(streamBuffer, scanResult, lineEndStart, lineEndEnd);
            }
            protected override void RunTestAction(BatchReaderStreamBufferWrapper streamBuffer, MemoryStream memoryStream)
            {
                if (!this.RequireEmptyBuffer)
                {
                    streamBuffer.RefillFrom(memoryStream, BatchReaderStreamBufferWrapper.BufferLength);
                }

                streamBuffer.RefillFrom(memoryStream, this.PreserveFrom);
                this.VerifyResult(streamBuffer);
            }
            /// <summary>
            /// Runs the test action of this test after setting up the input memory stream.
            /// </summary>
            /// <param name="streamBuffer">The batch reader stream buffer to test.</param>
            /// <param name="memoryStream">The memory stream with the input payload.</param>
            protected override void RunTestAction(BatchReaderStreamBufferWrapper streamBuffer, MemoryStream memoryStream)
            {
                // fill the buffer
                streamBuffer.RefillFrom(memoryStream, BatchReaderStreamBufferWrapper.BufferLength);

                streamBuffer.SkipTo(this.SkipTo);
                this.VerifyResult(streamBuffer);
            }
            /// <summary>
            /// Runs the test action of this test after setting up the input memory stream.
            /// </summary>
            /// <param name="streamBuffer">The batch reader stream buffer to test.</param>
            /// <param name="memoryStream">The memory stream with the input payload.</param>
            protected override void RunTestAction(BatchReaderStreamBufferWrapper streamBuffer, MemoryStream memoryStream)
            {
                // fill the buffer
                streamBuffer.RefillFrom(memoryStream, BatchReaderStreamBufferWrapper.BufferLength);

                int boundaryStart, boundaryEnd;
                bool isEndBoundary, isParentBoundary;
                var scanResult = streamBuffer.ScanForBoundary(
                    this.Boundaries, 
                    int.MaxValue, 
                    out boundaryStart, 
                    out boundaryEnd, 
                    out isEndBoundary,
                    out isParentBoundary);
                this.VerifyResult(streamBuffer, scanResult, boundaryStart, boundaryEnd, isEndBoundary, isParentBoundary);
            }