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); }