using JT808.Protocol.Extensions.JT1078.MessageBody; using JT808.Protocol.Interfaces; using Microsoft.Extensions.DependencyInjection; using System; using System.Collections.Generic; using System.Text; using Xunit; using Microsoft.Extensions.Logging; using Newtonsoft.Json; namespace JT808.Protocol.Extensions.JT1078.Test { public class JT808_0x9301Test { JT808Serializer JT808Serializer; public JT808_0x9301Test() { IServiceCollection serviceDescriptors1 = new ServiceCollection(); serviceDescriptors1 .AddJT808Configure() .AddJT1078Configure(); var ServiceProvider1 = serviceDescriptors1.BuildServiceProvider(); var defaultConfig = ServiceProvider1.GetRequiredService(); JT808Serializer = defaultConfig.GetSerializer(); Newtonsoft.Json.JsonConvert.DefaultSettings = new Func(() => { //日期类型默认格式化处理 return new Newtonsoft.Json.JsonSerializerSettings { DateFormatHandling = Newtonsoft.Json.DateFormatHandling.MicrosoftDateFormat, DateFormatString = "yyyy-MM-dd HH:mm:ss" }; }); } [Fact] public void Test1() { JT808_0x9301 jT808_0x9301 = new JT808_0x9301() { LogicChannelNo=1, Speed=2, Direction=3 }; var str = Newtonsoft.Json.JsonConvert.SerializeObject(jT808_0x9301); var hex = JT808Serializer.Serialize(jT808_0x9301).ToHexString(); Assert.Equal("010302", hex); } [Fact] public void Test2() { var str = "{\"LogicChannelNo\":1,\"Direction\":3,\"Speed\":2,\"SkipSerialization\":false}"; var jT808_0x9301 = JT808Serializer.Deserialize("010302".ToHexBytes()); Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(jT808_0x9301), str); } } }