summaryrefslogtreecommitdiffstats
path: root/test/php/library/Director/Import/ImportSourceRestApiTest.php
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--test/php/library/Director/Import/ImportSourceRestApiTest.php29
1 files changed, 29 insertions, 0 deletions
diff --git a/test/php/library/Director/Import/ImportSourceRestApiTest.php b/test/php/library/Director/Import/ImportSourceRestApiTest.php
new file mode 100644
index 0000000..7bbce2d
--- /dev/null
+++ b/test/php/library/Director/Import/ImportSourceRestApiTest.php
@@ -0,0 +1,29 @@
+<?php
+
+namespace Tests\Icinga\Module\Director\Import;
+
+use Icinga\Module\Director\Import\ImportSourceRestApi;
+use Icinga\Module\Director\Test\BaseTestCase;
+
+class ImportSourceRestApiTest extends BaseTestCase
+{
+ public function testExtractProperty()
+ {
+ $examples = [
+ '' => json_decode('[{"name":"blau"}]'),
+ 'objects' => json_decode('{"objects":[{"name":"blau"}]}'),
+ 'results.objects.all' => json_decode('{"results":{"objects":{"all":[{"name":"blau"}]}}}'),
+ 'results\.objects.all' => json_decode('{"results.objects":{"all":[{"name":"blau"}]}}'),
+ ];
+
+ $source = new ImportSourceRestApi();
+
+ foreach ($examples as $property => $data) {
+ $source->setSettings(['extract_property' => $property]);
+ $result = static::callMethod($source, 'extractProperty', [$data]);
+
+ $this->assertCount(1, $result);
+ $this->assertArrayHasKey('name', (array) $result[0]);
+ }
+ }
+}