aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/php/tests/generated_code/GeneratedCodeTest.php
diff options
context:
space:
mode:
authorGravatar mlumish <mlumish@google.com>2014-12-09 16:28:23 -0800
committerGravatar Michael Lumish <mlumish@google.com>2014-12-09 17:50:41 -0800
commitb892a27e67e534eccf011ab8c68d455c5be77e6c (patch)
tree7d1475a645c6ac60ff0ee28f26425734048480cb /src/php/tests/generated_code/GeneratedCodeTest.php
parent275b3ac04dbe5654a38de47e7f4ee6b9b7ca7b8e (diff)
Added PHP to the global gRPC moe config
Change on 2014/12/09 by mlumish <mlumish@google.com> ------------- Created by MOE: http://code.google.com/p/moe-java MOE_MIGRATED_REVID=81727766
Diffstat (limited to 'src/php/tests/generated_code/GeneratedCodeTest.php')
-rwxr-xr-xsrc/php/tests/generated_code/GeneratedCodeTest.php70
1 files changed, 70 insertions, 0 deletions
diff --git a/src/php/tests/generated_code/GeneratedCodeTest.php b/src/php/tests/generated_code/GeneratedCodeTest.php
new file mode 100755
index 0000000000..d8d726e21a
--- /dev/null
+++ b/src/php/tests/generated_code/GeneratedCodeTest.php
@@ -0,0 +1,70 @@
+<?php
+require __DIR__ . '/../../lib/Grpc/ActiveCall.php';
+require __DIR__ . '/../../lib/Grpc/SurfaceActiveCall.php';
+require __DIR__ . '/../../lib/Grpc/BaseStub.php';
+require 'DrSlump/Protobuf.php';
+\DrSlump\Protobuf::autoload();
+require 'math.php';
+class GeneratedCodeTest extends PHPUnit_Framework_TestCase {
+ /* These tests require that a server exporting the math service must be
+ * running on $GRPC_TEST_HOST */
+ protected static $client;
+ protected static $timeout;
+ public static function setUpBeforeClass() {
+ self::$client = new math\MathClient(getenv('GRPC_TEST_HOST'));
+ }
+
+ public function testSimpleRequest() {
+ $div_arg = new math\DivArgs();
+ $div_arg->setDividend(7);
+ $div_arg->setDivisor(4);
+ list($response, $status) = self::$client->Div($div_arg)->wait();
+ $this->assertEquals(1, $response->getQuotient());
+ $this->assertEquals(3, $response->getRemainder());
+ $this->assertEquals(\Grpc\STATUS_OK, $status->code);
+ }
+
+ public function testServerStreaming() {
+ $fib_arg = new math\FibArgs();
+ $fib_arg->setLimit(7);
+ $call = self::$client->Fib($fib_arg);
+ $result_array = iterator_to_array($call->responses());
+ $extract_num = function($num){
+ return $num->getNum();
+ };
+ $values = array_map($extract_num, $result_array);
+ $this->assertEquals([1, 1, 2, 3, 5, 8, 13], $values);
+ $status = $call->getStatus();
+ $this->assertEquals(\Grpc\STATUS_OK, $status->code);
+ }
+
+ public function testClientStreaming() {
+ $num_iter = function() {
+ for ($i = 0; $i < 7; $i++) {
+ $num = new math\Num();
+ $num->setNum($i);
+ yield $num;
+ }
+ };
+ $call = self::$client->Sum($num_iter());
+ list($response, $status) = $call->wait();
+ $this->assertEquals(21, $response->getNum());
+ $this->assertEquals(\Grpc\STATUS_OK, $status->code);
+ }
+
+ public function testBidiStreaming() {
+ $call = self::$client->DivMany();
+ for ($i = 0; $i < 7; $i++) {
+ $div_arg = new math\DivArgs();
+ $div_arg->setDividend(2 * $i + 1);
+ $div_arg->setDivisor(2);
+ $call->write($div_arg);
+ $response = $call->read();
+ $this->assertEquals($i, $response->getQuotient());
+ $this->assertEquals(1, $response->getRemainder());
+ }
+ $call->writesDone();
+ $status = $call->getStatus();
+ $this->assertEquals(\Grpc\STATUS_OK, $status->code);
+ }
+} \ No newline at end of file