|
- using DotNetty.Transport.Channels.Embedded;
- using JT808.DotNetty.Core.Impls;
- using System.Threading;
- using Xunit;
-
- namespace JT808.DotNetty.Core.Test
- {
- public class JT808SessionManagerTest: SeedTcpSession
- {
- [Fact]
- public void AddTest()
- {
- var no = "test150";
- var channel = new EmbeddedChannel(new JT808DefaultChannelId());
- jT80TcpSessionManager.TryAdd(no,channel);
- jT80TcpSessionManager.Heartbeat(no);
- Assert.NotNull(jT80TcpSessionManager.GetTcpSessionByTerminalPhoneNo(no));
- }
-
- [Fact]
- public void RemoveTest()
- {
- var no = "test151";
- var channel = new EmbeddedChannel(new JT808DefaultChannelId());
- jT80TcpSessionManager.TryAdd(no, channel);
- var sessionInfo = jT80TcpSessionManager.RemoveSession(no);
- Assert.Equal(no, sessionInfo.TerminalPhoneNo);
- }
-
- [Fact]
- public void OneChannelToManyDeviceTest1()
- {
- //转发过来的数据 1:n 一个通道对应多个设备
- var no = "test1";
- var no1 = "test2";
- var no2 = "test3";
- var no3 = "test4";
- var no4 = "test5";
- var channel = new EmbeddedChannel(new JT808DefaultChannelId());
- jT80TcpSessionManager.TryAdd(no,channel);
- jT80TcpSessionManager.TryAdd(no1,channel);
- jT80TcpSessionManager.TryAdd(no2,channel);
- jT80TcpSessionManager.TryAdd(no3,channel);
- jT80TcpSessionManager.TryAdd(no4,channel);
- var removeSession = jT80TcpSessionManager.RemoveSession(no);
- Assert.Equal(no, removeSession.TerminalPhoneNo);
- Assert.Equal(channel, removeSession.Channel);
- Assert.Equal(1,channel.Id.CompareTo(removeSession.Channel.Id));
- }
-
-
- [Fact]
- public void OneChannelToManyDeviceTest2()
- {
- //转发过来的数据 1:n 一个通道对应多个设备
- var no = "test61";
- var no1 = "test62";
- var no2 = "test63";
- var no3 = "test64";
- var no4 = "test65";
- var channel1 = new EmbeddedChannel(new JT808DefaultChannelId());
- var channel2 = new EmbeddedChannel(new JT808DefaultChannelId());
- jT80TcpSessionManager.TryAdd(no,channel1);
- jT80TcpSessionManager.TryAdd(no1,channel1);
- jT80TcpSessionManager.TryAdd(no2,channel1);
- jT80TcpSessionManager.TryAdd(no3,channel2);
- jT80TcpSessionManager.TryAdd(no4,channel2);
- jT80TcpSessionManager.RemoveSessionByChannel(channel1);
- Assert.Null(jT80TcpSessionManager.GetTcpSessionByTerminalPhoneNo(no));
- Assert.Null(jT80TcpSessionManager.GetTcpSessionByTerminalPhoneNo(no1));
- Assert.Null(jT80TcpSessionManager.GetTcpSessionByTerminalPhoneNo(no2));
- }
- }
- }
|