/** * */ public function testRegisterPluginsWithDifferentPrioritiesTestAndUnRegisterPlugin() { $this->client->setPluginManager(new PluginManager($this->client)); static::assertInstanceOf('\\frankmayer\\ArangoDbPhpCore\\Plugins\\PluginManager', $this->client->getPluginManager()); $tracer = new TestPlugin(); $tracer->priority = 0; $tracer2 = new TestPlugin(); $tracer2->priority = 20; $tracer3 = new TestPlugin(); $tracer3->priority = -30; $tracer4 = new TestPlugin(); $tracer4->priority = 20; $this->clientOptions['plugins'] = ['tracer1' => $tracer, 'tracer2' => $tracer2, 'tracer3' => $tracer3, 'tracer4' => $tracer4]; $this->client->setPluginsFromPluginArray($this->clientOptions['plugins']); static::assertArrayHasKey('tracer3', $this->client->pluginManager->pluginStorage); $e = null; try { $this->client->setPluginsFromPluginArray(['tracer5' => new \stdClass()]); } catch (\Exception $e) { } static::assertInstanceOf('\\Exception', $e); /** @var $responseObject HttpResponse */ $collection = new Collection($this->client); /** @var $responseObject HttpResponse */ $responseObject = $collection->getAll(); static::assertInstanceOf('frankmayer\\ArangoDbPhpCore\\Protocols\\Http\\HttpRequestInterface', $responseObject->request); }
public function testRegisterPluginsAndUnRegisterPlugins() { $this->client->setPluginManager(new PluginManager($this->client)); $this->assertInstanceOf('\\frankmayer\\ArangoDbPhpCore\\Plugins\\PluginManager', $this->client->getPluginManager()); $tracer = new TestPlugin(); $tracer->priority = 0; $tracer2 = new TestPlugin(); $tracer2->priority = 20; $tracer3 = new TestPlugin(); $tracer3->priority = -30; $tracer4 = new TestPlugin(); $tracer4->priority = 20; $this->clientOptions['plugins'] = ['tracer1' => $tracer, 'tracer2' => $tracer2, 'tracer3' => $tracer3, 'tracer4' => $tracer4]; $this->client->setPluginsFromPluginArray($this->clientOptions['plugins']); $this->assertArrayHasKey('tracer1', $this->client->pluginManager->pluginStorage); $this->assertArrayHasKey('tracer2', $this->client->pluginManager->pluginStorage); $this->assertArrayHasKey('tracer3', $this->client->pluginManager->pluginStorage); $this->assertArrayHasKey('tracer4', $this->client->pluginManager->pluginStorage); $keys = array_keys($this->client->pluginManager->pluginStorage); $this->assertSame($this->client->pluginManager->pluginStorage[$keys[2]], $this->client->pluginManager->pluginStorage['tracer1']); $this->assertSame($this->client->pluginManager->pluginStorage[$keys[3]], $this->client->pluginManager->pluginStorage['tracer3']); $this->client->pluginManager->removePluginInstance('tracer1'); $this->client->pluginManager->removePluginInstance('tracer2'); $this->client->pluginManager->removePluginInstance('tracer3'); $this->client->pluginManager->removePluginInstance('tracer4'); $this->assertArrayNotHasKey('tracer1', $this->client->pluginManager->pluginStorage); $this->assertArrayNotHasKey('tracer2', $this->client->pluginManager->pluginStorage); $this->assertArrayNotHasKey('tracer3', $this->client->pluginManager->pluginStorage); $this->assertArrayNotHasKey('tracer4', $this->client->pluginManager->pluginStorage); }
/** * */ public function testSetGetPluginManager() { $client = new Client($this->connector, getClientOptions()); $pluginManager = new PluginManager($client); $client->setPluginManager($pluginManager); $this->assertEquals($pluginManager, $client->getPluginManager()); }