/// <summary>
        /// Create data processor
        /// </summary>
        /// <param name="terminator"></param>
        /// <param name="useHeader"></param>
        /// <param name="synchronizator"></param>
        /// <returns></returns>
        private MessageDataProcessor CreateDataProcessor(bool useHeader = false, string terminator = "XXXXX", string synchronizator = null)
        {
            var logp = new LoggerFactory();
            var cfg  = new MessageDataProcessorConfig(5000,
                                                      terminator != null ? Encoding.ASCII.GetBytes(terminator) : null, useHeader,
                                                      synchronizator != null ? Encoding.ASCII.GetBytes(synchronizator) : null);

            return(new MessageDataProcessor(cfg, logp.CreateLogger <MessageDataProcessor>()));
        }
        public void TestDelimiterInHeaderDoesNotSplitMessage()
        {
            // create processor
            var logp = new LoggerFactory();
            var cfg  = new MessageDataProcessorConfig(5000, new byte[] { 3 }, true);
            var proc = new MessageDataProcessor(cfg, logp.CreateLogger <MessageDataProcessor>());

            // create buffer
            // (03 - length, XXX  - message, 3 - terminator)
            var buffer = new byte[] {
                0, 3, 88, 88, 88, 3,
                0, 3, 99, 99, 99, 3,
            };

            // process result
            var ret = proc.ProcessReceivedRawData(buffer, buffer.Length);

            Assert.AreEqual(2, ret.Count());
            Assert.IsTrue(new byte[] { 88, 88, 88 }.SequenceEqual(ret.First()));
            Assert.IsTrue(new byte[] { 99, 99, 99 }.SequenceEqual(ret.Skip(1).First()));
        }