53 líneas
2.5 KiB

  1. using System.Text;
  2. using JTNE.Protocol.Enums;
  3. using JTNE.Protocol.Extensions;
  4. using JTNE.Protocol.MessageBody;
  5. using Newtonsoft.Json;
  6. using Xunit;
  7. using Xunit.Abstractions;
  8. namespace JTNE.Protocol.Test
  9. {
  10. public class JTNEPackageParseTests{
  11. private readonly ITestOutputHelper output;
  12. public JTNEPackageParseTests (ITestOutputHelper outputHelper) {
  13. this.output = outputHelper;
  14. }
  15. const string data="232302FE303030303030303030303032303037343101009C1407160B210801FF04010000FFFFFFFFE5F6280732FFFE03D1FFFF020101FFFF4E204E204BFFFFFFFF03FFFFFFFFFFFF3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0401FFFFFFFFFFFFFFFFFFFFFF05FFFFFFFFFFFFFFFFFF06FFFFFFFFFFFFFFFF4800482502450700000000000000000049";
  16. [Fact]
  17. public void TestGuangtai () {
  18. JTNEGlobalConfigs.Instance.Encoding = Encoding.GetEncoding ("GB18030");
  19. var data = "23 23 05 FE 30 30 30 30 30 30 30 30 30 30 30 30 30 32 31 31 31 01 00 29 14 07 14 13 26 22 00 01 CD FE BA A3 B9 E3 CC A9 BF D5 B8 DB CD FE BA A3 B9 E3 CC A9 BF D5 B8 DB B3 B5 C1 AA CD F2 01 02 01 A1".ToHexBytes ();
  20. var package = JTNESerializer.Deserialize (data);
  21. Assert.Equal (JTNEAskId.CMD, package.AskId);
  22. Assert.Equal (JTNEMsgId.PlatformLogin, package.MsgId);
  23. Assert.Equal (41, package.DataUnitLength);
  24. Assert.NotNull (package.Bodies);
  25. Assert.IsType<JTNE_0x05> (package.Bodies);
  26. output.WriteLine (Newtonsoft.Json.JsonConvert.SerializeObject (package.Bodies, Formatting.Indented));
  27. var loginbody = (JTNE_0x05) package.Bodies;
  28. Assert.Equal ("威海广泰空港", loginbody.PlatformUserName);
  29. Assert.Equal (1, loginbody.LoginNum);
  30. Assert.Equal (JTNEEncryptMethod.None, loginbody.EncryptMethod);
  31. }
  32. [Fact]
  33. public void TestGenerateReply(){
  34. JTNEGlobalConfigs.Instance.Encoding = Encoding.GetEncoding ("GB18030");
  35. var data = "23 23 05 FE 30 30 30 30 30 30 30 30 30 30 30 30 30 32 31 31 31 01 00 29 14 07 14 13 26 22 00 01 CD FE BA A3 B9 E3 CC A9 BF D5 B8 DB CD FE BA A3 B9 E3 CC A9 BF D5 B8 DB B3 B5 C1 AA CD F2 01 02 01 A1".ToHexBytes ();
  36. var package = JTNESerializer.Deserialize (data);
  37. var reply = package.GenerateReply(JTNEAskId.Success);
  38. Assert.NotNull(reply);
  39. var bytes = JTNESerializer.Serialize(reply);
  40. output.WriteLine(bytes.ToHexString());
  41. }
  42. }
  43. }