/**
  * @expectedException RuntimeException
  * @expectedExceptionMessage A streaming iterator cannot be rewinded.
  */
 public function testRewindException()
 {
     $message = $this->getMock('Riak\\Client\\ProtoBuf\\RpbListKeysResp', [], [], '', false);
     $this->client->expects($this->once())->method('receiveMessage')->willReturn($message)->with($this->equalTo($this->stream), $this->equalTo($this->messageCode));
     $this->instance->rewind();
     $this->instance->rewind();
 }
Example #2
0
 public function testSendMessage()
 {
     $message = new RpbPutReq();
     $reqCode = RiakMessageCodes::PUT_REQ;
     $respCode = RiakMessageCodes::PUT_RESP;
     $respBody = Protobuf::encode(new RpbPutResp());
     $stream = $this->getMock('Riak\\Client\\Core\\Transport\\Proto\\ProtoStream', [], [], '', false);
     $this->connection->expects($this->once())->method('send')->willReturn($stream);
     $this->connection->expects($this->once())->method('receive')->willReturn([$respCode, $respBody])->with($this->equalTo($stream));
     $this->assertInstanceOf('Riak\\Client\\ProtoBuf\\RpbPutResp', $this->instance->send($message, $reqCode, $respCode));
 }
 public function testGetMessageResponseNull()
 {
     $request = new GetSchemaRequest();
     $callback = function ($subject) {
         $this->assertInstanceOf('Riak\\Client\\ProtoBuf\\RpbYokozunaSchemaGetReq', $subject);
         $this->assertEquals('schema-name', $subject->name);
         return true;
     };
     $request->name = 'schema-name';
     $this->client->expects($this->once())->method('send')->willReturn(null)->with($this->callback($callback), $this->equalTo(RiakMessageCodes::YOKOZUNA_SCHEMA_GET_REQ), $this->equalTo(RiakMessageCodes::YOKOZUNA_SCHEMA_GET_RESP));
     $this->assertInstanceOf('Riak\\Client\\Core\\Message\\Search\\GetSchemaResponse', $this->instance->send($request));
 }
 public function testDeleteMessageResponse()
 {
     $response = new DeleteIndexResponse();
     $request = new DeleteIndexRequest();
     $callback = function ($subject) {
         $this->assertInstanceOf('Riak\\Client\\ProtoBuf\\RpbYokozunaIndexDeleteReq', $subject);
         $this->assertEquals('index-name', $subject->name);
         return true;
     };
     $request->name = 'index-name';
     $this->client->expects($this->once())->method('send')->willReturn($response)->with($this->callback($callback), $this->equalTo(RiakMessageCodes::YOKOZUNA_INDEX_DELETE_REQ), $this->equalTo(RiakMessageCodes::DEL_RESP));
     $this->assertInstanceOf('Riak\\Client\\Core\\Message\\Search\\DeleteIndexResponse', $this->instance->send($request));
 }
Example #5
0
 public function testGetMessageResponse()
 {
     $request = new PutRequest();
     $callback = function ($subject) {
         $this->assertInstanceOf('Riak\\Client\\ProtoBuf\\RpbSetBucketReq', $subject);
         $this->assertInstanceOf('Riak\\Client\\ProtoBuf\\RpbBucketProps', $subject->props);
         $this->assertEquals('test_bucket', $subject->bucket);
         $this->assertEquals('default', $subject->type);
         return true;
     };
     $request->bucket = 'test_bucket';
     $request->type = 'default';
     $this->client->expects($this->once())->method('send')->with($this->callback($callback), $this->equalTo(RiakMessageCodes::SET_BUCKET_REQ), $this->equalTo(RiakMessageCodes::SET_BUCKET_RESP));
     $this->assertInstanceOf('Riak\\Client\\Core\\Message\\Bucket\\PutResponse', $this->instance->send($request));
 }
 public function testPutMessageResponse()
 {
     $rpbResp = new RpbPutResp();
     $request = new PutIndexRequest();
     $callback = function ($subject) {
         $this->assertInstanceOf('Riak\\Client\\ProtoBuf\\RpbYokozunaIndexPutReq', $subject);
         $this->assertInstanceOf('Riak\\Client\\ProtoBuf\\RpbYokozunaIndex', $subject->index);
         $this->assertEquals('schema-name', $subject->index->schema);
         $this->assertEquals('index-name', $subject->index->name);
         return true;
     };
     $request->name = 'index-name';
     $request->schema = 'schema-name';
     $this->client->expects($this->once())->method('send')->willReturn($rpbResp)->with($this->callback($callback), $this->equalTo(RiakMessageCodes::YOKOZUNA_INDEX_PUT_REQ), $this->equalTo(RiakMessageCodes::PUT_RESP));
     $this->assertInstanceOf('Riak\\Client\\Core\\Message\\Search\\PutIndexResponse', $this->instance->send($request));
 }
