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); }
/** * 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); }
/** * 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; }