/// <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())); }