public function testBulkCreateTwice() { $this->createIndex(); $doc1 = array('name' => 'test1' . rand(100, 10000), 'value' => 'myTestVal' . rand(100, 10000)); $doc2 = array('name' => 'test2' . rand(100, 10000), 'value' => 'myTestVal' . rand(100, 10000)); $doc3 = array('name' => 'test3' . rand(100, 10000), 'value' => 'myTestVal' . rand(100, 10000)); $allDocs = [$doc1, $doc2, $doc3]; $bulkIndexRequest = new BulkIndexRequest(ES_INDEX, self::TYPE, $this->getSerializer()); $bulkIndexRequest->addDocument($doc1, 'doc1'); $bulkIndexRequest->addDocument($doc2, 'doc2'); $bulkIndexRequest->addDocument($doc3, 'doc3'); /** @var BulkResponse $response */ $response = $this->getClient()->send($bulkIndexRequest); $this->assertGreaterThanOrEqual(0, $response->took()); $this->assertFalse($response->errors()); $items = $response->getItems(); $this->assertTrue(is_array($items)); $this->assertCount(3, $items); foreach ($items as $key => $item) { $this->assertArrayHasKey(AbstractBulkIndexRequest::BULK_ACTION, $item); $this->assertSame(ES_INDEX, $item[AbstractBulkIndexRequest::BULK_ACTION]['_index']); $this->assertSame(self::TYPE, $item[AbstractBulkIndexRequest::BULK_ACTION]['_type']); $this->assertSame(1, $item[AbstractBulkIndexRequest::BULK_ACTION]['_version']); $this->assertSame(201, $item[AbstractBulkIndexRequest::BULK_ACTION]['status']); $doc = $this->getDocument(ES_INDEX, self::TYPE, $item[AbstractBulkIndexRequest::BULK_ACTION]['_id']); $this->assertEquals($allDocs[$key], $doc); } }
public function testAddAction() { $id = 'my-id'; $doc = array('my' => 'doc'); $serializedDoc = 'my-doc'; $action = array(AbstractBulkIndexRequest::BULK_ACTION => array('_id' => $id, '_index' => self::INDEX, '_type' => self::TYPE)); $this->serializer->expects($this->once())->method('serialize')->with($doc, array())->willReturn($serializedDoc); $this->request->addDocument($doc, $id); $expected = json_encode($action) . AbstractBulkIndexRequest::LINE_BREAK . $serializedDoc . AbstractBulkIndexRequest::LINE_BREAK; $result = $this->request->getBody(); $this->assertSame($expected, $result); }