botbuilder-dotnet/tests/Microsoft.Bot.Streaming.Tests/WebSocketTransportTests.cs

75 строки
2.1 KiB
C#

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
using System.Net.WebSockets;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Bot.Streaming.Tests.Utilities;
using Microsoft.Bot.Streaming.Transport.WebSockets;
using Xunit;
namespace Microsoft.Bot.Streaming.UnitTests
{
public class WebSocketTransportTests
{
[Fact]
public void WebSocketTransport_Connects()
{
var sock = new FauxSock();
sock.RealState = WebSocketState.Open;
var transport = new WebSocketTransport(sock);
Assert.True(transport.IsConnected);
transport.Close();
transport.Dispose();
}
[Fact]
public void WebSocketTransport_SetsState()
{
var sock = new FauxSock();
sock.RealState = WebSocketState.Open;
var transport = new WebSocketTransport(sock);
transport.Close();
transport.Dispose();
Assert.Equal(WebSocketState.Closed, sock.RealState);
}
[Fact]
public async Task WebSocketTransport_CanSend()
{
// Arrange
var sock = new FauxSock();
sock.RealState = WebSocketState.Open;
var transport = new WebSocketTransport(sock);
var messageText = "This is a message.";
byte[] message = Encoding.ASCII.GetBytes(messageText);
// Act
await transport.SendAsync(message, 0, message.Length);
// Assert
Assert.Equal(messageText, Encoding.UTF8.GetString(sock.SentArray));
}
[Fact]
public async Task WebSocketTransport_CanReceive()
{
// Arrange
var sock = new FauxSock();
sock.RealState = WebSocketState.Open;
var transport = new WebSocketTransport(sock);
byte[] message = Encoding.ASCII.GetBytes("This is a message.");
// Act
var received = await transport.ReceiveAsync(message, 0, message.Length);
// Assert
Assert.Equal(message.Length, received);
}
}
}