StateMachineMessageCutterUnitTest.cs 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using Microsoft.VisualStudio.TestTools.UnitTesting;
  2. namespace HengshanTerminalWrapper_Test
  3. {
  4. [TestClass]
  5. public class StateMachineMessageCutterUnitTest
  6. {
  7. [TestMethod]
  8. public void NoneStarter_Should_Never_Succeed_TestMethod0()
  9. {
  10. var msgCutTimes = 0;
  11. var invalidMsgCutTimes = 0;
  12. var input = new byte[] { 0x00, 0x02, 0xA0, 0xA0 };
  13. Dfs.WayneChina.HengshanTerminalWrapper.StateMachineMessageCutter cutter
  14. = new Dfs.WayneChina.HengshanTerminalWrapper.StateMachineMessageCutter();
  15. cutter.OnMessageCut += (c, cc) =>
  16. {
  17. msgCutTimes++;
  18. };
  19. cutter.OnInvalidMessageRead += (i, ii) => { invalidMsgCutTimes++; };
  20. cutter.Feed(input);
  21. Assert.AreEqual(0, msgCutTimes, "msg cut times is: " + msgCutTimes);
  22. Assert.AreEqual(4, invalidMsgCutTimes, "invalid msg cut times is: " + invalidMsgCutTimes);
  23. }
  24. [TestMethod]
  25. public void NoneStarter_Should_Never_Succeed_TestMethod1()
  26. {
  27. var msgCutTimes = 0;
  28. var invalidMsgCutTimes = 0;
  29. var input = new byte[] { 0x00, 0x02, 0xA0, 0xA0, 0xFF };
  30. Dfs.WayneChina.HengshanTerminalWrapper.StateMachineMessageCutter cutter
  31. = new Dfs.WayneChina.HengshanTerminalWrapper.StateMachineMessageCutter();
  32. cutter.OnMessageCut += (c, cc) =>
  33. {
  34. msgCutTimes++;
  35. };
  36. cutter.OnInvalidMessageRead += (i, ii) => { invalidMsgCutTimes++; };
  37. cutter.Feed(input);
  38. Assert.AreEqual(0, msgCutTimes, "msg cut times is: " + msgCutTimes);
  39. Assert.AreEqual(4, invalidMsgCutTimes, "invalid msg cut times is: " + invalidMsgCutTimes);
  40. }
  41. [TestMethod]
  42. public void NoneStarter_Should_Never_Succeed_TestMethod2()
  43. {
  44. var msgCutTimes = 0;
  45. var invalidMsgCutTimes = 0;
  46. var input = new byte[] { 0x00, 0x02, 0xA0, 0xA0, 0xFF, 0x02, 0x00, 0x01 };
  47. Dfs.WayneChina.HengshanTerminalWrapper.StateMachineMessageCutter cutter
  48. = new Dfs.WayneChina.HengshanTerminalWrapper.StateMachineMessageCutter();
  49. cutter.OnMessageCut += (c, cc) =>
  50. {
  51. msgCutTimes++;
  52. };
  53. cutter.OnInvalidMessageRead += (i, ii) => { invalidMsgCutTimes++; };
  54. cutter.Feed(input);
  55. Assert.AreEqual(1, msgCutTimes, "msg cut times is: " + msgCutTimes);
  56. Assert.AreEqual(4, invalidMsgCutTimes, "invalid msg cut times is: " + invalidMsgCutTimes);
  57. }
  58. }
  59. }