/** * @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(); }
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)); }
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)); }
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); }
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)); }
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); }
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); }