You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
3.5 KiB

  1. using JTNE.Protocol.MessageBody;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Text;
  5. using Xunit;
  6. using JTNE.Protocol.Extensions;
  7. namespace JTNE.Protocol.Test.MessageBody
  8. {
  9. public class JTNE_0x02_0x08Test
  10. {
  11. [Fact]
  12. public void Test1()
  13. {
  14. JTNE_0x02_0x08 jTNE_0X02_0X08 = new JTNE_0x02_0x08();
  15. jTNE_0X02_0X08.BatteryAssemblies = new List<Metadata.BatteryAssembly>();
  16. Metadata.BatteryAssembly batteryAssembly1 = new Metadata.BatteryAssembly();
  17. batteryAssembly1.BatteryAssemblyCurrent = 123;
  18. batteryAssembly1.BatteryAssemblyNo = 0x01;
  19. batteryAssembly1.BatteryAssemblyVoltage = 0x02;
  20. batteryAssembly1.SingleBatteryCount = 55;
  21. batteryAssembly1.ThisSingleBatteryBeginCount = 0x02;
  22. batteryAssembly1.ThisSingleBatteryBeginNo = 111;
  23. batteryAssembly1.SingleBatteryVoltages = new List<ushort> {
  24. 111,222,333
  25. };
  26. Metadata.BatteryAssembly batteryAssembly2 = new Metadata.BatteryAssembly();
  27. batteryAssembly2.BatteryAssemblyCurrent = 1234;
  28. batteryAssembly2.BatteryAssemblyNo = 0x03;
  29. batteryAssembly2.BatteryAssemblyVoltage = 0x05;
  30. batteryAssembly2.SingleBatteryCount = 66;
  31. batteryAssembly2.ThisSingleBatteryBeginCount = 0x02;
  32. batteryAssembly2.ThisSingleBatteryBeginNo = 222;
  33. batteryAssembly2.SingleBatteryVoltages = new List<ushort> {
  34. 444,555,666
  35. };
  36. jTNE_0X02_0X08.BatteryAssemblies.Add(batteryAssembly1);
  37. jTNE_0X02_0X08.BatteryAssemblies.Add(batteryAssembly2);
  38. var hex = JTNESerializer.Serialize(jTNE_0X02_0X08).ToHexString();
  39. Assert.Equal("0802010002007B0037006F03006F00DE014D03000504D2004200DE0301BC022B029A", hex);
  40. }
  41. [Fact]
  42. public void Test2()
  43. {
  44. var data = "0802010002007B0037006F03006F00DE014D03000504D2004200DE0301BC022B029A".ToHexBytes();
  45. JTNE_0x02_0x08 jTNE_0X02_0X08 = JTNESerializer.Deserialize<JTNE_0x02_0x08>(data);
  46. Assert.Equal(JTNE_0x02_Body.JTNE_0x02_0x08, jTNE_0X02_0X08.TypeCode);
  47. Assert.Equal(2, jTNE_0X02_0X08.BatteryAssemblyCount);
  48. Metadata.BatteryAssembly batteryAssembly1 = jTNE_0X02_0X08.BatteryAssemblies[0];
  49. Assert.Equal(123, batteryAssembly1.BatteryAssemblyCurrent);
  50. Assert.Equal(0x01, batteryAssembly1.BatteryAssemblyNo);
  51. Assert.Equal(0x02, batteryAssembly1.BatteryAssemblyVoltage);
  52. Assert.Equal(55, batteryAssembly1.SingleBatteryCount);
  53. Assert.Equal(111, batteryAssembly1.ThisSingleBatteryBeginNo);
  54. Assert.Equal(3, batteryAssembly1.ThisSingleBatteryBeginCount);
  55. Assert.Equal(new List<ushort> {
  56. 111,222,333
  57. }, batteryAssembly1.SingleBatteryVoltages);
  58. Metadata.BatteryAssembly batteryAssembly2 = jTNE_0X02_0X08.BatteryAssemblies[1];
  59. Assert.Equal(1234, batteryAssembly2.BatteryAssemblyCurrent);
  60. Assert.Equal(0x03, batteryAssembly2.BatteryAssemblyNo);
  61. Assert.Equal(0x05, batteryAssembly2.BatteryAssemblyVoltage);
  62. Assert.Equal(66, batteryAssembly2.SingleBatteryCount);
  63. Assert.Equal(222, batteryAssembly2.ThisSingleBatteryBeginNo);
  64. Assert.Equal(3, batteryAssembly2.ThisSingleBatteryBeginCount);
  65. Assert.Equal(new List<ushort> {
  66. 444,555,666
  67. }, batteryAssembly2.SingleBatteryVoltages);
  68. }
  69. }
  70. }