diff options
author | Kore Nordmann <github@kore-nordmann.de> | 2007-05-03 07:38:25 +0000 |
---|---|---|
committer | Kore Nordmann <github@kore-nordmann.de> | 2007-05-03 07:38:25 +0000 |
commit | 060e4cc112feeedeaf76f1c71fe221a45e8c3246 (patch) | |
tree | 051a06faf0b019666e3c5210f63ff5af407d49cc | |
parent | 45dc0d77c5585a51bb04ef21bdc83792ef0d622a (diff) | |
download | zetacomponents-graph-060e4cc112feeedeaf76f1c71fe221a45e8c3246.zip zetacomponents-graph-060e4cc112feeedeaf76f1c71fe221a45e8c3246.tar.gz |
- Removed PdoDataset from Graph components
# Preparation for issue #10697: Move ezcGraphPdoDataSet to a
# ezcGraphDatabaseTieIn
-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | src/datasets/pdo.php | 138 | ||||
-rw-r--r-- | src/element/axis.php | 2 | ||||
-rw-r--r-- | src/exceptions/missing_column.php | 24 | ||||
-rw-r--r-- | src/exceptions/statement_not_executed.php | 24 | ||||
-rw-r--r-- | src/exceptions/too_many_columns.php | 26 | ||||
-rw-r--r-- | src/graph_autoload.php | 4 | ||||
-rw-r--r-- | tests/dataset_pdo_test.php | 355 | ||||
-rw-r--r-- | tests/suite.php | 2 |
9 files changed, 1 insertions, 575 deletions
@@ -25,7 +25,6 @@ images in ezcGraphTools - Added feature #9404: Add spport for rotated texts on axis. - Fixed issue #10536: Bar side polygones are drawn at the wrong side. -- Fixed issue #10584: API Doc for ezcGraphPdoDataSet::createFromPdo() is wrong - Fixed issue #10599: Pie chart label formattig callback only accepts callback functions but neither static nor non static methods. - Added feature #10470: Add support for format callback functions on all axis diff --git a/src/datasets/pdo.php b/src/datasets/pdo.php deleted file mode 100644 index 0da65bd..0000000 --- a/src/datasets/pdo.php +++ /dev/null @@ -1,138 +0,0 @@ -<?php -/** - * File containing the ezcGraphPdoDataSet class - * - * @package Graph - * @version //autogentag// - * @copyright Copyright (C) 2005-2007 eZ systems as. All rights reserved. - * @license http://ez.no/licenses/new_bsd New BSD License - */ -/** - * Class to transform PDO results into ezcGraphDataSets - * - * @package Graph - * @mainclass - */ -class ezcGraphPdoDataSet extends ezcGraphDataSet -{ - /** - * Constructor - * - * Creates a ezcGraphPdoDataSet from a PDOStatement and uses the columns - * defined in the definition array as keys and values for the data set. - * - * If the definition array is empty a single column will be used as values, - * with two columns the first column will be used for the keys and the - * second for the data set values. - * - * You may define the name of the rows used for keys and values by using - * an array like: - * array ( - * ezcGraph::KEY => 'row name', - * ezcGraph::VALUE => 'row name', - * ); - * - * @param PDOStatement $statement - * @param array $definition - * @return ezcGraphPdoDataSet - */ - public function __construct( PDOStatement $statement, array $definition = null ) - { - parent::__construct(); - - $this->data = array(); - $this->createFromPdo( $statement, $definition ); - } - - /** - * Create dataset from PDO statement - * - * This methods uses the values from a PDOStatement to fill up the data - * sets data. - * - * If the definition array is empty a single column will be used as values, - * with two columns the first column will be used for the keys and the - * second for the data set values. - * - * You may define the name of the rows used for keys and values by using - * an array like: - * array ( - * ezcGraph::KEY => 'row name', - * ezcGraph::VALUE => 'row name', - * ); - * - * @param PDOStatement $statement - * @param array $definition - * @return void - */ - protected function createFromPdo( PDOStatement $statement, array $definition = null ) - { - $count = 0; - - if ( $definition === null ) - { - while ( $row = $statement->fetch( PDO::FETCH_NUM ) ) - { - ++$count; - - switch ( count( $row ) ) - { - case 1: - $this->data[] = $row[0]; - break; - case 2: - $this->data[$row[0]] = $row[1]; - break; - default: - throw new ezcGraphPdoDataSetTooManyColumnsException( $row ); - } - } - } - else - { - while ( $row = $statement->fetch( PDO::FETCH_NAMED ) ) - { - ++$count; - - if ( !array_key_exists( $definition[ezcGraph::VALUE], $row ) ) - { - throw new ezcGraphPdoDataSetMissingColumnException( $definition[ezcGraph::VALUE] ); - } - - $value = $row[$definition[ezcGraph::VALUE]]; - - if ( array_key_exists( ezcGraph::KEY, $definition ) ) - { - if ( !array_key_exists( $definition[ezcGraph::KEY], $row ) ) - { - throw new ezcGraphPdoDataSetMissingColumnException( $definition[ezcGraph::KEY] ); - } - - $this->data[$row[$definition[ezcGraph::KEY]]] = $value; - } - else - { - $this->data[] = $value; - } - } - } - - // Empty result set - if ( $count <= 0 ) - { - throw new ezcGraphPdoDataSetStatementNotExecutedException( $statement ); - } - } - - /** - * Returns the number of elements in this dataset - * - * @return int - */ - public function count() - { - return count( $this->data ); - } -} - -?> diff --git a/src/element/axis.php b/src/element/axis.php index d14431d..0362481 100644 --- a/src/element/axis.php +++ b/src/element/axis.php @@ -38,7 +38,7 @@ * @property ezcGraphAxisLabelRenderer $axisLabelRenderer * AxisLabelRenderer used to render labels and grid on this axis. * @property callback $labelCallback - * Callback function to format pie chart labels. + * Callback function to format chart labels. * Function will receive two parameters and should return a * reformatted label. * string function( label, step ) diff --git a/src/exceptions/missing_column.php b/src/exceptions/missing_column.php deleted file mode 100644 index 11c8bdc..0000000 --- a/src/exceptions/missing_column.php +++ /dev/null @@ -1,24 +0,0 @@ -<?php -/** - * File containing the ezcGraphPdoDataSetMissingColumnException class - * - * @package Graph - * @version //autogen// - * @copyright Copyright (C) 2005-2007 eZ systems as. All rights reserved. - * @license http://ez.no/licenses/new_bsd New BSD License - */ -/** - * Exception thrown if a requetsted column could not be found in result set - * - * @package Graph - * @version //autogen// - */ -class ezcGraphPdoDataSetMissingColumnException extends ezcGraphException -{ - public function __construct( $column ) - { - parent::__construct( "Missing column '{$column}' in result set." ); - } -} - -?> diff --git a/src/exceptions/statement_not_executed.php b/src/exceptions/statement_not_executed.php deleted file mode 100644 index 2cbba5f..0000000 --- a/src/exceptions/statement_not_executed.php +++ /dev/null @@ -1,24 +0,0 @@ -<?php -/** - * File containing the ezcGraphPdoDataSetStatementNotExecutedException class - * - * @package Graph - * @version //autogen// - * @copyright Copyright (C) 2005-2007 eZ systems as. All rights reserved. - * @license http://ez.no/licenses/new_bsd New BSD License - */ -/** - * Exception thrown if a given statement has not been executed. - * - * @package Graph - * @version //autogen// - */ -class ezcGraphPdoDataSetStatementNotExecutedException extends ezcGraphException -{ - public function __construct( $statement ) - { - parent::__construct( "Empty result set. Execute the statement before using with ezcGraphPdoDataSet." ); - } -} - -?> diff --git a/src/exceptions/too_many_columns.php b/src/exceptions/too_many_columns.php deleted file mode 100644 index 3aa5b8d..0000000 --- a/src/exceptions/too_many_columns.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * File containing the ezcGraphPdoDataSetTooManyColumnsException class - * - * @package Graph - * @version //autogen// - * @copyright Copyright (C) 2005-2007 eZ systems as. All rights reserved. - * @license http://ez.no/licenses/new_bsd New BSD License - */ -/** - * Exception thrown if a data set has too many columns for a key value - * association. - * - * @package Graph - * @version //autogen// - */ -class ezcGraphPdoDataSetTooManyColumnsException extends ezcGraphException -{ - public function __construct( $row ) - { - $columnCount = count( $row ); - parent::__construct( "'{$columnCount}' columns are too many in a result." ); - } -} - -?> diff --git a/src/graph_autoload.php b/src/graph_autoload.php index afe18c7..66c9e78 100644 --- a/src/graph_autoload.php +++ b/src/graph_autoload.php @@ -95,10 +95,6 @@ return array( 'ezcGraphDataSet' => 'Graph/datasets/base.php', 'ezcGraphArrayDataSet' => 'Graph/datasets/array.php', 'ezcGraphInvalidArrayDataSourceException' => 'Graph/exceptions/invalid_data_source.php', - 'ezcGraphPdoDataSet' => 'Graph/datasets/pdo.php', - 'ezcGraphPdoDataSetTooManyColumnsException' => 'Graph/exceptions/too_many_columns.php', - 'ezcGraphPdoDataSetMissingColumnException' => 'Graph/exceptions/missing_column.php', - 'ezcGraphPdoDataSetStatementNotExecutedException' => 'Graph/exceptions/statement_not_executed.php', 'ezcGraphNumericDataSet' => 'Graph/datasets/numeric.php', 'ezcGraphDataSetAveragePolynom' => 'Graph/datasets/average.php', 'ezcGraphDatasetAverageInvalidKeysException' => 'Graph/exceptions/invalid_keys.php', diff --git a/tests/dataset_pdo_test.php b/tests/dataset_pdo_test.php deleted file mode 100644 index 8c42012..0000000 --- a/tests/dataset_pdo_test.php +++ /dev/null @@ -1,355 +0,0 @@ -<?php -/** - * ezcGraphPdoDataSetTest - * - * @package Graph - * @version //autogen// - * @subpackage Tests - * @copyright Copyright (C) 2005-2007 eZ systems as. All rights reserved. - * @license http://ez.no/licenses/new_bsd New BSD License - */ - -require_once dirname( __FILE__ ) . '/test_case.php'; - -/** - * Tests for ezcGraph class. - * - * @package ImageAnalysis - * @subpackage Tests - */ -class ezcGraphPdoDataSetTest extends ezcGraphTestCase -{ - protected $basePath; - - protected $tempDir; - - public static function suite() - { - return new PHPUnit_Framework_TestSuite( "ezcGraphPdoDataSetTest" ); - } - - protected function setUp() - { - static $i = 0; - $this->tempDir = $this->createTempDir( __CLASS__ . sprintf( '_%03d_', ++$i ) ) . '/'; - $this->basePath = dirname( __FILE__ ) . '/data/'; - - // Try to build up database connection - try - { - $db = ezcDbInstance::get(); - } - catch ( Exception $e ) - { - $this->markTestSkipped( 'Database connection required for PDO statement tests.' ); - } - - $this->q = new ezcQueryInsert( $db ); - try - { - $db->exec( 'DROP TABLE graph_pdo_test' ); - } - catch ( Exception $e ) {} // eat - - // Create test table - $db->exec( 'CREATE TABLE graph_pdo_test ( id INT, browser VARCHAR(255), hits INT )' ); - - // Insert some data - $db->exec( "INSERT INTO graph_pdo_test VALUES ( '', 'Firefox', 2567 )" ); - $db->exec( "INSERT INTO graph_pdo_test VALUES ( '', 'Opera', 543 )" ); - $db->exec( "INSERT INTO graph_pdo_test VALUES ( '', 'Safari', 23 )" ); - $db->exec( "INSERT INTO graph_pdo_test VALUES ( '', 'Konquror', 812 )" ); - $db->exec( "INSERT INTO graph_pdo_test VALUES ( '', 'Lynx', 431 )" ); - $db->exec( "INSERT INTO graph_pdo_test VALUES ( '', 'wget', 912 )" ); - } - - protected function tearDown() - { - if ( !$this->hasFailed() ) - { - $this->removeTempDir(); - } - - $db = ezcDbInstance::get(); - $db->exec( 'DROP TABLE graph_pdo_test' ); - } - - public function testAutomaticDataSetUsage() - { - $db = ezcDbInstance::get(); - - $statement = $db->prepare( 'SELECT browser, hits FROM graph_pdo_test' ); - $statement->execute(); - - $dataset = new ezcGraphPdoDataSet( $statement ); - - $dataSetArray = array( - 'Firefox' => 2567, - 'Opera' => 543, - 'Safari' => 23, - 'Konquror' => 812, - 'Lynx' => 431, - 'wget' => 912, - ); - - $count = 0; - foreach ( $dataset as $key => $value ) - { - list( $compareKey, $compareValue ) = each( $dataSetArray ); - - $this->assertEquals( - $compareKey, - $key, - 'Unexpected key for dataset value.' - ); - - $this->assertEquals( - $compareValue, - $value, - 'Unexpected value for dataset.' - ); - - ++$count; - } - - $this->assertEquals( - $count, - count( $dataSetArray ), - 'Too few datasets found.' - ); - } - - public function testAutomaticDataSetUsageSingleColumn() - { - $db = ezcDbInstance::get(); - - $statement = $db->prepare( 'SELECT hits FROM graph_pdo_test' ); - $statement->execute(); - - $dataset = new ezcGraphPdoDataSet( $statement ); - - $dataSetArray = array( - 'Firefox' => 2567, - 'Opera' => 543, - 'Safari' => 23, - 'Konquror' => 812, - 'Lynx' => 431, - 'wget' => 912, - ); - - $count = 0; - foreach ( $dataset as $key => $value ) - { - list( $compareKey, $compareValue ) = each( $dataSetArray ); - - $this->assertEquals( - $count, - $key, - 'Unexpected key for dataset value.' - ); - - $this->assertEquals( - $compareValue, - $value, - 'Unexpected value for dataset.' - ); - - ++$count; - } - - $this->assertEquals( - $count, - count( $dataSetArray ), - 'Too few datasets found.' - ); - } - - public function testAutomaticDataSetUsageTooManyRows() - { - $db = ezcDbInstance::get(); - - $statement = $db->prepare( 'SELECT * FROM graph_pdo_test' ); - $statement->execute(); - - try - { - $dataset = new ezcGraphPdoDataSet( $statement ); - } - catch ( ezcGraphPdoDataSetTooManyColumnsException $e ) - { - return true; - } - - $this->fail( 'Expected ezcGraphPdoDataSetTooManyColumnsException.' ); - } - - public function testSpecifiedDataSetUsage() - { - $db = ezcDbInstance::get(); - - $statement = $db->prepare( 'SELECT * FROM graph_pdo_test' ); - $statement->execute(); - - $dataset = new ezcGraphPdoDataSet( - $statement, - array( - ezcGraph::KEY => 'browser', - ezcGraph::VALUE => 'hits', - ) - ); - - $dataSetArray = array( - 'Firefox' => 2567, - 'Opera' => 543, - 'Safari' => 23, - 'Konquror' => 812, - 'Lynx' => 431, - 'wget' => 912, - ); - - $count = 0; - foreach ( $dataset as $key => $value ) - { - list( $compareKey, $compareValue ) = each( $dataSetArray ); - - $this->assertEquals( - $compareKey, - $key, - 'Unexpected key for dataset value.' - ); - - $this->assertEquals( - $compareValue, - $value, - 'Unexpected value for dataset.' - ); - - ++$count; - } - - $this->assertEquals( - $count, - count( $dataSetArray ), - 'Too few datasets found.' - ); - } - - public function testSpecifiedDataSetUsageSingleColumn() - { - $db = ezcDbInstance::get(); - - $statement = $db->prepare( 'SELECT * FROM graph_pdo_test' ); - $statement->execute(); - - $dataset = new ezcGraphPdoDataSet( - $statement, - array( - ezcGraph::VALUE => 'hits', - ) - ); - - $dataSetArray = array( - 'Firefox' => 2567, - 'Opera' => 543, - 'Safari' => 23, - 'Konquror' => 812, - 'Lynx' => 431, - 'wget' => 912, - ); - - $count = 0; - foreach ( $dataset as $key => $value ) - { - list( $compareKey, $compareValue ) = each( $dataSetArray ); - - $this->assertEquals( - $count, - $key, - 'Unexpected key for dataset value.' - ); - - $this->assertEquals( - $compareValue, - $value, - 'Unexpected value for dataset.' - ); - - ++$count; - } - - $this->assertEquals( - $count, - count( $dataSetArray ), - 'Too few datasets found.' - ); - } - - public function testSpecifiedDataSetUsageBrokenKey() - { - $db = ezcDbInstance::get(); - - $statement = $db->prepare( 'SELECT * FROM graph_pdo_test' ); - $statement->execute(); - - try - { - $dataset = new ezcGraphPdoDataSet( - $statement, - array( - ezcGraph::KEY => 'nonexistant', - ezcGraph::VALUE => 'hits', - ) - ); - } - catch ( ezcGraphPdoDataSetMissingColumnException $e ) - { - return true; - } - - $this->fail( 'Expected ezcGraphPdoDataSetMissingColumnException.' ); - } - - public function testSpecifiedDataSetUsageBrokenValue() - { - $db = ezcDbInstance::get(); - - $statement = $db->prepare( 'SELECT * FROM graph_pdo_test' ); - $statement->execute(); - - try - { - $dataset = new ezcGraphPdoDataSet( - $statement, - array( - ezcGraph::VALUE => 'nonexistant', - ) - ); - } - catch ( ezcGraphPdoDataSetMissingColumnException $e ) - { - return true; - } - - $this->fail( 'Expected ezcGraphPdoDataSetMissingColumnException.' ); - } - - public function testNonExceutedQuery() - { - $db = ezcDbInstance::get(); - - $statement = $db->prepare( 'SELECT browser, hits FROM graph_pdo_test' ); - - try - { - $dataset = new ezcGraphPdoDataSet( $statement ); - } - catch ( ezcGraphPdoDataSetStatementNotExecutedException $e ) - { - return true; - } - - $this->fail( 'Expected ezcGraphPdoDataSetStatementNotExecutedException.' ); - } -} - -?> diff --git a/tests/suite.php b/tests/suite.php index d9b5ee6..f02e303 100644 --- a/tests/suite.php +++ b/tests/suite.php @@ -21,7 +21,6 @@ require_once 'chart_test.php'; require_once 'color_test.php'; require_once 'dataset_average_test.php'; require_once 'dataset_numeric_test.php'; -require_once 'dataset_pdo_test.php'; require_once 'dataset_test.php'; require_once 'date_axis_test.php'; require_once 'driver_flash_test.php'; @@ -86,7 +85,6 @@ class ezcGraphSuite extends PHPUnit_Framework_TestSuite $this->addTest( ezcGraphNumericAxisTest::suite() ); $this->addTest( ezcGraphNumericDataSetTest::suite() ); $this->addTest( ezcGraphPaletteTest::suite() ); - $this->addTest( ezcGraphPdoDataSetTest::suite() ); $this->addTest( ezcGraphPieChartTest::suite() ); $this->addTest( ezcGraphPolynomTest::suite() ); $this->addTest( ezcGraphRadarChartTest::suite() ); |