mirror of
https://github.com/AlexMacocian/MTSC.git
synced 2026-07-25 08:22:17 +00:00
Added an extra unit test for websockets.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user