public function setUp()
 {
     $this->socketBuilder = $this->getMockBuilder('\\SteamCondenser\\Servers\\Sockets\\MasterServerSocket');
     $this->socketBuilder->disableOriginalConstructor();
     $this->socketBuilder->setMethods(['receivePacket']);
     $this->socket = $this->socketBuilder->getMock();
     $this->socket->setLogger(\SteamCondenser\getLogger(get_class($this->socket)));
     $this->buffer = $this->getMockBuilder('\\SteamCondenser\\ByteBuffer')->disableOriginalConstructor()->getMock();
     $reflectionSocket = new \ReflectionObject($this->socket);
     $bufferProperty = $reflectionSocket->getProperty('buffer');
     $bufferProperty->setAccessible(true);
     $bufferProperty->setValue($this->socket, $this->buffer);
 }
Exemplo n.º 2
0
 /**
  * Creates a new server instance with the given address and port
  *
  * @param string $address Either an IP address, a DNS name or one of them
  *        combined with the port number. If a port number is given, e.g.
  *        'server.example.com:27016' it will override the second argument.
  * @param int $port The port the server is listening on
  * @see initSocket()
  * @throws SteamCondenserException if an host name cannot be resolved
  */
 public function __construct($address, $port = null)
 {
     $address = strval($address);
     if (strpos($address, ':') !== false) {
         $address = explode(':', $address, 2);
         $port = $address[1];
         $address = $address[0];
     }
     $this->ipAddresses = [];
     $this->ipIndex = 0;
     $this->port = intval($port);
     $addresses = gethostbynamel($address);
     if (empty($addresses)) {
         throw new SteamCondenserException("Cannot resolve {$address}");
     }
     foreach ($addresses as $address) {
         $this->ipAddresses[] = $address;
     }
     $this->ipAddress = $this->ipAddresses[0];
     $this->logger = \SteamCondenser\getLogger(get_class($this));
     $this->initSocket();
 }
 /**
  * Creates a new UDP socket to communicate with the server on the given IP
  * address and port
  *
  * @param string $ipAddress Either the IP address or the DNS name of the
  *        server
  * @param int $portNumber The port the server is listening on
  */
 public function __construct($ipAddress, $portNumber = 27015)
 {
     $this->logger = \SteamCondenser\getLogger(get_class($this));
     $this->socket = new UDPSocket();
     $this->socket->connect($ipAddress, $portNumber, 0);
 }
 public function testHandleUnexpectedResponse()
 {
     $server = $this->serverBuilder->setMethods(['initSocket', 'rconAuth', 'rconExec'])->getMock();
     $server->setLogger(\SteamCondenser\getLogger(get_class($server)));
     $packet1 = $this->getMockBuilder('\\SteamCondenser\\Servers\\Packets\\S2CCHALLENGEPacket')->disableOriginalConstructor()->setMethods(['getChallengeNumber'])->getMock();
     $packet1->expects($this->once())->method('getChallengeNumber')->will($this->returnValue(1234));
     $packet2 = $this->getMockBuilder('\\SteamCondenser\\Servers\\Packets\\S2APLAYERPacket')->disableOriginalConstructor()->setMethods(['getPlayerHash'])->getMock();
     $packet2->expects($this->once())->method('getPlayerHash')->will($this->returnValue(['test' => 'test']));
     $socket = $this->getMockBuilder('\\SteamCondenser\\Servers\\Sockets\\SteamSocket')->setMethods(['getReply', 'send'])->disableOriginalConstructor()->getMock();
     $socket->expects($this->exactly(2))->method('send')->with($this->isInstanceOf('\\SteamCondenser\\Servers\\Packets\\A2SPLAYERPacket'));
     $socket->expects($this->at(1))->method('getReply')->will($this->returnValue($packet1));
     $socket->expects($this->at(3))->method('getReply')->will($this->returnValue($packet2));
     $server->socket = $socket;
     $server->handleResponseForRequest(GameServer::REQUEST_PLAYER);
     $this->assertEquals(1234, $server->challengeNumber);
     $this->assertEquals(['test' => 'test'], $server->playerHash);
 }
Exemplo n.º 5
0
 /**
  * Returns a singleton instance of an internal <var>WebApi</var> object
  *
  * @return WebApi The internal <var>WebApi</var> instance
  */
 private static function instance()
 {
     if (self::$instance == null) {
         self::$instance = new WebApi();
         self::$instance->setLogger(\SteamCondenser\getLogger(get_class()));
     }
     return self::$instance;
 }