您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 

84 行
3.2 KiB

  1. using DotNetty.Transport.Channels.Embedded;
  2. using Microsoft.VisualStudio.TestTools.UnitTesting;
  3. using System.Threading;
  4. namespace JT808.DotNetty.Core.Test
  5. {
  6. [TestClass]
  7. public class JT808SessionManagerTest: SeedTcpSession
  8. {
  9. [TestMethod]
  10. public void Test1()
  11. {
  12. var no = "test150";
  13. var channel = new EmbeddedChannel(new JT808DefaultChannelId());
  14. jT80TcpSessionManager.TryAdd(new Metadata.JT808TcpSession(channel, no));
  15. Thread.Sleep(1000);
  16. jT80TcpSessionManager.Heartbeat(no);
  17. }
  18. [TestMethod]
  19. public void Test2()
  20. {
  21. var no = "test151";
  22. var channel = new EmbeddedChannel(new JT808DefaultChannelId());
  23. jT80TcpSessionManager.TryAdd(new Metadata.JT808TcpSession(channel, no));
  24. var sessionInfo = jT80TcpSessionManager.RemoveSession(no);
  25. Assert.AreEqual(no, sessionInfo.TerminalPhoneNo);
  26. }
  27. [TestMethod]
  28. public void Test3()
  29. {
  30. var realSessionInfos = jT80TcpSessionManager.GetAll();
  31. }
  32. [TestMethod]
  33. public void Test4()
  34. {
  35. var realSessionCount = jT80TcpSessionManager.SessionCount;
  36. }
  37. [TestMethod]
  38. public void Test5()
  39. {
  40. //转发过来的数据 1:n 一个通道对应多个设备
  41. var no = "test1";
  42. var no1 = "test2";
  43. var no2 = "test3";
  44. var no3 = "test4";
  45. var no4 = "test5";
  46. var channel = new EmbeddedChannel(new JT808DefaultChannelId());
  47. jT80TcpSessionManager.TryAdd(new Metadata.JT808TcpSession(channel, no));
  48. jT80TcpSessionManager.TryAdd(new Metadata.JT808TcpSession(channel, no1));
  49. jT80TcpSessionManager.TryAdd(new Metadata.JT808TcpSession(channel, no2));
  50. jT80TcpSessionManager.TryAdd(new Metadata.JT808TcpSession(channel, no3));
  51. jT80TcpSessionManager.TryAdd(new Metadata.JT808TcpSession(channel, no4));
  52. var removeSession = jT80TcpSessionManager.RemoveSession(no);
  53. Assert.AreEqual(no, removeSession.TerminalPhoneNo);
  54. Assert.AreEqual(channel, removeSession.Channel);
  55. Assert.AreEqual(channel.Id, removeSession.Channel.Id);
  56. }
  57. [TestMethod]
  58. public void Test6()
  59. {
  60. //转发过来的数据 1:n 一个通道对应多个设备
  61. var no = "test61";
  62. var no1 = "test62";
  63. var no2 = "test63";
  64. var no3 = "test64";
  65. var no4 = "test65";
  66. var channel1 = new EmbeddedChannel(new JT808DefaultChannelId());
  67. var channel2 = new EmbeddedChannel(new JT808DefaultChannelId());
  68. jT80TcpSessionManager.TryAdd(new Metadata.JT808TcpSession(channel1, no));
  69. jT80TcpSessionManager.TryAdd(new Metadata.JT808TcpSession(channel1, no1));
  70. jT80TcpSessionManager.TryAdd(new Metadata.JT808TcpSession(channel1, no2));
  71. jT80TcpSessionManager.TryAdd(new Metadata.JT808TcpSession(channel2, no3));
  72. jT80TcpSessionManager.TryAdd(new Metadata.JT808TcpSession(channel2, no4));
  73. jT80TcpSessionManager.RemoveSessionByChannel(channel1);
  74. }
  75. }
  76. }