deserialize = $deserialize; } /** * Creates a sequence such that the responses are returned in order. * @param mixed[] $sequence * @param $finalStatus * @param callable $deserialize * @return MockServerStreamingStub */ public static function createWithResponseSequence($sequence, $finalStatus = null, $deserialize = null) { if (count($sequence) == 0) { throw new InvalidArgumentException("createResponseSequence: need at least 1 response"); } $stub = new MockServerStreamingStub($deserialize); foreach ($sequence as $resp) { $stub->addResponse($resp, null); } $stub->setStreamingStatus($finalStatus); return $stub; } public function __call($name, $arguments) { list($argument, $metadata, $options) = $arguments; $newArgs = [$name, $argument, $this->deserialize, $metadata, $options]; return call_user_func_array(array($this, '_serverStreamRequest'), $newArgs); } }