public void AcceptsConnectionForValidMessage() { peer.Bind(Substitute.For <EndPoint>()); Action <IConnection> connectAction = Substitute.For <Action <IConnection> >(); peer.OnConnected += connectAction; var validator = new ConnectKeyValidator(); byte[] valid = new byte[3] { (byte)PacketType.Command, (byte)Commands.ConnectRequest, 0 }; validator.CopyTo(valid); EndPoint endPoint = Substitute.For <EndPoint>(); socket.SetupReceiveCall(valid, endPoint); peer.Update(); // server sends accept and invokes event locally socket.Received(1).Send(endPoint, Arg.Is <byte[]>(x => x.Length >= 2 && x[0] == (byte)PacketType.Command && x[1] == (byte)Commands.ConnectionAccepted ), 2); connectAction.ReceivedWithAnyArgs(1).Invoke(default);
private void CreateConnectPacket() { var keyValidator = new ConnectKeyValidator(instance.config.key); connectRequest = new byte[2 + keyValidator.KeyLength]; connectRequest[0] = (byte)PacketType.Command; connectRequest[1] = (byte)Commands.ConnectRequest; keyValidator.CopyTo(connectRequest); }
public ConnectKeyValidatorTest(string key) { validator = new ConnectKeyValidator(key); }