Viewing File: /opt/alt/tests/alt-php80-pecl-scoutapm_1.10.0-1.el8/tests/017-elastic-7-support.phpt
--TEST--
Elasticsearch userland functions are supported
--SKIPIF--
<?php
if (!extension_loaded("scoutapm")) die("skip scoutapm extension required.");
if (!extension_loaded("curl")) die("skip Elasticsearch needs the curl extension.");
if (shell_exec("which composer") === null) die("skip composer not found in path.");
$out = null;
$result = null;
exec("mkdir -p /tmp/scout_elastic_test && cd /tmp/scout_elastic_test && composer require -n elasticsearch/elasticsearch:^7.1", $out, $result);
if ($result !== 0) {
die("skip composer failed: " . implode(", ", $out));
}
if (!getenv('CI')) {
require "/tmp/scout_elastic_test/vendor/autoload.php";
// Check Elasticsearch is running & can connect to it
// Run with: docker run --rm --name elasticsearch -p 9200:9200 -e discovery.type=single-node -d elasticsearch:7.13.1
$client = \Elasticsearch\ClientBuilder::create()->build();
try {
$client->search([]);
} catch (\Elasticsearch\Common\Exceptions\NoNodesAvailableException $e) {
die("skip " . $e->getMessage());
}
}
?>
--FILE--
<?php
echo implode("\n", array_intersect(
[
'Elasticsearch\Client->index',
'Elasticsearch\Client->get',
'Elasticsearch\Client->search',
'Elasticsearch\Client->delete',
],
scoutapm_list_instrumented_functions()
)) . "\n";
scoutapm_enable_instrumentation(true);
require "/tmp/scout_elastic_test/vendor/autoload.php";
$client = \Elasticsearch\ClientBuilder::create()->build();
$client->index(['index' => 'my_index', 'id' => 'my_id', 'body' => ['testField' => 'abc']]);
$client->get(['index' => 'my_index', 'id' => 'my_id']);
$client->search(['index' => 'my_index', 'body' => ['query' => ['match' => ['testField' => 'abc']]]]);
$client->delete(['index' => 'my_index', 'id' => 'my_id']);
$calls = scoutapm_get_calls();
var_dump(array_column($calls, 'function'));
?>
--CLEAN--
<?php
shell_exec("rm -Rf /tmp/scout_elastic_test");
?>
--EXPECTF--
Elasticsearch\Client->index
Elasticsearch\Client->get
Elasticsearch\Client->search
Elasticsearch\Client->delete
array(%d) {
[%d]=>
string(%d) "Elasticsearch\Client->index"
[%d]=>
string(%d) "Elasticsearch\Client->get"
[%d]=>
string(%d) "Elasticsearch\Client->search"
[%d]=>
string(%d) "Elasticsearch\Client->delete"
}
Back to Directory
File Manager
<