Added an extra unit test for websockets.

This commit is contained in:
2019-11-18 14:21:58 +01:00
parent 9f57bef1cb
commit 577c17d9ec
2 changed files with 23 additions and 5 deletions
+22 -3
View File
@@ -1,5 +1,6 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using MTSC.Common.Http.ServerModules;
using MTSC.Common.WebSockets.ServerModules;
using MTSC.Exceptions;
using MTSC.Logging;
using MTSC.Server;
@@ -7,7 +8,10 @@ using MTSC.Server.Handlers;
using MTSC.Server.UsageMonitors;
using System;
using System.Net.Http;
using System.Net.WebSockets;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading;
namespace MTSC.UnitTests
{
@@ -21,18 +25,21 @@ namespace MTSC.UnitTests
public static void InitializeServer(TestContext testContext)
{
Server = new Server.Server(800)
.AddHandler(new WebsocketHandler()
.AddWebsocketHandler(new EchoModule())
)
.AddHandler(new HttpHandler()
.AddHttpModule(new HelloWorldModule())
)
.AddLogger(new ConsoleLogger())
.AddLogger(new DebugConsoleLogger())
.AddExceptionHandler(new ExceptionConsoleLogger())
.AddServerUsageMonitor(new TickrateEnforcer().SetTicksPerSecond(60));
.AddExceptionHandler(new ExceptionConsoleLogger());
//.AddServerUsageMonitor(new TickrateEnforcer().SetTicksPerSecond(60));
Server.RunAsync().Start();
}
[TestMethod]
public void TestMethod1()
public void HelloWorldHTTP()
{
HttpClient httpClient = new HttpClient();
httpClient.BaseAddress = new Uri("http://localhost:800");
@@ -40,6 +47,18 @@ namespace MTSC.UnitTests
Assert.AreEqual(result.StatusCode, System.Net.HttpStatusCode.OK);
}
[TestMethod]
public void EchoWebsocket()
{
byte[] bytes = new byte[100];
ClientWebSocket client = new ClientWebSocket();
client.ConnectAsync(new Uri("ws://localhost:800"), CancellationToken.None).Wait();
client.SendAsync(ASCIIEncoding.ASCII.GetBytes("Hello world!"), WebSocketMessageType.Text, true, CancellationToken.None).Wait();
client.ReceiveAsync(bytes, CancellationToken.None).Wait();
var resultString = ASCIIEncoding.ASCII.GetString(bytes, 0, 12);
Assert.AreEqual(resultString, "Hello world!");
}
[ClassCleanup]
public static void CleanupServer()
{
@@ -12,8 +12,7 @@ namespace MTSC.Common.WebSockets.ServerModules
#region Public Methods
public void SendMessage(WebsocketHandler handler, ClientData client, WebsocketMessage message)
{
byte[] encodedMessage = message.GetMessageBytes();
handler.QueueMessage(client, encodedMessage);
handler.QueueMessage(client, message.Data, WebsocketMessage.Opcodes.Binary);
}
#endregion
#region Interface Implementation