borepin/FabAccessAPI_Test/ConnectionTest.cs
2021-01-30 21:15:28 +01:00

85 lines
2.5 KiB
C#

using Capnp.Rpc;
using NUnit.Framework;
using System;
namespace FabAccessAPI_Test
{
public class ConnectionTest
{
[Test, Repeat(10)]
public void IPv4()
{
UriBuilder builder = new UriBuilder();
builder.Host = "127.0.0.1";
builder.Port = 59661;
Uri uri = builder.Uri;
TcpRpcClient rpcClient = new TcpRpcClient();
rpcClient.Connect(uri.Host, uri.Port);
while (rpcClient.State == ConnectionState.Initializing);
FabAccessAPI.Connection connection = new FabAccessAPI.Connection(rpcClient);
Assert.AreEqual(ConnectionState.Active, connection.RpcClient.State);
rpcClient.Dispose();
Assert.AreEqual(ConnectionState.Down, connection.RpcClient.State);
}
[Test, Repeat(10)]
public void IPv6()
{
UriBuilder builder = new UriBuilder();
builder.Host = "[::1]";
builder.Port = 59661;
Uri uri = builder.Uri;
TcpRpcClient rpcClient = new TcpRpcClient();
rpcClient.Connect(uri.Host, uri.Port);
while (rpcClient.State == ConnectionState.Initializing) ;
FabAccessAPI.Connection connection = new FabAccessAPI.Connection(rpcClient);
Assert.AreEqual(ConnectionState.Active, connection.RpcClient.State);
rpcClient.Dispose();
Assert.AreEqual(ConnectionState.Down, connection.RpcClient.State);
}
[Test, Repeat(10)]
public void DoubleConnect()
{
TcpRpcClient rpcClient = new TcpRpcClient();
rpcClient.Connect("127.0.0.1", 59661);
while (rpcClient.State == ConnectionState.Initializing) ;
FabAccessAPI.Connection connection = new FabAccessAPI.Connection(rpcClient);
Assert.AreEqual(ConnectionState.Active, connection.RpcClient.State);
rpcClient.Dispose();
Assert.AreEqual(ConnectionState.Down, connection.RpcClient.State);
rpcClient = new TcpRpcClient();
rpcClient.Connect("127.0.0.1", 59661);
connection = new FabAccessAPI.Connection(rpcClient);
while (rpcClient.State == ConnectionState.Initializing) ;
Assert.AreEqual(ConnectionState.Active, connection.RpcClient.State);
rpcClient.Dispose();
Assert.AreEqual(ConnectionState.Down, connection.RpcClient.State);
}
}
}