Example #7
0
 public function testGetMessageResponseMapValue()
 {
     $rpbDtVal = new DtValue();
     $rpbResp = new DtFetchResp();
     $request = new GetRequest();
     $callback = function ($subject) {
         $this->assertInstanceOf('Riak\\Client\\ProtoBuf\\DtFetchReq', $subject);
         $this->assertEquals('test_bucket', $subject->bucket);
         $this->assertEquals('default', $subject->type);
         $this->assertEquals('1', $subject->key);
         return true;
     };
     $request->bucket = 'test_bucket';
     $request->type = 'default';
     $request->key = '1';
     $mapEntryValue[0] = new MapEntry();
     $mapEntryValue[0]->setField(new MapField());
     $mapEntryValue[0]->field->setName('registerField');
     $mapEntryValue[0]->field->setType(MapFieldType::REGISTER);
     $mapEntryValue[0]->setRegisterValue('Register Val');
     $rpbDtVal->setMapValue($mapEntryValue);
     $rpbResp->setValue($rpbDtVal);
     $rpbResp->setType(DataType::MAP);
     $this->client->expects($this->once())->method('send')->willReturn($rpbResp)->with($this->callback($callback), $this->equalTo(RiakMessageCodes::DT_FETCH_REQ), $this->equalTo(RiakMessageCodes::DT_FETCH_RESP));
     $response = $this->instance->send($request);
     $this->assertInstanceOf('Riak\\Client\\Core\\Message\\DataType\\GetResponse', $response);
     $this->assertEquals(['registerField' => 'Register Val'], $response->value);
     $this->assertEquals('map', $response->type);
 }
 public function testMapRedMessageResponse()
 {
     $request = new MapReduceRequest();
     $mapred = '{"inputs":"test", "query":[{"link":{"bucket":"test"}},{"map":{"language":"javascript","name":"Riak.mapValuesJson"}}]}';
     $rpbStream = $this->getMock('Riak\\Client\\Core\\Transport\\Proto\\ProtoStream', [], [], '', false);
     $callback = function ($subject) use($mapred) {
         $this->assertInstanceOf('Riak\\Client\\ProtoBuf\\RpbMapRedReq', $subject);
         $this->assertEquals($mapred, $subject->request);
         return true;
     };
     $request->request = $mapred;
     $this->client->expects($this->once())->method('emit')->willReturn($rpbStream)->with($this->callback($callback), $this->equalTo(RiakMessageCodes::MAPRED_REQ));
     $result = $this->instance->send($request);
     $this->assertInstanceOf('Riak\\Client\\Core\\Message\\MapReduce\\MapReduceResponse', $result);
     $this->assertInstanceOf('Riak\\Client\\Core\\Transport\\Proto\\MapReduce\\ProtoMapReduceResponseIterator', $result->iterator);
 }
 public function testIndexQueryMessageResponse()
 {
     $request = new IndexQueryRequest();
     $rpbStream = $this->getMock('Riak\\Client\\Core\\Transport\\Proto\\ProtoStream', [], [], '', false);
     $callback = function ($subject) {
         $this->assertInstanceOf('Riak\\Client\\ProtoBuf\\RpbIndexReq', $subject);
         $this->assertEquals(IndexQueryType::range, $subject->qtype);
         $this->assertEquals('bucket', $subject->bucket);
         $this->assertEquals('type', $subject->type);
         $this->assertEquals('regex', $subject->term_regex);
         $this->assertEquals('index', $subject->index);
         $this->assertEquals('arg1', $subject->range_min);
         $this->assertEquals('arg2', $subject->range_max);
         $this->assertEquals(999, $subject->max_results);
         $this->assertEquals(true, $subject->return_terms);
         $this->assertEquals(true, $subject->pagination_sort);
         $this->assertEquals('continuation', $subject->continuation);
         return true;
     };
     $request->qtype = 'range';
     $request->rangeMin = 'arg1';
     $request->rangeMax = 'arg2';
     $request->type = 'type';
     $request->index = 'index';
     $request->bucket = 'bucket';
     $request->termRegex = 'regex';
     $request->continuation = 'continuation';
     $request->maxResults = 999;
     $request->returnTerms = true;
     $request->paginationSort = true;
     $this->client->expects($this->once())->method('emit')->willReturn($rpbStream)->with($this->callback($callback), $this->equalTo(RiakMessageCodes::INDEX_REQ));
     $result = $this->instance->send($request);
     $this->assertInstanceOf('Riak\\Client\\Core\\Message\\Index\\IndexQueryResponse', $result);
     $this->assertInstanceOf('Riak\\Client\\Core\\Transport\\Proto\\Index\\ProtoIndexQueryResponseIterator', $result->iterator);
 }
