mirror of
https://github.com/dotnet/MQTTnet.git
synced 2026-10-25 23:53:07 +08:00
Refactor message processing and async/await usage.
This commit is contained in:
@@ -1,30 +0,0 @@
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using MQTTnet.Serializer;
|
||||
|
||||
namespace MQTTnet.Core.Tests
|
||||
{
|
||||
[TestClass]
|
||||
public class ByteReaderTests
|
||||
{
|
||||
[TestMethod]
|
||||
public void ByteReader_ReadToEnd()
|
||||
{
|
||||
var reader = new ByteReader(85);
|
||||
Assert.IsTrue(reader.Read());
|
||||
Assert.IsFalse(reader.Read());
|
||||
Assert.IsTrue(reader.Read());
|
||||
Assert.IsFalse(reader.Read());
|
||||
Assert.IsTrue(reader.Read());
|
||||
Assert.IsFalse(reader.Read());
|
||||
Assert.IsTrue(reader.Read());
|
||||
Assert.IsFalse(reader.Read());
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void ByteReader_ReadPartial()
|
||||
{
|
||||
var reader = new ByteReader(15);
|
||||
Assert.AreEqual(3, reader.Read(2));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,51 +0,0 @@
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using MQTTnet.Serializer;
|
||||
|
||||
namespace MQTTnet.Core.Tests
|
||||
{
|
||||
[TestClass]
|
||||
public class ByteWriterTests
|
||||
{
|
||||
[TestMethod]
|
||||
public void ByteWriter_WriteMultipleAll()
|
||||
{
|
||||
var b = new ByteWriter();
|
||||
Assert.AreEqual(0, b.Value);
|
||||
b.Write(3, 2);
|
||||
Assert.AreEqual(3, b.Value);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void ByteWriter_WriteMultiplePartial()
|
||||
{
|
||||
var b = new ByteWriter();
|
||||
Assert.AreEqual(0, b.Value);
|
||||
b.Write(255, 2);
|
||||
Assert.AreEqual(3, b.Value);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void ByteWriter_WriteTo0xFF()
|
||||
{
|
||||
var b = new ByteWriter();
|
||||
|
||||
Assert.AreEqual(0, b.Value);
|
||||
b.Write(true);
|
||||
Assert.AreEqual(1, b.Value);
|
||||
b.Write(true);
|
||||
Assert.AreEqual(3, b.Value);
|
||||
b.Write(true);
|
||||
Assert.AreEqual(7, b.Value);
|
||||
b.Write(true);
|
||||
Assert.AreEqual(15, b.Value);
|
||||
b.Write(true);
|
||||
Assert.AreEqual(31, b.Value);
|
||||
b.Write(true);
|
||||
Assert.AreEqual(63, b.Value);
|
||||
b.Write(true);
|
||||
Assert.AreEqual(127, b.Value);
|
||||
b.Write(true);
|
||||
Assert.AreEqual(255, b.Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -14,20 +14,20 @@ namespace MQTTnet.Core.Tests
|
||||
[TestMethod]
|
||||
public async Task TimeoutAfter()
|
||||
{
|
||||
await MQTTnet.Internal.TaskExtensions.TimeoutAfter(ct => Task.Delay(TimeSpan.FromMilliseconds(500), ct), TimeSpan.FromMilliseconds(100), CancellationToken.None);
|
||||
await MQTTnet.Internal.TaskExtensions.TimeoutAfterAsync(ct => Task.Delay(TimeSpan.FromMilliseconds(500), ct), TimeSpan.FromMilliseconds(100), CancellationToken.None);
|
||||
}
|
||||
|
||||
[ExpectedException(typeof(MqttCommunicationTimedOutException))]
|
||||
[TestMethod]
|
||||
public async Task TimeoutAfterWithResult()
|
||||
{
|
||||
await MQTTnet.Internal.TaskExtensions.TimeoutAfter(ct => Task.Delay(TimeSpan.FromMilliseconds(500), ct).ContinueWith(t => 5, ct), TimeSpan.FromMilliseconds(100), CancellationToken.None);
|
||||
await MQTTnet.Internal.TaskExtensions.TimeoutAfterAsync(ct => Task.Delay(TimeSpan.FromMilliseconds(500), ct).ContinueWith(t => 5, ct), TimeSpan.FromMilliseconds(100), CancellationToken.None);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public async Task TimeoutAfterCompleteInTime()
|
||||
{
|
||||
var result = await MQTTnet.Internal.TaskExtensions.TimeoutAfter(ct => Task.Delay(TimeSpan.FromMilliseconds(100), ct).ContinueWith(t => 5, ct), TimeSpan.FromMilliseconds(500), CancellationToken.None);
|
||||
var result = await MQTTnet.Internal.TaskExtensions.TimeoutAfterAsync(ct => Task.Delay(TimeSpan.FromMilliseconds(100), ct).ContinueWith(t => 5, ct), TimeSpan.FromMilliseconds(500), CancellationToken.None);
|
||||
Assert.AreEqual(5, result);
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ namespace MQTTnet.Core.Tests
|
||||
{
|
||||
try
|
||||
{
|
||||
await MQTTnet.Internal.TaskExtensions.TimeoutAfter(ct => Task.Run(() =>
|
||||
await MQTTnet.Internal.TaskExtensions.TimeoutAfterAsync(ct => Task.Run(() =>
|
||||
{
|
||||
var iis = new int[0];
|
||||
iis[1] = 0;
|
||||
@@ -55,7 +55,7 @@ namespace MQTTnet.Core.Tests
|
||||
{
|
||||
try
|
||||
{
|
||||
await MQTTnet.Internal.TaskExtensions.TimeoutAfter(ct => Task.Run(() =>
|
||||
await MQTTnet.Internal.TaskExtensions.TimeoutAfterAsync(ct => Task.Run(() =>
|
||||
{
|
||||
var iis = new int[0];
|
||||
iis[1] = 0;
|
||||
@@ -76,7 +76,7 @@ namespace MQTTnet.Core.Tests
|
||||
var tasks = Enumerable.Range(0, 100000)
|
||||
.Select(i =>
|
||||
{
|
||||
return MQTTnet.Internal.TaskExtensions.TimeoutAfter(ct => Task.Delay(TimeSpan.FromMilliseconds(1), ct), TimeSpan.FromMinutes(1), CancellationToken.None);
|
||||
return MQTTnet.Internal.TaskExtensions.TimeoutAfterAsync(ct => Task.Delay(TimeSpan.FromMilliseconds(1), ct), TimeSpan.FromMinutes(1), CancellationToken.None);
|
||||
});
|
||||
|
||||
await Task.WhenAll(tasks);
|
||||
|
||||
@@ -11,7 +11,7 @@ namespace MQTTnet.Core.Tests
|
||||
public class MqttPacketReaderTests
|
||||
{
|
||||
[TestMethod]
|
||||
[ExpectedException(typeof(MqttCommunicationException))]
|
||||
[ExpectedException(typeof(MqttCommunicationClosedGracefullyException))]
|
||||
public void MqttPacketReader_EmptyStream()
|
||||
{
|
||||
MqttPacketReader.ReadFixedHeaderAsync(new TestMqttChannel(new MemoryStream()), CancellationToken.None).GetAwaiter().GetResult();
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using MQTTnet.Adapter;
|
||||
@@ -36,7 +35,7 @@ namespace MQTTnet.Core.Tests
|
||||
return Task.FromResult(0);
|
||||
}
|
||||
|
||||
public Task SendPacketAsync(TimeSpan timeout, MqttBasePacket packet, CancellationToken cancellationToken)
|
||||
public Task SendPacketAsync(MqttBasePacket packet, CancellationToken cancellationToken)
|
||||
{
|
||||
ThrowIfPartnerIsNull();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user