MessageTest.cs 10.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. using Microsoft.VisualStudio.TestTools.UnitTesting;
  2. using Quectel_BC35_G_NBIOT;
  3. using Quectel_BC35_G_NBIOT.MessageEntity.AT.Incoming;
  4. using Quectel_BC35_G_NBIOT.MessageEntity.AT.Outgoing._3GPP;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. namespace Quectel_BC35_G_NBIOT_Test
  9. {
  10. [TestClass]
  11. public class MessageTest
  12. {
  13. public static bool ValueEquals(IEnumerable<byte> array1, IEnumerable<byte> array2)
  14. {
  15. if (array1 == null && array2 == null)
  16. {
  17. return true;
  18. }
  19. if ((array1 == null) || (array2 == null))
  20. {
  21. return false;
  22. }
  23. if (array1.Count() != array2.Count())
  24. {
  25. return false;
  26. }
  27. if (array1.Equals(array2))
  28. {
  29. return true;
  30. }
  31. else
  32. {
  33. for (int Index = 0; Index < array1.Count(); Index++)
  34. {
  35. if (!Equals(array1.ElementAt(Index), array2.ElementAt(Index)))
  36. {
  37. return false;
  38. }
  39. }
  40. }
  41. return true;
  42. }
  43. #region DisplayProductIdentificationInformationCommand
  44. [TestMethod]
  45. public void DisplayProductIdentificationInformationCommandTestMethod1()
  46. {
  47. var command = new DisplayProductIdentificationInformationCommand();
  48. Quectel_BC35_G_NBIOT.Parser parser = new Quectel_BC35_G_NBIOT.Parser();
  49. var actual = parser.Serialize(command);
  50. var expect = Encoding.UTF8.GetBytes("ATI")
  51. .Concat(new byte[] { MessageCutter.CR, MessageCutter.LF });
  52. Assert.AreEqual(true, ValueEquals(actual, expect));
  53. }
  54. [TestMethod]
  55. public void DisplayProductIdentificationInformationCommandResponseTestMethod1()
  56. {
  57. var msgStrContent = MessageCutter.CRLF +
  58. "Quectel" + MessageCutter.CRLF +
  59. "123" + MessageCutter.CRLF +
  60. "Revision:789" + MessageCutter.CRLF +
  61. MessageCutter.CRLF +
  62. "OK" + MessageCutter.CRLF;
  63. var raw = Encoding.UTF8.GetBytes(msgStrContent);
  64. Quectel_BC35_G_NBIOT.Parser parser = new Quectel_BC35_G_NBIOT.Parser();
  65. var actual = parser.Deserialize(raw.ToArray()) as GenericResponse;
  66. Assert.AreEqual(true, actual != null);
  67. Assert.AreEqual(true, actual.State.HasValue);
  68. Assert.AreEqual(true, actual.State == GenericResponse.ResponseState.OK);
  69. Assert.AreEqual(true, actual.StringBody == msgStrContent);
  70. }
  71. [TestMethod]
  72. public void DisplayProductIdentificationInformationCommandResponseTestMethod2()
  73. {
  74. var msgStrContent = MessageCutter.CRLF +
  75. "Quectel" + MessageCutter.CRLF +
  76. "123" + MessageCutter.CRLF +
  77. "Revision:789" + MessageCutter.CRLF +
  78. MessageCutter.CRLF +
  79. "ERROR" + MessageCutter.CRLF;
  80. var raw = Encoding.UTF8.GetBytes(msgStrContent);
  81. Quectel_BC35_G_NBIOT.Parser parser = new Quectel_BC35_G_NBIOT.Parser();
  82. var actual = parser.Deserialize(raw.ToArray()) as GenericResponse;
  83. Assert.AreEqual(true, actual != null);
  84. Assert.AreEqual(true, actual.State.HasValue);
  85. Assert.AreEqual(true, actual.State == GenericResponse.ResponseState.ERROR);
  86. Assert.AreEqual(true, actual.StringBody == msgStrContent);
  87. }
  88. [TestMethod]
  89. public void DisplayProductIdentificationInformationCommandResponseTestMethod3()
  90. {
  91. var msgStrContent = MessageCutter.CRLF +
  92. "Quectel" + MessageCutter.CRLF +
  93. "123" + MessageCutter.CRLF +
  94. "Revision:789" + MessageCutter.CRLF +
  95. MessageCutter.CRLF +
  96. "+CME ERROR:1" + MessageCutter.CRLF;
  97. var raw = Encoding.UTF8.GetBytes(msgStrContent);
  98. Quectel_BC35_G_NBIOT.Parser parser = new Quectel_BC35_G_NBIOT.Parser();
  99. var actual = parser.Deserialize(raw.ToArray()) as GenericResponse;
  100. Assert.AreEqual(true, actual != null);
  101. Assert.AreEqual(true, actual.State.HasValue);
  102. Assert.AreEqual(true, actual.State == GenericResponse.ResponseState.CME_ERROR);
  103. Assert.AreEqual(true, actual.CME_ERROR_CODE.HasValue);
  104. Assert.AreEqual(true, actual.CME_ERROR_CODE == 1);
  105. Assert.AreEqual(true, actual.StringBody == msgStrContent);
  106. }
  107. [TestMethod]
  108. public void DisplayProductIdentificationInformationCommandResponseTestMethod4()
  109. {
  110. var msgStrContent = MessageCutter.CRLF +
  111. "Quectel" + MessageCutter.CRLF +
  112. "123" + MessageCutter.CRLF +
  113. "Revision:789" + MessageCutter.CRLF +
  114. MessageCutter.CRLF +
  115. "+CME ERROR:1123123" + MessageCutter.CRLF;
  116. var raw = Encoding.UTF8.GetBytes(msgStrContent);
  117. Quectel_BC35_G_NBIOT.Parser parser = new Quectel_BC35_G_NBIOT.Parser();
  118. var actual = parser.Deserialize(raw.ToArray()) as GenericResponse;
  119. Assert.AreEqual(true, actual != null);
  120. Assert.AreEqual(true, actual.State.HasValue);
  121. Assert.AreEqual(true, actual.State == GenericResponse.ResponseState.CME_ERROR);
  122. Assert.AreEqual(true, actual.CME_ERROR_CODE.HasValue);
  123. Assert.AreEqual(true, actual.CME_ERROR_CODE == 1123123);
  124. Assert.AreEqual(true, actual.StringBody == msgStrContent);
  125. }
  126. [TestMethod]
  127. public void DisplayProductIdentificationInformationCommandResponseTestMethod5()
  128. {
  129. var msgStrContent = MessageCutter.CRLF +
  130. "Quectel" + MessageCutter.CRLF +
  131. "123" + MessageCutter.CRLF +
  132. "Revision:789" + MessageCutter.CRLF +
  133. MessageCutter.CRLF +
  134. "+CME ERROR: 1123123" + MessageCutter.CRLF;
  135. var raw = Encoding.UTF8.GetBytes(msgStrContent);
  136. Quectel_BC35_G_NBIOT.Parser parser = new Quectel_BC35_G_NBIOT.Parser();
  137. var actual = parser.Deserialize(raw.ToArray()) as GenericResponse;
  138. Assert.AreEqual(true, actual != null);
  139. Assert.AreEqual(true, actual.State.HasValue);
  140. Assert.AreEqual(true, actual.State == GenericResponse.ResponseState.CME_ERROR);
  141. Assert.AreEqual(true, actual.CME_ERROR_CODE.HasValue);
  142. Assert.AreEqual(true, actual.CME_ERROR_CODE == 1123123);
  143. Assert.AreEqual(true, actual.StringBody == msgStrContent);
  144. }
  145. [TestMethod]
  146. public void DisplayProductIdentificationInformationCommandResponseTestMethod6()
  147. {
  148. var msgStrContent = MessageCutter.CRLF +
  149. "Quectel" + MessageCutter.CRLF +
  150. "123" + MessageCutter.CRLF +
  151. "Revision:789" + MessageCutter.CRLF +
  152. MessageCutter.CRLF +
  153. "+CME ERROR:" + MessageCutter.CRLF;
  154. var raw = Encoding.UTF8.GetBytes(msgStrContent);
  155. Quectel_BC35_G_NBIOT.Parser parser = new Quectel_BC35_G_NBIOT.Parser();
  156. var actual = parser.Deserialize(raw.ToArray()) as GenericResponse;
  157. Assert.AreEqual(true, actual != null);
  158. Assert.AreEqual(true, actual.State.HasValue);
  159. Assert.AreEqual(true, actual.State == GenericResponse.ResponseState.CME_ERROR);
  160. Assert.AreEqual(true, !actual.CME_ERROR_CODE.HasValue);
  161. Assert.AreEqual(true, actual.StringBody == msgStrContent);
  162. }
  163. #endregion
  164. #region SetCommandEchoModeCommand
  165. [TestMethod]
  166. public void SetCommandEchoModeCommandTestMethod1()
  167. {
  168. var command = new SetCommandEchoModeCommand(true);
  169. Quectel_BC35_G_NBIOT.Parser parser = new Quectel_BC35_G_NBIOT.Parser();
  170. var actual = parser.Serialize(command);
  171. var expect = Encoding.UTF8.GetBytes("ATE1")
  172. .Concat(new byte[] { MessageCutter.CR, MessageCutter.LF });
  173. Assert.AreEqual(true, ValueEquals(actual, expect));
  174. }
  175. [TestMethod]
  176. public void SetCommandEchoModeCommandTestMethod2()
  177. {
  178. var command = new SetCommandEchoModeCommand(false);
  179. Quectel_BC35_G_NBIOT.Parser parser = new Quectel_BC35_G_NBIOT.Parser();
  180. var actual = parser.Serialize(command);
  181. var expect = Encoding.UTF8.GetBytes("ATE0")
  182. .Concat(new byte[] { MessageCutter.CR, MessageCutter.LF });
  183. Assert.AreEqual(true, ValueEquals(actual, expect));
  184. }
  185. [TestMethod]
  186. public void SetCommandEchoModeCommandResponseTestMethod1()
  187. {
  188. var msgStrContent = "OK" + MessageCutter.CRLF;
  189. var raw = Encoding.UTF8.GetBytes(msgStrContent);
  190. Quectel_BC35_G_NBIOT.Parser parser = new Quectel_BC35_G_NBIOT.Parser();
  191. var actual = parser.Deserialize(raw.ToArray()) as GenericResponse;
  192. Assert.AreEqual(true, actual != null);
  193. Assert.AreEqual(true, actual.State.HasValue);
  194. Assert.AreEqual(true, actual.State == GenericResponse.ResponseState.OK);
  195. Assert.AreEqual(true, actual.StringBody == msgStrContent);
  196. }
  197. [TestMethod]
  198. public void SetCommandEchoModeCommandResponseTestMethod2()
  199. {
  200. var msgStrContent = "ERROR" + MessageCutter.CRLF;
  201. var raw = Encoding.UTF8.GetBytes(msgStrContent);
  202. Quectel_BC35_G_NBIOT.Parser parser = new Quectel_BC35_G_NBIOT.Parser();
  203. var actual = parser.Deserialize(raw.ToArray()) as GenericResponse;
  204. Assert.AreEqual(true, actual != null);
  205. Assert.AreEqual(true, actual.State.HasValue);
  206. Assert.AreEqual(true, actual.State == GenericResponse.ResponseState.ERROR);
  207. Assert.AreEqual(true, actual.StringBody == msgStrContent);
  208. }
  209. #endregion
  210. }
  211. }