server = null; } public function tearDown() { unset($this->server); } public function testConstructorWithNull() { $this->server = new Grpc\Server(); $this->assertNotNull($this->server); } public function testConstructorWithNullArray() { $this->server = new Grpc\Server([]); $this->assertNotNull($this->server); } public function testConstructorWithArray() { // key of array must be string $this->server = new Grpc\Server(['ip' => '127.0.0.1', 'port' => '8080', ]); $this->assertNotNull($this->server); } public function testRequestCall() { $this->server = new Grpc\Server(); $port = $this->server->addHttp2Port('0.0.0.0:0'); $this->server->start(); $channel = new Grpc\Channel('localhost:'.$port, [ 'force_new' => true, 'credentials' => Grpc\ChannelCredentials::createInsecure() ]); $deadline = Grpc\Timeval::infFuture(); $call = new Grpc\Call($channel, 'dummy_method', $deadline); $event = $call->startBatch([Grpc\OP_SEND_INITIAL_METADATA => [], Grpc\OP_SEND_CLOSE_FROM_CLIENT => true, ]); $c = $this->server->requestCall(); $this->assertObjectHasAttribute('call', $c); $this->assertObjectHasAttribute('method', $c); $this->assertSame('dummy_method', $c->method); $this->assertObjectHasAttribute('host', $c); $this->assertTrue(is_string($c->host)); $this->assertObjectHasAttribute('absolute_deadline', $c); $this->assertObjectHasAttribute('metadata', $c); unset($call); unset($channel); } private function createSslObj() { $server_credentials = Grpc\ServerCredentials::createSsl( null, file_get_contents(dirname(__FILE__).'/../data/server1.key'), file_get_contents(dirname(__FILE__).'/../data/server1.pem')); return $server_credentials; } /** * @expectedException InvalidArgumentException */ public function testInvalidConstructor() { $this->server = new Grpc\Server('invalid_host'); $this->assertNull($this->server); } /** * @expectedException InvalidArgumentException */ public function testInvalidConstructorWithNumKeyOfArray() { $this->server = new Grpc\Server([10 => '127.0.0.1', 20 => '8080', ]); $this->assertNull($this->server); } /** * @expectedException InvalidArgumentException */ public function testInvalidConstructorWithList() { $this->server = new Grpc\Server(['127.0.0.1', '8080']); $this->assertNull($this->server); } /** * @expectedException InvalidArgumentException */ public function testInvalidAddHttp2Port() { $this->server = new Grpc\Server([]); $port = $this->server->addHttp2Port(['0.0.0.0:0']); } /** * @expectedException InvalidArgumentException */ public function testInvalidAddSecureHttp2Port() { $this->server = new Grpc\Server([]); $port = $this->server->addSecureHttp2Port(['0.0.0.0:0']); } /** * @expectedException InvalidArgumentException */ public function testInvalidAddSecureHttp2Port2() { $this->server = new Grpc\Server(); $port = $this->server->addSecureHttp2Port('0.0.0.0:0'); } /** * @expectedException InvalidArgumentException */ public function testInvalidAddSecureHttp2Port3() { $this->server = new Grpc\Server(); $port = $this->server->addSecureHttp2Port('0.0.0.0:0', 'invalid'); } }