Skip to content

Commit 1bf28ba

Browse files
committed
no exception should be thrown when a close message is received
1 parent 70b8379 commit 1bf28ba

2 files changed

Lines changed: 20 additions & 3 deletions

File tree

src/SocketIOClient/Protocol/WebSocket/WebSocketAdapter.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,6 @@ private async Task ReceiveAsync(CancellationToken cancellationToken)
3737
protocolMessage.Type = ProtocolMessageType.Bytes;
3838
protocolMessage.Bytes = message.Bytes;
3939
break;
40-
default:
41-
throw new ArgumentException();
4240
}
4341

4442
await OnNextAsync(protocolMessage).ConfigureAwait(false);

tests/SocketIOClient.UnitTests/Protocol/WebSocket/WebSocketAdapterTests.cs

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,10 +171,29 @@ public async Task ReceiveAsync_ExceptionOccurred_OnDisconnectInvoked()
171171

172172
await _wsAdapter.ConnectAsync(new Uri("ws://127.0.0.1:1234"), CancellationToken.None);
173173

174-
await Task.Delay(400).ConfigureAwait(false);
174+
await Task.Delay(200).ConfigureAwait(false);
175175
_onDisconnect.Received().Invoke();
176176
}
177177

178+
[Fact]
179+
public async Task ReceiveAsync_CloseMessage_OnDisconnectNotInvoked()
180+
{
181+
_clientAdapter.ReceiveAsync(Arg.Any<CancellationToken>())
182+
.Returns(async _ =>
183+
{
184+
await Task.Delay(20).ConfigureAwait(false);
185+
return new WebSocketMessage
186+
{
187+
Type = WebSocketMessageType.Close,
188+
};
189+
});
190+
191+
await _wsAdapter.ConnectAsync(new Uri("ws://127.0.0.1:1234"), CancellationToken.None);
192+
193+
await Task.Delay(200).ConfigureAwait(false);
194+
_onDisconnect.DidNotReceive().Invoke();
195+
}
196+
178197
[Fact]
179198
public void SetDefaultHeader_WhenCalled_AlwaysCallClientAdapterSetDefaultHeader()
180199
{

0 commit comments

Comments
 (0)