public void ShouldBeAbleToCallConnectAgainAfterHandlingAReservationRejection() { //When clientBridge.HandleRejectedReservation(correlationId, TestConstants.TEST_REJECTION_STATE); clientBridge.Connect(TestConstants.TEST_IP_ADDRESS, TestConstants.TEST_PLAYER_NAME); //Then clientBridge.CurrentState.Should().Be(ClientBridgeState.WaitingForRerservation); }
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); }
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 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; } }
public void TheBridgeShouldBeReservedAfterConfirmingAReservation() { //When clientBridge.Connect(TestConstants.TEST_IP_ADDRESS, TestConstants.TEST_PLAYER_NAME); clientBridge.ConfirmReservation(correlationId, TestConstants.TEST_RESERVATION_KEY); //Then clientBridge.CurrentState.Should().Be(ClientBridgeState.Reserved); clientBridge.ReservationState.Should().Be(PlayerSlotReservationState.Reserved); }
public void TheBridgeShouldBeInRejectedStateAfterHandlingAReservationRejection() { //When clientBridge.Connect(TestConstants.TEST_IP_ADDRESS, TestConstants.TEST_PLAYER_NAME); clientBridge.HandleRejectedReservation(correlationId, TestConstants.TEST_REJECTION_STATE); //Then clientBridge.CurrentState.Should().Be(ClientBridgeState.ReservationRejected); clientBridge.ReservationState.Should().HaveFlag(TestConstants.TEST_REJECTION_STATE); }
public void ShouldNotStartAConnectedClient() { //Arrange IClient serverClient = Substitute.For <IClient>(); serverClient.IsConnected.Returns(true); ClientBridge clientBridge = new ClientBridge(serverClient); //Act clientBridge.Connect(TestConstants.TEST_IP_ADDRESS, TestConstants.TEST_PLAYER_NAME); //Assert serverClient.DidNotReceive().Start(Arg.Any <string>()); clientBridge.CurrentState.Should().Be(ClientBridgeState.WaitingForRerservation); }
public void GivenAClientBridgeThatIsWaitingForAReservation() { //Given IClient serverClient = Substitute.For <IClient>(); serverClient.IsConnected.Returns(false); serverClient .When(client => client.Start(Arg.Any <string>())) .Do(info => serverClient.IsConnected.Returns(true)); serverClient .When(client => client.Send(Arg.Any <ReservePlayerSlot>())) .Do(info => correlationId = info.Arg <ReservePlayerSlot>().CorrelationId); clientBridge = new ClientBridge(serverClient); clientBridge.Connect(TestConstants.TEST_IP_ADDRESS, TestConstants.TEST_PLAYER_NAME); }
public void TheBridgeShouldBeInTheWaitingStateAfterConnecting() { //Arrange IClient serverClient = Substitute.For <IClient>(); serverClient.IsConnected.Returns(false); serverClient .When(client => client.Start(Arg.Any <string>())) .Do(info => serverClient.IsConnected.Returns(true)); ClientBridge clientBridge = new ClientBridge(serverClient); //Act clientBridge.Connect(TestConstants.TEST_IP_ADDRESS, TestConstants.TEST_PLAYER_NAME); //Assert clientBridge.CurrentState.Should().Be(ClientBridgeState.WaitingForRerservation); }
public void ConnectShouldThrowClientConnectionFailedExceptionAndBeInFaultedStateOnFailure() { //Arrange IClient serverClient = Substitute.For <IClient>(); serverClient.IsConnected.Returns(false); serverClient .When(client => client.Start(Arg.Any <string>())) .Throw <Exception>(); ClientBridge clientBridge = new ClientBridge(serverClient); //Act Action action = () => clientBridge.Connect(TestConstants.TEST_IP_ADDRESS, TestConstants.TEST_PLAYER_NAME); //Assert action.ShouldThrow <ClientConnectionFailedException>(); clientBridge.CurrentState.Should().Be(ClientBridgeState.Failed); }
public void NegotiatePlayerSlotReservation(string ipAddress, string playerName) { clientBridge.Connect(ipAddress, playerName); }