/**
  * @author Martin Lonsky (martin@lonsky.net, +420 736 645876)
  */
 public function test_index_and_basic_search()
 {
     for ($i = 0; $i < 50; $i++) {
         $this->_client->getElasticSearchClient()->index(['index' => 'elasticsearchpredicate', 'type' => 'TestType', 'id' => $i + 1, 'body' => ['name' => 'test' . $i, 'test_param1' => $i % 2 !== 0 ? 1 : 0, 'test_param2' => $i % 2 === 0 ? 1 : 0, 'test_param3' => $i % 5 === 0 ? 1 : 0, 'range_param' => $i]]);
     }
     $this->_client->getElasticSearchClient()->indices()->refresh(['index' => 'elasticsearchpredicate']);
     $this->_client->getElasticSearchClient()->cluster()->health(['index' => 'elasticsearchpredicate', 'wait_for_status' => 'green', 'timeout' => '10s']);
     $_search = $this->_client->search('elasticsearchpredicate');
     $_search->limit(10);
     $_result = $_search->execute();
     $this->assertSame(10, count($_result['hits']['hits']));
     $_search->limit(10);
     $_search->offset(4);
     $_result = $_search->execute();
     $this->assertSame(10, count($_result['hits']['hits']));
     $_search->limit(10);
     $_search->offset(5);
     $_result = $_search->execute();
     $this->assertSame(0, count($_result['hits']['hits']));
     $_search->limit(50);
     $_search->offset(null);
     $_result = $_search->execute();
     $this->assertSame(50, count($_result['hits']['hits']));
     $_search = $this->_client->search('elasticsearchpredicate', 'TestType');
     $_search->limit(10);
     $_result = $_search->execute();
     $this->assertSame(10, count($_result['hits']['hits']));
     $_search->limit(10);
     $_search->offset(4);
     $_result = $_search->execute();
     $this->assertSame(10, count($_result['hits']['hits']));
     $_search->limit(10);
     $_search->offset(5);
     $_result = $_search->execute();
     $this->assertSame(0, count($_result['hits']['hits']));
     $_search->limit(50);
     $_search->offset(null);
     $_result = $_search->execute();
     $this->assertSame(50, count($_result['hits']['hits']));
 }