aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/php/tests/generated_code
diff options
context:
space:
mode:
Diffstat (limited to 'src/php/tests/generated_code')
-rwxr-xr-xsrc/php/tests/generated_code/GeneratedCodeTest.php70
-rwxr-xr-xsrc/php/tests/generated_code/math.php479
2 files changed, 549 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
diff --git a/src/php/tests/generated_code/math.php b/src/php/tests/generated_code/math.php
new file mode 100755
index 0000000000..d50f94e11c
--- /dev/null
+++ b/src/php/tests/generated_code/math.php
@@ -0,0 +1,479 @@
+<?php
+// DO NOT EDIT! Generated by Protobuf-PHP protoc plugin 1.0
+// Source: math.proto
+// Date: 2014-11-14 00:00:41
+
+namespace math {
+
+ class DivArgs extends \DrSlump\Protobuf\Message {
+
+ /** @var int */
+ public $dividend = null;
+
+ /** @var int */
+ public $divisor = null;
+
+
+ /** @var \Closure[] */
+ protected static $__extensions = array();
+
+ public static function descriptor()
+ {
+ $descriptor = new \DrSlump\Protobuf\Descriptor(__CLASS__, 'math.DivArgs');
+
+ // REQUIRED INT64 dividend = 1
+ $f = new \DrSlump\Protobuf\Field();
+ $f->number = 1;
+ $f->name = "dividend";
+ $f->type = \DrSlump\Protobuf::TYPE_INT64;
+ $f->rule = \DrSlump\Protobuf::RULE_REQUIRED;
+ $descriptor->addField($f);
+
+ // REQUIRED INT64 divisor = 2
+ $f = new \DrSlump\Protobuf\Field();
+ $f->number = 2;
+ $f->name = "divisor";
+ $f->type = \DrSlump\Protobuf::TYPE_INT64;
+ $f->rule = \DrSlump\Protobuf::RULE_REQUIRED;
+ $descriptor->addField($f);
+
+ foreach (self::$__extensions as $cb) {
+ $descriptor->addField($cb(), true);
+ }
+
+ return $descriptor;
+ }
+
+ /**
+ * Check if <dividend> has a value
+ *
+ * @return boolean
+ */
+ public function hasDividend(){
+ return $this->_has(1);
+ }
+
+ /**
+ * Clear <dividend> value
+ *
+ * @return \math\DivArgs
+ */
+ public function clearDividend(){
+ return $this->_clear(1);
+ }
+
+ /**
+ * Get <dividend> value
+ *
+ * @return int
+ */
+ public function getDividend(){
+ return $this->_get(1);
+ }
+
+ /**
+ * Set <dividend> value
+ *
+ * @param int $value
+ * @return \math\DivArgs
+ */
+ public function setDividend( $value){
+ return $this->_set(1, $value);
+ }
+
+ /**
+ * Check if <divisor> has a value
+ *
+ * @return boolean
+ */
+ public function hasDivisor(){
+ return $this->_has(2);
+ }
+
+ /**
+ * Clear <divisor> value
+ *
+ * @return \math\DivArgs
+ */
+ public function clearDivisor(){
+ return $this->_clear(2);
+ }
+
+ /**
+ * Get <divisor> value
+ *
+ * @return int
+ */
+ public function getDivisor(){
+ return $this->_get(2);
+ }
+
+ /**
+ * Set <divisor> value
+ *
+ * @param int $value
+ * @return \math\DivArgs
+ */
+ public function setDivisor( $value){
+ return $this->_set(2, $value);
+ }
+ }
+}
+
+namespace math {
+
+ class DivReply extends \DrSlump\Protobuf\Message {
+
+ /** @var int */
+ public $quotient = null;
+
+ /** @var int */
+ public $remainder = null;
+
+
+ /** @var \Closure[] */
+ protected static $__extensions = array();
+
+ public static function descriptor()
+ {
+ $descriptor = new \DrSlump\Protobuf\Descriptor(__CLASS__, 'math.DivReply');
+
+ // REQUIRED INT64 quotient = 1
+ $f = new \DrSlump\Protobuf\Field();
+ $f->number = 1;
+ $f->name = "quotient";
+ $f->type = \DrSlump\Protobuf::TYPE_INT64;
+ $f->rule = \DrSlump\Protobuf::RULE_REQUIRED;
+ $descriptor->addField($f);
+
+ // REQUIRED INT64 remainder = 2
+ $f = new \DrSlump\Protobuf\Field();
+ $f->number = 2;
+ $f->name = "remainder";
+ $f->type = \DrSlump\Protobuf::TYPE_INT64;
+ $f->rule = \DrSlump\Protobuf::RULE_REQUIRED;
+ $descriptor->addField($f);
+
+ foreach (self::$__extensions as $cb) {
+ $descriptor->addField($cb(), true);
+ }
+
+ return $descriptor;
+ }
+
+ /**
+ * Check if <quotient> has a value
+ *
+ * @return boolean
+ */
+ public function hasQuotient(){
+ return $this->_has(1);
+ }
+
+ /**
+ * Clear <quotient> value
+ *
+ * @return \math\DivReply
+ */
+ public function clearQuotient(){
+ return $this->_clear(1);
+ }
+
+ /**
+ * Get <quotient> value
+ *
+ * @return int
+ */
+ public function getQuotient(){
+ return $this->_get(1);
+ }
+
+ /**
+ * Set <quotient> value
+ *
+ * @param int $value
+ * @return \math\DivReply
+ */
+ public function setQuotient( $value){
+ return $this->_set(1, $value);
+ }
+
+ /**
+ * Check if <remainder> has a value
+ *
+ * @return boolean
+ */
+ public function hasRemainder(){
+ return $this->_has(2);
+ }
+
+ /**
+ * Clear <remainder> value
+ *
+ * @return \math\DivReply
+ */
+ public function clearRemainder(){
+ return $this->_clear(2);
+ }
+
+ /**
+ * Get <remainder> value
+ *
+ * @return int
+ */
+ public function getRemainder(){
+ return $this->_get(2);
+ }
+
+ /**
+ * Set <remainder> value
+ *
+ * @param int $value
+ * @return \math\DivReply
+ */
+ public function setRemainder( $value){
+ return $this->_set(2, $value);
+ }
+ }
+}
+
+namespace math {
+
+ class FibArgs extends \DrSlump\Protobuf\Message {
+
+ /** @var int */
+ public $limit = null;
+
+
+ /** @var \Closure[] */
+ protected static $__extensions = array();
+
+ public static function descriptor()
+ {
+ $descriptor = new \DrSlump\Protobuf\Descriptor(__CLASS__, 'math.FibArgs');
+
+ // OPTIONAL INT64 limit = 1
+ $f = new \DrSlump\Protobuf\Field();
+ $f->number = 1;
+ $f->name = "limit";
+ $f->type = \DrSlump\Protobuf::TYPE_INT64;
+ $f->rule = \DrSlump\Protobuf::RULE_OPTIONAL;
+ $descriptor->addField($f);
+
+ foreach (self::$__extensions as $cb) {
+ $descriptor->addField($cb(), true);
+ }
+
+ return $descriptor;
+ }
+
+ /**
+ * Check if <limit> has a value
+ *
+ * @return boolean
+ */
+ public function hasLimit(){
+ return $this->_has(1);
+ }
+
+ /**
+ * Clear <limit> value
+ *
+ * @return \math\FibArgs
+ */
+ public function clearLimit(){
+ return $this->_clear(1);
+ }
+
+ /**
+ * Get <limit> value
+ *
+ * @return int
+ */
+ public function getLimit(){
+ return $this->_get(1);
+ }
+
+ /**
+ * Set <limit> value
+ *
+ * @param int $value
+ * @return \math\FibArgs
+ */
+ public function setLimit( $value){
+ return $this->_set(1, $value);
+ }
+ }
+}
+
+namespace math {
+
+ class Num extends \DrSlump\Protobuf\Message {
+
+ /** @var int */
+ public $num = null;
+
+
+ /** @var \Closure[] */
+ protected static $__extensions = array();
+
+ public static function descriptor()
+ {
+ $descriptor = new \DrSlump\Protobuf\Descriptor(__CLASS__, 'math.Num');
+
+ // REQUIRED INT64 num = 1
+ $f = new \DrSlump\Protobuf\Field();
+ $f->number = 1;
+ $f->name = "num";
+ $f->type = \DrSlump\Protobuf::TYPE_INT64;
+ $f->rule = \DrSlump\Protobuf::RULE_REQUIRED;
+ $descriptor->addField($f);
+
+ foreach (self::$__extensions as $cb) {
+ $descriptor->addField($cb(), true);
+ }
+
+ return $descriptor;
+ }
+
+ /**
+ * Check if <num> has a value
+ *
+ * @return boolean
+ */
+ public function hasNum(){
+ return $this->_has(1);
+ }
+
+ /**
+ * Clear <num> value
+ *
+ * @return \math\Num
+ */
+ public function clearNum(){
+ return $this->_clear(1);
+ }
+
+ /**
+ * Get <num> value
+ *
+ * @return int
+ */
+ public function getNum(){
+ return $this->_get(1);
+ }
+
+ /**
+ * Set <num> value
+ *
+ * @param int $value
+ * @return \math\Num
+ */
+ public function setNum( $value){
+ return $this->_set(1, $value);
+ }
+ }
+}
+
+namespace math {
+
+ class FibReply extends \DrSlump\Protobuf\Message {
+
+ /** @var int */
+ public $count = null;
+
+
+ /** @var \Closure[] */
+ protected static $__extensions = array();
+
+ public static function descriptor()
+ {
+ $descriptor = new \DrSlump\Protobuf\Descriptor(__CLASS__, 'math.FibReply');
+
+ // REQUIRED INT64 count = 1
+ $f = new \DrSlump\Protobuf\Field();
+ $f->number = 1;
+ $f->name = "count";
+ $f->type = \DrSlump\Protobuf::TYPE_INT64;
+ $f->rule = \DrSlump\Protobuf::RULE_REQUIRED;
+ $descriptor->addField($f);
+
+ foreach (self::$__extensions as $cb) {
+ $descriptor->addField($cb(), true);
+ }
+
+ return $descriptor;
+ }
+
+ /**
+ * Check if <count> has a value
+ *
+ * @return boolean
+ */
+ public function hasCount(){
+ return $this->_has(1);
+ }
+
+ /**
+ * Clear <count> value
+ *
+ * @return \math\FibReply
+ */
+ public function clearCount(){
+ return $this->_clear(1);
+ }
+
+ /**
+ * Get <count> value
+ *
+ * @return int
+ */
+ public function getCount(){
+ return $this->_get(1);
+ }
+
+ /**
+ * Set <count> value
+ *
+ * @param int $value
+ * @return \math\FibReply
+ */
+ public function setCount( $value){
+ return $this->_set(1, $value);
+ }
+ }
+}
+
+namespace math {
+
+ class MathClient extends \Grpc\BaseStub {
+ /**
+ * @param math\DivArgs $input
+ * @return math\DivReply
+ */
+ public function Div(\math\DivArgs $argument, $metadata = array()) {
+ return $this->_simpleRequest('/Math/Div', $argument, '\math\DivReply::deserialize', $metadata);
+ }
+ /**
+ * @param math\DivArgs $input
+ * @return math\DivReply
+ */
+ public function DivMany($metadata = array()) {
+ return $this->_bidiRequest('/Math/DivMany', '\math\DivReply::deserialize', $metadata);
+ }
+ /**
+ * @param math\FibArgs $input
+ * @return math\Num
+ */
+ public function Fib($argument, $metadata = array()) {
+ return $this->_serverStreamRequest('/Math/Fib', $argument, '\math\Num::deserialize', $metadata);
+ }
+ /**
+ * @param math\Num $input
+ * @return math\Num
+ */
+ public function Sum($arguments, $metadata = array()) {
+ return $this->_clientStreamRequest('/Math/Sum', $arguments, '\math\Num::deserialize', $metadata);
+ }
+ }
+}