Add support for V3.1.0; Performance improvements

This commit is contained in:
Christian Kratky
2017-08-13 19:46:32 +02:00
parent 59b0b79a32
commit 598ed66a3b
27 changed files with 200 additions and 89 deletions
@@ -86,7 +86,7 @@
<ItemGroup>
<Compile Include="ByteReaderTests.cs" />
<Compile Include="ByteWriterTests.cs" />
<Compile Include="DefaultMqttV311PacketSerializerTests.cs" />
<Compile Include="MqttPacketSerializerTests.cs" />
<Compile Include="MqttServerTests.cs" />
<Compile Include="MqttSubscriptionsManagerTests.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
@@ -12,8 +12,23 @@ using MQTTnet.Core.Serializer;
namespace MQTTnet.Core.Tests
{
[TestClass]
public class DefaultMqttV311PacketSerializerTests
public class MqttPacketSerializerTests
{
[TestMethod]
public void SerializeV310_MqttConnectPacket()
{
var p = new MqttConnectPacket
{
ClientId = "XYZ",
Password = "PASS",
Username = "USER",
KeepAlivePeriod = 123,
CleanSession = true
};
SerializeAndCompare(p, "EB0ABE1RSXNkcAPCAHsAA1hZWgAEVVNFUgAEUEFTUw==", MqttProtocolVersion.V310);
}
[TestMethod]
public void SerializeV311_MqttConnectPacket()
{
@@ -96,6 +111,17 @@ namespace MQTTnet.Core.Tests
SerializeAndCompare(p, "IAIBBQ==");
}
[TestMethod]
public void SerializeV310_MqttConnAckPacket()
{
var p = new MqttConnAckPacket
{
ConnectReturnCode = MqttConnectReturnCode.ConnectionAccepted
};
SerializeAndCompare(p, "IAIAAA==", MqttProtocolVersion.V310);
}
[TestMethod]
public void DeserializeV311_MqttConnAckPacket()
{
@@ -403,9 +429,9 @@ namespace MQTTnet.Core.Tests
}
}
private void SerializeAndCompare(MqttBasePacket packet, string expectedBase64Value)
private void SerializeAndCompare(MqttBasePacket packet, string expectedBase64Value, MqttProtocolVersion protocolVersion = MqttProtocolVersion.V311)
{
var serializer = new MqttV311PacketSerializer();
var serializer = new MqttPacketSerializer { ProtocolVersion = protocolVersion };
var channel = new TestChannel();
serializer.SerializeAsync(packet, channel).Wait();
var buffer = channel.ToArray();
@@ -415,7 +441,7 @@ namespace MQTTnet.Core.Tests
private void DeserializeAndCompare(MqttBasePacket packet, string expectedBase64Value)
{
var serializer = new MqttV311PacketSerializer();
var serializer = new MqttPacketSerializer();
var channel1 = new TestChannel();
serializer.SerializeAsync(packet, channel1).Wait();
@@ -4,6 +4,7 @@ using System.Threading.Tasks;
using MQTTnet.Core.Adapter;
using MQTTnet.Core.Client;
using MQTTnet.Core.Packets;
using MQTTnet.Core.Serializer;
namespace MQTTnet.Core.Tests
{
@@ -13,6 +14,8 @@ namespace MQTTnet.Core.Tests
public TestMqttCommunicationAdapter Partner { get; set; }
public IMqttPacketSerializer PacketSerializer { get; } = new MqttPacketSerializer();
public async Task ConnectAsync(MqttClientOptions options, TimeSpan timeout)
{
await Task.FromResult(0);