Skip to content

Commit ea60936

Browse files
committed
Added TextWebSocketClientTests
1 parent b86a45a commit ea60936

File tree

3 files changed

+52
-2
lines changed

3 files changed

+52
-2
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
using System;
2+
using System.Diagnostics;
3+
using System.Threading;
4+
using System.Threading.Tasks;
5+
using Microsoft.VisualStudio.TestTools.UnitTesting;
6+
using Parse.Infrastructure.Execution;
7+
8+
namespace Parse.Tests;
9+
10+
[TestClass]
11+
public class TextWebSocketClientTests
12+
{
13+
[TestMethod]
14+
public void TestConstructor()
15+
{
16+
TextWebSocketClient client = new TextWebSocketClient(4096);
17+
Assert.IsNotNull(client);
18+
19+
client.Dispose();
20+
}
21+
22+
[TestMethod]
23+
public async Task TestSendAndReceive()
24+
{
25+
TextWebSocketClient client = new TextWebSocketClient(32);
26+
await client.OpenAsync("wss://echo.websocket.org", CancellationToken.None);
27+
28+
TaskCompletionSource ConnectionSignal = new TaskCompletionSource();
29+
CancellationTokenSource cts = new CancellationTokenSource();
30+
31+
client.MessageReceived += (_, e) =>
32+
{
33+
if (e.Message.StartsWith("Request served by"))
34+
{
35+
return;
36+
}
37+
Assert.AreEqual("Hello world, WebSocket listening!", e.Message);
38+
ConnectionSignal?.TrySetResult();
39+
};
40+
41+
await client.SendAsync("Hello world, WebSocket listening!", cts.Token);
42+
cts.CancelAfter(5000);
43+
await ConnectionSignal.Task.WaitAsync(cts.Token);
44+
ConnectionSignal = null;
45+
await client.CloseAsync();
46+
client.Dispose();
47+
}
48+
49+
50+
}

Parse/Infrastructure/Execution/TextWebSocketClient.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ private async Task ListenForMessages(CancellationToken cancellationToken)
120120
else
121121
{
122122
// Accumulate bytes to handle UTF-8 characters split across boundaries
123-
using var messageStream = new MemoryStream();
123+
MemoryStream messageStream = new MemoryStream();
124124
messageStream.Write(buffer, 0, result.Count);
125125
while (!result.EndOfMessage)
126126
{

Parse/Platform/LiveQueries/ParseLiveQueryController.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,7 @@ private async Task SendAndWaitForSignalAsync(IDictionary<string, object> message
452452
{
453453
await SendMessage(message, cancellationToken);
454454

455-
using CancellationTokenSource cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken);
455+
CancellationTokenSource cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken);
456456
cts.CancelAfter(Timeout);
457457

458458
await tcs.Task.WaitAsync(cts.Token);

0 commit comments

Comments
 (0)