using Microsoft.VisualStudio.TestTools.UnitTesting; namespace HengshanTerminalWrapper_Test { [TestClass] public class StateMachineMessageCutterUnitTest { [TestMethod] public void NoneStarter_Should_Never_Succeed_TestMethod0() { var msgCutTimes = 0; var invalidMsgCutTimes = 0; var input = new byte[] { 0x00, 0x02, 0xA0, 0xA0 }; Dfs.WayneChina.HengshanTerminalWrapper.StateMachineMessageCutter cutter = new Dfs.WayneChina.HengshanTerminalWrapper.StateMachineMessageCutter(); cutter.OnMessageCut += (c, cc) => { msgCutTimes++; }; cutter.OnInvalidMessageRead += (i, ii) => { invalidMsgCutTimes++; }; cutter.Feed(input); Assert.AreEqual(0, msgCutTimes, "msg cut times is: " + msgCutTimes); Assert.AreEqual(4, invalidMsgCutTimes, "invalid msg cut times is: " + invalidMsgCutTimes); } [TestMethod] public void NoneStarter_Should_Never_Succeed_TestMethod1() { var msgCutTimes = 0; var invalidMsgCutTimes = 0; var input = new byte[] { 0x00, 0x02, 0xA0, 0xA0, 0xFF }; Dfs.WayneChina.HengshanTerminalWrapper.StateMachineMessageCutter cutter = new Dfs.WayneChina.HengshanTerminalWrapper.StateMachineMessageCutter(); cutter.OnMessageCut += (c, cc) => { msgCutTimes++; }; cutter.OnInvalidMessageRead += (i, ii) => { invalidMsgCutTimes++; }; cutter.Feed(input); Assert.AreEqual(0, msgCutTimes, "msg cut times is: " + msgCutTimes); Assert.AreEqual(4, invalidMsgCutTimes, "invalid msg cut times is: " + invalidMsgCutTimes); } [TestMethod] public void NoneStarter_Should_Never_Succeed_TestMethod2() { var msgCutTimes = 0; var invalidMsgCutTimes = 0; var input = new byte[] { 0x00, 0x02, 0xA0, 0xA0, 0xFF, 0x02, 0x00, 0x01 }; Dfs.WayneChina.HengshanTerminalWrapper.StateMachineMessageCutter cutter = new Dfs.WayneChina.HengshanTerminalWrapper.StateMachineMessageCutter(); cutter.OnMessageCut += (c, cc) => { msgCutTimes++; }; cutter.OnInvalidMessageRead += (i, ii) => { invalidMsgCutTimes++; }; cutter.Feed(input); Assert.AreEqual(1, msgCutTimes, "msg cut times is: " + msgCutTimes); Assert.AreEqual(4, invalidMsgCutTimes, "invalid msg cut times is: " + invalidMsgCutTimes); } } }