Example #10
0
 public function testSendDeleteRequest()
 {
     $request = new DeleteRequest();
     $callback = function ($subject) {
         $this->assertInstanceOf('Riak\\Client\\ProtoBuf\\RpbDelReq', $subject);
         $this->assertEquals('test_bucket', $subject->bucket);
         $this->assertEquals('default', $subject->type);
         $this->assertEquals('1', $subject->key);
         return true;
     };
     $this->client->expects($this->once())->method('send')->with($this->callback($callback), $this->equalTo(RiakMessageCodes::DEL_REQ), $this->equalTo(RiakMessageCodes::DEL_RESP));
     $request->bucket = 'test_bucket';
     $request->type = 'default';
     $request->key = '1';
     $this->assertInstanceOf('Riak\\Client\\Core\\Message\\Kv\\DeleteResponse', $this->instance->send($request));
 }
Example #11
0
 public function testGetMessageResponse()
 {
     $socket = $this->getMock('Riak\\Client\\Core\\Transport\\Proto\\ProtoStream', [], [], '', false);
     $request = new ListRequest();
     $callback = function ($subject) {
         $this->assertInstanceOf('Riak\\Client\\ProtoBuf\\RpbListBucketsReq', $subject);
         $this->assertEquals('bucket_type', $subject->type);
         $this->assertEquals(120, $subject->timeout);
         return true;
     };
     $request->timeout = 120;
     $request->type = 'bucket_type';
     $this->client->expects($this->once())->method('emit')->willReturn($socket)->with($this->callback($callback), $this->equalTo(RiakMessageCodes::LIST_BUCKETS_REQ));
     $response = $this->instance->send($request);
     $this->assertInstanceOf('Riak\\Client\\Core\\Message\\Bucket\\ListResponse', $response);
     $this->assertInstanceOf('Riak\\Client\\Core\\Transport\\Proto\\Bucket\\ProtoListResponseIterator', $response->iterator);
 }
 public function testSendGetMessage()
 {
     $rpbStream = $this->getMock('Riak\\Client\\Core\\Transport\\Proto\\ProtoStream', [], [], '', false);
     $request = new ListKeysRequest();
     $callback = function ($subject) {
         $this->assertInstanceOf('Riak\\Client\\ProtoBuf\\RpbListKeysReq', $subject);
         $this->assertEquals('test_bucket', $subject->bucket);
         $this->assertEquals('default', $subject->type);
         $this->assertEquals(120, $subject->timeout);
         return true;
     };
     $this->client->expects($this->once())->method('emit')->willReturn($rpbStream)->with($this->callback($callback), $this->equalTo(RiakMessageCodes::LIST_KEYS_REQ));
     $request->bucket = 'test_bucket';
     $request->type = 'default';
     $request->timeout = 120;
     $result = $this->instance->send($request);
     $this->assertInstanceOf('Riak\\Client\\Core\\Message\\Kv\\ListKeysResponse', $result);
     $this->assertInstanceOf('Iterator', $result->iterator);
 }
Example #13
0
 public function testSearchMessageResponseEnptyDocs()
 {
     $request = new SearchRequest();
     $callback = function ($subject) {
         $this->assertInstanceOf('Riak\\Client\\ProtoBuf\\RpbSearchQueryReq', $subject);
         $this->assertEquals('index-name', $subject->index);
         $this->assertEquals('name:Fabio*', $subject->q);
         return true;
     };
     $request->q = 'name:Fabio*';
     $request->index = 'index-name';
     $this->client->expects($this->once())->method('send')->willReturn(null)->with($this->callback($callback), $this->equalTo(RiakMessageCodes::SEARCH_QUERY_REQ), $this->equalTo(RiakMessageCodes::SEARCH_QUERY_RESP));
     $this->assertInstanceOf('Riak\\Client\\Core\\Message\\Search\\SearchResponse', $this->instance->send($request));
 }
 /**
  * @return \DrSlump\Protobuf\Message
  */
 protected function readNext()
 {
     return $this->client->receiveMessage($this->stream, $this->messageCode);
 }