using JT808.DotNetty.Dtos; using JT808.Protocol; using JT808.Protocol.Extensions; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Text; using System.Threading; using Xunit; namespace JT808.DotNetty.Test { public class JT808WebAPIServiceTest: TestBase { private IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 6565); public JT808SimpleTcpClient SimpleTcpClient; private HttpClient httpClient; private const string Url = "http://127.0.0.1:828/jt808api"; private const string sessionRoutePrefix = "Session"; private const int length = 10; public JT808WebAPIServiceTest() { SimpleTcpClient = new JT808SimpleTcpClient(endPoint); httpClient = new HttpClient(); for (var i = 1; i <= length; i++) { // 心跳会话包 JT808Package jT808Package1 = JT808.Protocol.Enums.JT808MsgId.终端心跳.Create($"{i.ToString()}"); SimpleTcpClient.WriteAsync(JT808Serializer.Serialize(jT808Package1)); } Thread.Sleep(300); } [Fact] public void GetAllTest() { var result = httpClient.GetAsync($"{Url}/{sessionRoutePrefix}/GetAll").Result; string content = result.Content.ReadAsStringAsync().Result; JT808ResultDto> jt808Result = JsonConvert.DeserializeObject>>(content); Assert.Equal(200, jt808Result.Code); Assert.Equal(10,jt808Result.Data.Count()); } [Fact] public void RemoveByChannelIdTest() { // 心跳会话包 JT808Package jT808Package1 = JT808.Protocol.Enums.JT808MsgId.终端心跳.Create("99"); SimpleTcpClient.WriteAsync(JT808Serializer.Serialize(jT808Package1)); var result4 = httpClient.PostAsync($"{Url}/{sessionRoutePrefix}/RemoveByChannelId", new StringContent("99")).Result; string content4 = result4.Content.ReadAsStringAsync().Result; JT808ResultDto jt808Result4= JsonConvert.DeserializeObject>(content4); Assert.Equal(200, jt808Result4.Code); Assert.True(jt808Result4.Data); } [Fact] public void RemoveByTerminalPhoneNoTest() { // 心跳会话包 JT808Package jT808Package1 = JT808.Protocol.Enums.JT808MsgId.终端心跳.Create("999"); SimpleTcpClient.WriteAsync(JT808Serializer.Serialize(jT808Package1)); var result4 = httpClient.PostAsync($"{Url}/{sessionRoutePrefix}/RemoveByTerminalPhoneNo", new StringContent("999")).Result; string content4 = result4.Content.ReadAsStringAsync().Result; JT808ResultDto jt808Result4 = JsonConvert.DeserializeObject>(content4); Assert.Equal(200, jt808Result4.Code); Assert.True(jt808Result4.Data); } public override void Dispose() { base.Dispose(); SimpleTcpClient.Down(); } } }