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 MultiplayerClient(string playerId) { Log.SetLevel(Log.LogLevel.ConsoleInfo | Log.LogLevel.ConsoleDebug); playerName = playerId; visibleCells = new VisibleCells(); packetReceiver = new DeferringPacketReceiver(visibleCells); client = new TcpClient(packetReceiver); ClientBridge = new ClientBridge(client); PacketSender = ClientBridge; Logic = new Logic(ClientBridge, visibleCells, packetReceiver); }
public static void Main(string[] args) { Console.WriteLine("Hello Patterns!\n"); ClientComposite.ExecuteScript(); ClientStrategy.ExecuteScript(); ClientDecorator.ExecuteScript(); ClientAbstractFactory.ExecuteScript(); ClientBridge.ExecuteScript(); ClientCommand.ExecuteScript(); ClientIterator.ExecuteScript(); ClientVisitor.ExecuteScript(); }
public void GivenAnInitializedClientBridge() { //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); }
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 PlayerSlotReservationProcessor(ClientBridge clientBridge) { this.clientBridge = clientBridge; }