public async Task HandshakeTest(KeyPair clientKeyPair, ApplicationState alphaState, Type expectedException) { Global.AppState.State = alphaState; var clientConnection = new AlphaWebSocketConnection(new FakeWebSocket(), "127.0.0.1"); var message = new HandshakeInit { HandshakeData = clientConnection.HandshakeData }; var envelope = message.CreateEnvelope(); envelope.Sign(clientKeyPair); if (expectedException == null) { var isHandled = await MessageHandlers <AlphaWebSocketConnection> .HandleMessage(clientConnection, envelope); Assert.IsTrue(isHandled); Assert.AreEqual(clientConnection.ClientPubKey, new RawPubKey(clientKeyPair.AccountId)); if (clientConnection.ClientPubKey.Equals((RawPubKey)TestEnvironment.Auditor1KeyPair)) { Assert.AreEqual(clientConnection.ConnectionState, ConnectionState.Validated); } else { Assert.AreEqual(clientConnection.ConnectionState, ConnectionState.Ready); } } else { Assert.ThrowsAsync(expectedException, async() => await MessageHandlers <AlphaWebSocketConnection> .HandleMessage(clientConnection, envelope)); } }
public void HandshakeInvalidDataTest() { Global.AppState.State = ApplicationState.Ready; var clientConnection = new AlphaWebSocketConnection(new FakeWebSocket(), "127.0.0.1"); var handshake = new HandshakeData(); handshake.Randomize(); var envelope = new HandshakeInit { HandshakeData = handshake }.CreateEnvelope(); envelope.Sign(TestEnvironment.Client1KeyPair); Assert.ThrowsAsync <ConnectionCloseException>(async() => await MessageHandlers <AlphaWebSocketConnection> .HandleMessage(clientConnection, envelope)); }
public async Task HandshakeTest() { Global.AppState.State = ApplicationState.Running; var clientConnection = new AuditorWebSocketConnection(new FakeWebSocket(), null); var hd = new HandshakeData(); hd.Randomize(); var envelope = new HandshakeInit { HandshakeData = hd }.CreateEnvelope(); envelope.Sign(TestEnvironment.AlphaKeyPair); var isHandled = await MessageHandlers <AuditorWebSocketConnection> .HandleMessage(clientConnection, envelope); Assert.IsTrue(isHandled); }
public async Task HandshakeTest() { context.AppState.State = ApplicationState.Running; var clientConnection = new AuditorWebSocketConnection(context, new FakeAuditorConnectionInfo(new FakeWebSocket())); var hd = new HandshakeData(); hd.Randomize(); var envelope = new HandshakeInit { HandshakeData = hd }.CreateEnvelope(); envelope.Sign(TestEnvironment.AlphaKeyPair); using var writer = new XdrBufferWriter(); var inMessage = envelope.ToIncomingMessage(writer); var isHandled = await context.MessageHandlers.HandleMessage(clientConnection, inMessage); Assert.IsTrue(isHandled); }
public void HandshakeInvalidDataTest() { context.AppState.State = ApplicationState.Ready; var clientConnection = new AlphaWebSocketConnection(context, new FakeWebSocket(), "127.0.0.1"); var handshake = new HandshakeData(); handshake.Randomize(); var envelope = new HandshakeInit { HandshakeData = handshake }.CreateEnvelope(); envelope.Sign(TestEnvironment.Client1KeyPair); using var writer = new XdrBufferWriter(); var inMessage = envelope.ToIncomingMessage(writer); Assert.ThrowsAsync <ConnectionCloseException>(async() => await context.MessageHandlers.HandleMessage(clientConnection, inMessage)); }