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); } } }