Added WebSocket timeout, Test event timeout
This commit is contained in:
@@ -9,7 +9,8 @@ namespace Discord.Net.Tests
|
|||||||
[TestClass]
|
[TestClass]
|
||||||
public class Tests
|
public class Tests
|
||||||
{
|
{
|
||||||
private DiscordClient _bot1, _bot2;
|
private const int EventTimeout = 5000; //Max time in milliseconds to wait for an event response from our test actions
|
||||||
|
private DiscordClient _bot1, _bot2;
|
||||||
private Server _testServer;
|
private Server _testServer;
|
||||||
private Channel _testServerChannel;
|
private Channel _testServerChannel;
|
||||||
private Random _random;
|
private Random _random;
|
||||||
@@ -29,6 +30,7 @@ namespace Discord.Net.Tests
|
|||||||
Task.WaitAll(_bot1.Servers.Select(x => _bot1.LeaveServer(x)).ToArray());
|
Task.WaitAll(_bot1.Servers.Select(x => _bot1.LeaveServer(x)).ToArray());
|
||||||
Task.WaitAll(_bot2.Servers.Select(x => _bot2.LeaveServer(x)).ToArray());
|
Task.WaitAll(_bot2.Servers.Select(x => _bot2.LeaveServer(x)).ToArray());
|
||||||
|
|
||||||
|
//Create new server and invite other bot to it
|
||||||
_testServer = _bot1.CreateServer("Discord.Net Testbed", Regions.US_East).Result;
|
_testServer = _bot1.CreateServer("Discord.Net Testbed", Regions.US_East).Result;
|
||||||
_testServerChannel = _testServer.DefaultChannel;
|
_testServerChannel = _testServer.DefaultChannel;
|
||||||
Invite invite = _bot1.CreateInvite(_testServer, 60, 1, false, false).Result;
|
Invite invite = _bot1.CreateInvite(_testServer, 60, 1, false, false).Result;
|
||||||
@@ -99,7 +101,7 @@ namespace Discord.Net.Tests
|
|||||||
|
|
||||||
addEvent(handler);
|
addEvent(handler);
|
||||||
action();
|
action();
|
||||||
trigger.WaitOne(5000);
|
trigger.WaitOne(EventTimeout);
|
||||||
removeEvent(handler);
|
removeEvent(handler);
|
||||||
|
|
||||||
Assert.AreEqual(true, result, msg);
|
Assert.AreEqual(true, result, msg);
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ namespace Discord
|
|||||||
{
|
{
|
||||||
private const int ReceiveChunkSize = 4096;
|
private const int ReceiveChunkSize = 4096;
|
||||||
private const int SendChunkSize = 4096;
|
private const int SendChunkSize = 4096;
|
||||||
|
private const int ReadyTimeout = 5000; //Max time in milliseconds between connecting to Discord and receiving a READY event
|
||||||
|
|
||||||
private volatile ClientWebSocket _webSocket;
|
private volatile ClientWebSocket _webSocket;
|
||||||
private volatile CancellationTokenSource _cancelToken;
|
private volatile CancellationTokenSource _cancelToken;
|
||||||
@@ -65,7 +66,8 @@ namespace Discord
|
|||||||
msg.Payload.Properties["$referring_domain"] = "";
|
msg.Payload.Properties["$referring_domain"] = "";
|
||||||
SendMessage(msg, cancelToken);
|
SendMessage(msg, cancelToken);
|
||||||
|
|
||||||
_connectWaitOnLogin.WaitOne();
|
if (!_connectWaitOnLogin.WaitOne(ReadyTimeout))
|
||||||
|
throw new Exception("No reply from Discord server");
|
||||||
}
|
}
|
||||||
public async Task DisconnectAsync()
|
public async Task DisconnectAsync()
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user