Exemple #1
0
        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);
Exemple #2
0
        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);
        }
Exemple #3
0
 public ConnectKeyValidatorTest(string key)
 {
     validator = new ConnectKeyValidator(key);
 }