Ver código fonte

添加会话服务测试用例

tags/v1.0.0
SmallChi 6 anos atrás
pai
commit
b245713f28
4 arquivos alterados com 132 adições e 5 exclusões
  1. +28
    -0
      src/JT808.DotNetty.Test/JT808DefaultChannelId.cs
  2. +80
    -3
      src/JT808.DotNetty.Test/JT808SessionManagerTest.cs
  3. +22
    -0
      src/JT808.DotNetty.Test/SeedSession.cs
  4. +2
    -2
      src/JT808.DotNetty/JT808SessionManager.cs

+ 28
- 0
src/JT808.DotNetty.Test/JT808DefaultChannelId.cs Ver arquivo

@@ -0,0 +1,28 @@
using DotNetty.Transport.Channels;
using JT808.DotNetty.Metadata;
using System;
using System.Collections.Generic;
using System.Text;

namespace JT808.DotNetty.Test
{
public class JT808DefaultChannelId : IChannelId
{
private static readonly JT808AtomicCounter jT808AtomicCounter = new JT808AtomicCounter();

public string AsLongText()
{
return jT808AtomicCounter.Increment().ToString();
}

public string AsShortText()
{
return jT808AtomicCounter.Increment().ToString();
}

public int CompareTo(IChannelId other)
{
return 0;
}
}
}

+ 80
- 3
src/JT808.DotNetty.Test/JT808SessionManagerTest.cs Ver arquivo

@@ -11,18 +11,95 @@ namespace JT808.DotNetty.Test
{
JT808SessionManager jT808SessionManager = new JT808SessionManager(new LoggerFactory());

[Fact]
string TerminalPhoneNo = "123456789123";

[Fact]
public void Test1()
{
var channel = new EmbeddedChannel();
jT808SessionManager.TryAddOrUpdateSession(new Metadata.JT808Session(channel, "123456789123"));
jT808SessionManager.TryAddOrUpdateSession(new Metadata.JT808Session(channel, TerminalPhoneNo));
}

[Fact]
public void Test2()
{
var channel = new EmbeddedChannel();
jT808SessionManager.TryAddSession(new Metadata.JT808Session(channel, "123456789123"));
jT808SessionManager.TryAddSession(new Metadata.JT808Session(channel, TerminalPhoneNo));
}

[Fact]
public void Test3()
{
var channel = new EmbeddedChannel();
jT808SessionManager.TryAddSession(new Metadata.JT808Session(channel, TerminalPhoneNo));
jT808SessionManager.TryAddOrUpdateSession(new Metadata.JT808Session(channel, TerminalPhoneNo));
var sessionInfo=jT808SessionManager.GetSessionByTerminalPhoneNo(TerminalPhoneNo);
Assert.Equal(TerminalPhoneNo, sessionInfo.TerminalPhoneNo);
Assert.Equal("embedded", sessionInfo.SessionID);
}

[Fact]
public void Test4()
{
var channel = new EmbeddedChannel();
jT808SessionManager.TryAddSession(new Metadata.JT808Session(channel, TerminalPhoneNo));
jT808SessionManager.TryAddOrUpdateSession(new Metadata.JT808Session(channel, TerminalPhoneNo));
jT808SessionManager.Heartbeat(TerminalPhoneNo);
}

[Fact]
public void Test5()
{
var channel = new EmbeddedChannel();
jT808SessionManager.TryAddSession(new Metadata.JT808Session(channel, TerminalPhoneNo));
jT808SessionManager.TryAddOrUpdateSession(new Metadata.JT808Session(channel, TerminalPhoneNo));
var sessionInfo = jT808SessionManager.GetSessionByID("embedded");
Assert.Equal(TerminalPhoneNo, sessionInfo.TerminalPhoneNo);
Assert.Equal("embedded", sessionInfo.SessionID);
}


[Fact]
public void Test6()
{
var channel = new EmbeddedChannel();
jT808SessionManager.TryAddSession(new Metadata.JT808Session(channel, TerminalPhoneNo));
jT808SessionManager.TryAddOrUpdateSession(new Metadata.JT808Session(channel, TerminalPhoneNo));
var sessionInfo = jT808SessionManager.RemoveSessionByID("embedded");
Assert.Equal(TerminalPhoneNo, sessionInfo.TerminalPhoneNo);
Assert.Equal("embedded", sessionInfo.SessionID);
}


[Fact]
public void Test7()
{
var channel = new EmbeddedChannel();
jT808SessionManager.TryAddSession(new Metadata.JT808Session(channel, TerminalPhoneNo));
jT808SessionManager.TryAddOrUpdateSession(new Metadata.JT808Session(channel, TerminalPhoneNo));
var sessionInfo = jT808SessionManager.RemoveSessionByTerminalPhoneNo(TerminalPhoneNo);
Assert.Equal(TerminalPhoneNo, sessionInfo.TerminalPhoneNo);
Assert.Equal("embedded", sessionInfo.SessionID);
}

[Fact]
public void Test8()
{
var channel = new EmbeddedChannel();
jT808SessionManager.TryAddSession(new Metadata.JT808Session(channel, TerminalPhoneNo));
jT808SessionManager.TryAddOrUpdateSession(new Metadata.JT808Session(channel, TerminalPhoneNo));
var realSessionInfos = jT808SessionManager.GetRealAll();
var relevanceSessionInfos = jT808SessionManager.GetRelevanceAll();
}

[Fact]
public void Test9()
{
var channel = new EmbeddedChannel();
jT808SessionManager.TryAddSession(new Metadata.JT808Session(channel, TerminalPhoneNo));
jT808SessionManager.TryAddOrUpdateSession(new Metadata.JT808Session(channel, TerminalPhoneNo));
var realSessionCount = jT808SessionManager.RealSessionCount;
var relevanceSessionCount = jT808SessionManager.RealSessionCount;
}
}
}

+ 22
- 0
src/JT808.DotNetty.Test/SeedSession.cs Ver arquivo

@@ -0,0 +1,22 @@
using DotNetty.Transport.Channels.Embedded;
using System;
using System.Collections.Generic;
using System.Text;
using Xunit;

namespace JT808.DotNetty.Test
{
public class SeedSession
{
public List<EmbeddedChannel> embeddedChannels = new List<EmbeddedChannel>();

[Fact]
public void Init()
{
for(var i = 0; i < 10; i++)
{
embeddedChannels.Add(new EmbeddedChannel(new JT808DefaultChannelId()));
}
}
}
}

+ 2
- 2
src/JT808.DotNetty/JT808SessionManager.cs Ver arquivo

@@ -189,9 +189,9 @@ namespace JT808.DotNetty
return SessionIdDict.Select(s=>s.Value);
}

public List<JT808Session> GetRelevanceAll()
public IEnumerable<JT808Session> GetRelevanceAll()
{
return SessionIdDict.Join(TerminalPhoneNo_SessionId_Dict, m => m.Key, s => s.Value, (m, s) => m.Value).ToList();
return SessionIdDict.Join(TerminalPhoneNo_SessionId_Dict, m => m.Key, s => s.Value, (m, s) => m.Value);
}
}


Carregando…
Cancelar
Salvar