From c034a5eff8fb558c19d65456fada6175d7d68b3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jannis=20Mo=C3=9Fhammer?= Date: Tue, 15 Oct 2013 20:21:40 +0200 Subject: [PATCH] Fix tests and a few member access issues refs #3801 --- library/Icinga/Protocol/AbstractQuery.php | 129 ------------------ library/Icinga/Protocol/Statusdat/Query.php | 35 +++-- .../Backend/Ido/Query/AllcontactsQuery.php | 2 +- .../Backend/Ido/Query/ServicestatusQuery.php | 2 +- .../Backend/Statusdat/Query/Query.php | 22 ++- .../controllers/ListControllerHostTest.php | 2 +- .../controllers/ListControllerServiceTest.php | 2 +- .../ServicegroupsummaryQueryTest.php | 5 +- .../php/library/Filter/UrlViewFilterTest.php | 14 +- .../php/testlib/MonitoringControllerTest.php | 7 +- .../Protocol/Livestatus/ConnectionTest.php | 33 ----- .../Icinga/Protocol/Statusdat/QueryTest.php | 2 +- .../Statusdat/StatusdatTestLoader.php | 3 +- .../Paginator/Adapter/QueryAdapterTest.php | 6 +- .../ScrollingStyle/SlidingWithBorderTest.php | 3 - 15 files changed, 74 insertions(+), 193 deletions(-) delete mode 100755 library/Icinga/Protocol/AbstractQuery.php delete mode 100755 test/php/library/Icinga/Protocol/Livestatus/ConnectionTest.php diff --git a/library/Icinga/Protocol/AbstractQuery.php b/library/Icinga/Protocol/AbstractQuery.php deleted file mode 100755 index af5578ba1..000000000 --- a/library/Icinga/Protocol/AbstractQuery.php +++ /dev/null @@ -1,129 +0,0 @@ - - * @license http://www.gnu.org/licenses/gpl-2.0.txt GPL, version 2 - * @author Icinga Development Team - */ -// {{{ICINGA_LICENSE_HEADER}}} - -namespace Icinga\Protocol; - -/** - * Class BaseQuery - * @package Icinga\Protocol - */ -abstract class AbstractQuery -{ - /** - * - */ - const SORT_ASC = 1; - - /** - * - */ - const SORT_DESC = -1; - - /** - * @param $key - * @param null $val - * @return mixed - */ - abstract public function where($key, $val = null); - - /** - * @param $col - * @return mixed - */ - abstract public function order($col); - - /** - * @param null $count - * @param null $offset - * @return mixed - */ - abstract public function limit($count = null, $offset = null); - - /** - * @param $table - * @param null $columns - * @return mixed - */ - abstract public function from($table, $columns = null); - - /** - * @return bool - */ - public function hasOrder() - { - return false; - } - - /** - * @return bool - */ - public function hasColumns() - { - return false; - } - - /** - * @return array - */ - public function getColumns() - { - return array(); - } - - /** - * @return bool - */ - public function hasLimit() - { - return false; - } - - /** - * @return bool - */ - public function hasOffset() - { - return false; - } - - /** - * @return null - */ - public function getLimit() - { - return null; - } - - /** - * @return null - */ - public function getOffset() - { - return null; - } -} diff --git a/library/Icinga/Protocol/Statusdat/Query.php b/library/Icinga/Protocol/Statusdat/Query.php index aad77414c..cec76996b 100755 --- a/library/Icinga/Protocol/Statusdat/Query.php +++ b/library/Icinga/Protocol/Statusdat/Query.php @@ -28,6 +28,9 @@ namespace Icinga\Protocol\Statusdat; +use Icinga\Data\Optional; +use Icinga\Data\The; +use Icinga\Filter\Query\Node; use Icinga\Protocol; use Icinga\Data\BaseQuery; @@ -116,17 +119,11 @@ class Query extends BaseQuery */ public function hasColumns() { - return !empty($this->columns); + $columns = $this->getColumns(); + return !empty($columns); } - /** - * @return array - */ - public function getColumns() - { - return $this->columns; - } /** * @return bool @@ -222,13 +219,14 @@ class Query extends BaseQuery return $this; } + /** * @param $table * @param null $columns * @return $this * @throws \Exception */ - public function from($table, $columns = null) + public function from($table, array $attributes = null) { if (isset(self::$VALID_TARGETS[$table])) { $this->source = $table; @@ -396,4 +394,23 @@ class Query extends BaseQuery } return $result; } + + /** + * Parse a backend specific filter expression and return a Query\Node object + * + * @param $expression The expression to parse + * @param $parameters Optional parameters for the expression + * @return Node A query node or null if it's an invalid expression + */ + protected function parseFilterExpression($expression, $parameters = null) + { + // TODO: Implement parseFilterExpression() method. + } + + public function applyFilter() + { + // TODO: Implement applyFilter() method. + } + + } diff --git a/modules/monitoring/library/Monitoring/Backend/Ido/Query/AllcontactsQuery.php b/modules/monitoring/library/Monitoring/Backend/Ido/Query/AllcontactsQuery.php index b38d4e188..e844db3d4 100644 --- a/modules/monitoring/library/Monitoring/Backend/Ido/Query/AllcontactsQuery.php +++ b/modules/monitoring/library/Monitoring/Backend/Ido/Query/AllcontactsQuery.php @@ -41,7 +41,7 @@ class AllcontactsQuery extends IdoQuery protected $contactgroups; protected $useSubqueryCount = true; - protected function requireColumn($alias) + public function requireColumn($alias) { $this->contacts->addColumn($alias); $this->contactgroups->addColumn($alias); diff --git a/modules/monitoring/library/Monitoring/Backend/Ido/Query/ServicestatusQuery.php b/modules/monitoring/library/Monitoring/Backend/Ido/Query/ServicestatusQuery.php index 2953b64b2..2c8d4ac43 100644 --- a/modules/monitoring/library/Monitoring/Backend/Ido/Query/ServicestatusQuery.php +++ b/modules/monitoring/library/Monitoring/Backend/Ido/Query/ServicestatusQuery.php @@ -46,7 +46,7 @@ class ServicestatusQuery extends IdoQuery ) ); - protected function getDefaultColumns() + public function getDefaultColumns() { return $this->columnMap['services'] + $this->columnMap['servicestatus']; diff --git a/modules/monitoring/library/Monitoring/Backend/Statusdat/Query/Query.php b/modules/monitoring/library/Monitoring/Backend/Statusdat/Query/Query.php index beb5fe790..a104a5641 100644 --- a/modules/monitoring/library/Monitoring/Backend/Statusdat/Query/Query.php +++ b/modules/monitoring/library/Monitoring/Backend/Statusdat/Query/Query.php @@ -28,6 +28,9 @@ namespace Icinga\Module\Monitoring\Backend\Statusdat\Query; +use Icinga\Data\Optional; +use Icinga\Data\The; +use Icinga\Filter\Query\Node; use Icinga\Filter\Query\Tree; use Icinga\Protocol\Statusdat; use Icinga\Exception; @@ -299,9 +302,26 @@ abstract class Query extends BaseQuery implements Filterable // TODO: Implement getMappedField() method. } - public function applyFilter(Tree $filter) + public function applyFilter() { // TODO: Implement applyFilter() method. } + + /** + * Parse a backend specific filter expression and return a Query\Node object + * + * @param $expression The expression to parse + * @param $parameters Optional parameters for the expression + * @return Node A query node or null if it's an invalid expression + */ + protected function parseFilterExpression($expression, $parameters = null) + { + // TODO: Implement parseFilterExpression() method. + } + + + + + } diff --git a/modules/monitoring/test/php/application/controllers/ListControllerHostTest.php b/modules/monitoring/test/php/application/controllers/ListControllerHostTest.php index 071bb7c87..db1e4f361 100644 --- a/modules/monitoring/test/php/application/controllers/ListControllerHostTest.php +++ b/modules/monitoring/test/php/application/controllers/ListControllerHostTest.php @@ -8,7 +8,7 @@ require_once realpath(__DIR__ . '/../../../../../../library/Icinga/Test/BaseTest use Icinga\Test\BaseTestCase; require_once(realpath(BaseTestCase::$moduleDir . '/monitoring/test/php/testlib/MonitoringControllerTest.php')); -require_once(realpath(BaseTestCase::$moduleDir . '/monitoring/library/Monitoring/Filter/Backend/TreeToSqlParser.php); +require_once(realpath(BaseTestCase::$libDir . '/Data/Db/TreeToSqlParser.php')); require_once(realpath(BaseTestCase::$moduleDir . '/monitoring/library/Monitoring/DataView/DataView.php')); require_once(realpath(BaseTestCase::$moduleDir . '/monitoring/library/Monitoring/DataView/HostStatus.php')); require_once(realpath(BaseTestCase::$moduleDir . '/monitoring/library/Monitoring/DataView/Notification.php')); diff --git a/modules/monitoring/test/php/application/controllers/ListControllerServiceTest.php b/modules/monitoring/test/php/application/controllers/ListControllerServiceTest.php index c5ce2542b..f22e52c61 100644 --- a/modules/monitoring/test/php/application/controllers/ListControllerServiceTest.php +++ b/modules/monitoring/test/php/application/controllers/ListControllerServiceTest.php @@ -7,7 +7,7 @@ use Icinga\Test\BaseTestCase; require_once realpath(__DIR__ . '/../../../../../../library/Icinga/Test/BaseTestCase.php'); require_once(realpath(BaseTestCase::$moduleDir . '/monitoring/test/php/testlib/MonitoringControllerTest.php')); -require_once(realpath(BaseTestCase::$moduleDir . '/monitoring/library/Monitoring/Filter/Backend/TreeToSqlParser.php); +require_once(realpath(BaseTestCase::$libDir . '/Data/Db/TreeToSqlParser.php')); require_once(realpath(BaseTestCase::$moduleDir . '/monitoring/library/Monitoring/DataView/DataView.php')); require_once(realpath(BaseTestCase::$moduleDir . '/monitoring/library/Monitoring/DataView/ServiceStatus.php')); require_once(realpath(BaseTestCase::$moduleDir . '/monitoring/library/Monitoring/DataView/Notification.php')); diff --git a/modules/monitoring/test/php/library/Backend/Statusdat/ServicegroupsummaryQueryTest.php b/modules/monitoring/test/php/library/Backend/Statusdat/ServicegroupsummaryQueryTest.php index cabef2750..547a4480d 100644 --- a/modules/monitoring/test/php/library/Backend/Statusdat/ServicegroupsummaryQueryTest.php +++ b/modules/monitoring/test/php/library/Backend/Statusdat/ServicegroupsummaryQueryTest.php @@ -2,6 +2,7 @@ namespace Tests\Monitoring\Backend\Statusdat; +use Icinga\Data\DatasourceInterface; use Zend_Config; use Tests\Icinga\Protocol\Statusdat\ReaderMock as ReaderMock; use \Icinga\Module\Monitoring\Backend\Statusdat\Query\ServicegroupsummaryQuery; @@ -14,7 +15,7 @@ StatusdatTestLoader::requireLibrary(); require_once(realpath($base."/library/Monitoring/Backend/Statusdat/Query/GroupsummaryQuery.php")); require_once(realpath($base."/library/Monitoring/Backend/Statusdat/Query/ServicegroupsummaryQuery.php")); -class BackendMock extends \Icinga\Module\Monitoring\Backend\AbstractBackend +class BackendMock implements DatasourceInterface { public $reader; @@ -37,7 +38,7 @@ class ServicegroupsummaryqueryTest extends \PHPUnit_Framework_TestCase $backendConfig = new Zend_Config( array() ); - $backend = new BackendMock($backendConfig); + $backend = new BackendMock(); $backend->setReader($this->getTestDataset()); $q = new ServicegroupsummaryQuery($backend); $indices = array( diff --git a/modules/monitoring/test/php/library/Filter/UrlViewFilterTest.php b/modules/monitoring/test/php/library/Filter/UrlViewFilterTest.php index e52c56ee2..ddfe781e9 100644 --- a/modules/monitoring/test/php/library/Filter/UrlViewFilterTest.php +++ b/modules/monitoring/test/php/library/Filter/UrlViewFilterTest.php @@ -64,11 +64,21 @@ class FilterMock implements Filterable return $field; } - public function applyFilter(Tree $filter) + public function applyFilter() { return true; } + public function clearFilter() + { + // TODO: Implement clearFilter() method. + } + + public function addFilter($filter) + { + // TODO: Implement addFilter() method. + } + } @@ -104,7 +114,7 @@ class UrlViewFilterTest extends BaseTestCase $filterFactory = new UrlViewFilter(new FilterMock()); $uri = $filterFactory->fromTree($tree); $this->assertEquals( - 'attr1!=Hans+wurst|attr2=%2Asomething%2A&attr3=%2Abla|attr4=1&host_last_state_change>=yesterday&attr5=0', + 'attr1!=Hans+wurst|attr2=%2Asomething%2A&attr3=bla%2A|attr4=1&host_last_state_change>=yesterday&attr5=0', $uri, 'Assert a correct query to be returned when parsing a more complex query ("'. $query .'")' ); diff --git a/modules/monitoring/test/php/testlib/MonitoringControllerTest.php b/modules/monitoring/test/php/testlib/MonitoringControllerTest.php index c34153665..83821d36d 100644 --- a/modules/monitoring/test/php/testlib/MonitoringControllerTest.php +++ b/modules/monitoring/test/php/testlib/MonitoringControllerTest.php @@ -164,8 +164,8 @@ abstract class MonitoringControllerTest extends Zend_Test_PHPUnit_ControllerTest require_once('Web/Widget/SortBox.php'); require_once('Web/Widget/FilterBox.php'); require_once('Web/Widget/FilterBadgeRenderer.php'); - require_once('library/Monitoring/Backend/AbstractBackend.php'); require_once('library/Monitoring/Backend.php'); + require_once('library/Monitoring/Controller.php'); } @@ -176,6 +176,7 @@ abstract class MonitoringControllerTest extends Zend_Test_PHPUnit_ControllerTest private function requireIDOQueries() { require_once('Application/DbAdapterFactory.php'); + require_once('library/Monitoring/Backend/Ido/Query/IdoQuery.php'); $this->requireFolder('library/Monitoring/Backend/Ido/Query'); } @@ -207,7 +208,6 @@ abstract class MonitoringControllerTest extends Zend_Test_PHPUnit_ControllerTest $this->requireFolder('library/Monitoring/Backend/Statusdat/Criteria'); $this->requireFolder('library/Monitoring/Backend/Statusdat/Query'); $this->requireFolder('library/Monitoring/Backend/Statusdat/DataView'); - $this->requireFolder('library/Monitoring/Backend/Statusdat/DataView'); } /** @@ -216,8 +216,7 @@ abstract class MonitoringControllerTest extends Zend_Test_PHPUnit_ControllerTest private function requireViews() { $module = $this->moduleDir; - require_once($module.'library/Monitoring/View/AbstractView.php'); - $this->requireFolder('library/Monitoring/View/'); + } /** diff --git a/test/php/library/Icinga/Protocol/Livestatus/ConnectionTest.php b/test/php/library/Icinga/Protocol/Livestatus/ConnectionTest.php deleted file mode 100755 index 831de73c2..000000000 --- a/test/php/library/Icinga/Protocol/Livestatus/ConnectionTest.php +++ /dev/null @@ -1,33 +0,0 @@ -assertTrue($connection->select() instanceof Query); - unlink($socket); - } - -} diff --git a/test/php/library/Icinga/Protocol/Statusdat/QueryTest.php b/test/php/library/Icinga/Protocol/Statusdat/QueryTest.php index c1987eff4..f0428bf39 100755 --- a/test/php/library/Icinga/Protocol/Statusdat/QueryTest.php +++ b/test/php/library/Icinga/Protocol/Statusdat/QueryTest.php @@ -1,7 +1,7 @@