選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 

91 行
3.2 KiB

  1. using JT808.DotNetty.Dtos;
  2. using JT808.Protocol;
  3. using JT808.Protocol.Extensions;
  4. using Newtonsoft.Json;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Net;
  9. using System.Net.Http;
  10. using System.Text;
  11. using System.Threading;
  12. using Xunit;
  13. namespace JT808.DotNetty.Test
  14. {
  15. public class JT808WebAPIServiceTest: TestBase
  16. {
  17. private IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 6565);
  18. public JT808SimpleTcpClient SimpleTcpClient;
  19. private HttpClient httpClient;
  20. private const string Url = "http://127.0.0.1:828/jt808api";
  21. private const string sessionRoutePrefix = "Session";
  22. private const int length = 10;
  23. public JT808WebAPIServiceTest()
  24. {
  25. SimpleTcpClient = new JT808SimpleTcpClient(endPoint);
  26. httpClient = new HttpClient();
  27. for (var i = 1; i <= length; i++)
  28. {
  29. // 心跳会话包
  30. JT808Package jT808Package1 = JT808.Protocol.Enums.JT808MsgId.终端心跳.Create($"{i.ToString()}");
  31. SimpleTcpClient.WriteAsync(JT808Serializer.Serialize(jT808Package1));
  32. }
  33. Thread.Sleep(300);
  34. }
  35. [Fact]
  36. public void GetAllTest()
  37. {
  38. var result = httpClient.GetAsync($"{Url}/{sessionRoutePrefix}/GetAll").Result;
  39. string content = result.Content.ReadAsStringAsync().Result;
  40. JT808ResultDto<IEnumerable<JT808SessionInfoDto>> jt808Result = JsonConvert.DeserializeObject<JT808ResultDto<IEnumerable<JT808SessionInfoDto>>>(content);
  41. Assert.Equal(200, jt808Result.Code);
  42. Assert.Equal(10,jt808Result.Data.Count());
  43. }
  44. [Fact]
  45. public void RemoveByChannelIdTest()
  46. {
  47. // 心跳会话包
  48. JT808Package jT808Package1 = JT808.Protocol.Enums.JT808MsgId.终端心跳.Create("99");
  49. SimpleTcpClient.WriteAsync(JT808Serializer.Serialize(jT808Package1));
  50. var result4 = httpClient.PostAsync($"{Url}/{sessionRoutePrefix}/RemoveByChannelId", new StringContent("99")).Result;
  51. string content4 = result4.Content.ReadAsStringAsync().Result;
  52. JT808ResultDto<bool> jt808Result4= JsonConvert.DeserializeObject<JT808ResultDto<bool>>(content4);
  53. Assert.Equal(200, jt808Result4.Code);
  54. Assert.True(jt808Result4.Data);
  55. }
  56. [Fact]
  57. public void RemoveByTerminalPhoneNoTest()
  58. {
  59. // 心跳会话包
  60. JT808Package jT808Package1 = JT808.Protocol.Enums.JT808MsgId.终端心跳.Create("999");
  61. SimpleTcpClient.WriteAsync(JT808Serializer.Serialize(jT808Package1));
  62. var result4 = httpClient.PostAsync($"{Url}/{sessionRoutePrefix}/RemoveByTerminalPhoneNo", new StringContent("999")).Result;
  63. string content4 = result4.Content.ReadAsStringAsync().Result;
  64. JT808ResultDto<bool> jt808Result4 = JsonConvert.DeserializeObject<JT808ResultDto<bool>>(content4);
  65. Assert.Equal(200, jt808Result4.Code);
  66. Assert.True(jt808Result4.Data);
  67. }
  68. public override void Dispose()
  69. {
  70. base.Dispose();
  71. SimpleTcpClient.Down();
  72. }
  73. }
  74. }