예제 #1
0
        public void ClaimingAReservationOnAReservedBridgeShouldMakeItConnected()
        {
            //When
            clientBridge.Connect(TestConstants.TEST_IP_ADDRESS, TestConstants.TEST_PLAYER_NAME);
            clientBridge.ConfirmReservation(correlationId, TestConstants.TEST_RESERVATION_KEY);
            clientBridge.ClaimReservation();

            //Then
            clientBridge.CurrentState.Should().Be(ClientBridgeState.Connected);
        }
예제 #2
0
        public void Start(string ip)
        {
            ClientBridge.Connect(ip, playerName);

            var iterations = 0;

            do
            {
                Thread.Sleep(250);
                ProcessPackets();

                iterations++;
                if (iterations >= 20)
                {
                    break;
                }
            } while (ClientBridge.CurrentState == ClientBridgeState.WaitingForRerservation);

            switch (ClientBridge.CurrentState)
            {
            case ClientBridgeState.Reserved:
                ClientBridge.ClaimReservation();
                Log.InGame("Connected to server");
                break;

            default:
                Log.InGame("Unable to connect to server");
                break;
            }
        }
예제 #3
0
        public void ShouldThrowAProhibitedConnectAttemptExceptionWhenConnectIsCalledOnAConnectedBridge()
        {
            //When
            clientBridge.ConfirmReservation(correlationId, TestConstants.TEST_RESERVATION_KEY);
            clientBridge.ClaimReservation();
            Action action = () => clientBridge.Connect(TestConstants.TEST_IP_ADDRESS, TestConstants.TEST_PLAYER_NAME);

            //Then
            action.ShouldThrow <ProhibitedConnectAttemptException>();
        }
        public void TheBridgeShouldThrowAProhibitedReservationRejectionExceptionWhenHandlingAReservationRejectionAfterOneHasBeenClaimed()
        {
            //When
            clientBridge.Connect(TestConstants.TEST_IP_ADDRESS, TestConstants.TEST_PLAYER_NAME);
            clientBridge.ConfirmReservation(correlationId, TestConstants.TEST_RESERVATION_KEY);
            clientBridge.ClaimReservation();
            Action action = () => clientBridge.HandleRejectedReservation(correlationId, TestConstants.TEST_REJECTION_STATE);

            //Then
            action.ShouldThrow <ProhibitedReservationRejectionException>();
        }
예제 #5
0
        public void ShouldBeAbleToSendAPacketThroughAConnectedClientBridge()
        {
            //When
            clientBridge.Connect(TestConstants.TEST_IP_ADDRESS, TestConstants.TEST_PLAYER_NAME);
            clientBridge.ConfirmReservation(correlationId, TestConstants.TEST_RESERVATION_KEY);
            clientBridge.ClaimReservation();

            clientBridge.Send(packet);

            //Then
            serverClient.Received().Send(Arg.Is(packet));
        }
        public void TheBridgeShouldThrowAnInvalidReservationExceptionIfConfirmingAReserverationWhileItIsAlreadyConnected()
        {
            //When
            clientBridge.Connect(TestConstants.TEST_IP_ADDRESS, TestConstants.TEST_PLAYER_NAME);
            clientBridge.ConfirmReservation(correlationId, TestConstants.TEST_RESERVATION_KEY);
            clientBridge.ClaimReservation();
            Action action = () => clientBridge.ConfirmReservation(null, null);

            //Then
            action.ShouldThrow <InvalidReservationException>();
            clientBridge.CurrentState.Should().Be(ClientBridgeState.Failed);
        }
예제 #7
0
 public void JoinSession()
 {
     OnBeforeMultiplayerStart();
     clientBridge.ClaimReservation();
     InitMonoBehaviours();
 }