From bb60bcd2032e887e010904999655d2e5999e9878 Mon Sep 17 00:00:00 2001 From: knut <> Date: Wed, 6 Aug 2008 13:33:38 +0000 Subject: fixed #899 --- tests/unit/AllTests.php | 2 + tests/unit/Data/DataGateway/AllTests.php | 28 ++++++ tests/unit/Data/DataGateway/TSqlCriteriaTest.php | 111 +++++++++++++++++++++++ 3 files changed, 141 insertions(+) create mode 100644 tests/unit/Data/DataGateway/AllTests.php create mode 100644 tests/unit/Data/DataGateway/TSqlCriteriaTest.php (limited to 'tests') diff --git a/tests/unit/AllTests.php b/tests/unit/AllTests.php index bbd53a66..220b9366 100644 --- a/tests/unit/AllTests.php +++ b/tests/unit/AllTests.php @@ -15,6 +15,7 @@ require_once 'Web/UI/ActiveControls/AllTests.php'; require_once 'Security/AllTests.php'; require_once 'Caching/AllTests.php'; require_once 'Util/AllTests.php'; +require_once 'Data/DataGateway/AllTests.php'; require_once 'TComponentTest.php'; @@ -36,6 +37,7 @@ class AllTests { $suite->addTest(Security_AllTests::suite()); $suite->addTest(Caching_AllTests::suite()); $suite->addTest(Util_AllTests::suite()); + $suite->addTest(Data_DataGateway_AllTests::suite()); $suite->addTestSuite('TComponentTest'); diff --git a/tests/unit/Data/DataGateway/AllTests.php b/tests/unit/Data/DataGateway/AllTests.php new file mode 100644 index 00000000..f3405613 --- /dev/null +++ b/tests/unit/Data/DataGateway/AllTests.php @@ -0,0 +1,28 @@ +addTestSuite('TSqlCriteriaTest'); + + return $suite; + } +} + +if(PHPUnit_MAIN_METHOD == 'Data_DataGateway_AllTests::main') { + Data_DataGateway_AllTests::main(); +} +?> diff --git a/tests/unit/Data/DataGateway/TSqlCriteriaTest.php b/tests/unit/Data/DataGateway/TSqlCriteriaTest.php new file mode 100644 index 00000000..043520e7 --- /dev/null +++ b/tests/unit/Data/DataGateway/TSqlCriteriaTest.php @@ -0,0 +1,111 @@ +Condition = "SELECT * FROM table_references ORDER BY field1 ASC, field2 DESC"; + self::assertEquals("SELECT * FROM table_references", $criteria->Condition); + self::assertEquals(true, isset($criteria->OrdersBy['field1'])); + self::assertEquals('ASC', $criteria->OrdersBy['field1']); + self::assertEquals(true, isset($criteria->OrdersBy['field2'])); + self::assertEquals('DESC', $criteria->OrdersBy['field2']); + } + + public function testConditionWithOrderByExpression() { + $criteria = new TSqlCriteria(); + $criteria->Condition = "SELECT * FROM table_references ORDER BY RAND()"; + self::assertEquals("SELECT * FROM table_references", $criteria->Condition); + self::assertEquals(true, isset($criteria->OrdersBy['RAND()'])); + self::assertEquals('asc', $criteria->OrdersBy['RAND()']); + } + + public function testConditionWithOrderByAndLimit() { + $criteria = new TSqlCriteria(); + $criteria->Condition = "SELECT * FROM table_references ORDER BY field1 ASC, field2 DESC LIMIT 2"; + self::assertEquals("SELECT * FROM table_references", $criteria->Condition); + self::assertEquals(2, $criteria->Limit); + } + + public function testConditionWithOrderByAndLimitAndOffset() { + $criteria = new TSqlCriteria(); + $criteria->Condition = "SELECT * FROM table_references ORDER BY field1 ASC, field2 DESC LIMIT 3, 2"; + self::assertEquals("SELECT * FROM table_references", $criteria->Condition); + self::assertEquals(2, $criteria->Limit); + self::assertEquals(3, $criteria->Offset); + } + + public function testConditionWithOrderByAndLimitAndOffsetVariant() { + $criteria = new TSqlCriteria(); + $criteria->Condition = "SELECT * FROM table_references ORDER BY field1 ASC, field2 DESC LIMIT 2 OFFSET 3"; + self::assertEquals("SELECT * FROM table_references", $criteria->Condition); + self::assertEquals(2, $criteria->Limit); + self::assertEquals(3, $criteria->Offset); + } + + public function testConditionWithLimit() { + $criteria = new TSqlCriteria(); + $criteria->Condition = "SELECT * FROM table_references LIMIT 2"; + self::assertEquals("SELECT * FROM table_references", $criteria->Condition); + self::assertEquals(2, $criteria->Limit); + } + + public function testConditionWithLimitAndOffset() { + $criteria = new TSqlCriteria(); + $criteria->Condition = "SELECT * FROM table_references LIMIT 3, 2"; + self::assertEquals("SELECT * FROM table_references", $criteria->Condition); + self::assertEquals(2, $criteria->Limit); + self::assertEquals(3, $criteria->Offset); + } + + public function testConditionWithLimitAndOffsetVariant() { + $criteria = new TSqlCriteria(); + $criteria->Condition = "SELECT * FROM table_references LIMIT 2 OFFSET 3"; + self::assertEquals("SELECT * FROM table_references", $criteria->Condition); + self::assertEquals(2, $criteria->Limit); + self::assertEquals(3, $criteria->Offset); + } + + public function testParameters() { + throw new PHPUnit_Framework_IncompleteTestError(); + } + + public function testIsNamedParameters() { + throw new PHPUnit_Framework_IncompleteTestError(); + } + + public function testOrdersBy() { + throw new PHPUnit_Framework_IncompleteTestError(); + } + + public function testLimit() { + throw new PHPUnit_Framework_IncompleteTestError(); + } + + public function testOffset() { + throw new PHPUnit_Framework_IncompleteTestError(); + } + + public function testToString() { + throw new PHPUnit_Framework_IncompleteTestError(); + } + +} + +?> -- cgit v1.2.3