From 903ae8a581fac1e6917fc3e31d2ad8fb91df80c3 Mon Sep 17 00:00:00 2001 From: ctrlaltca <> Date: Thu, 12 Jul 2012 11:21:01 +0000 Subject: standardize the use of unix eol; use svn properties to enforce native eol --- tests/unit/SQLMap/BaseTest.php | 518 +++--- tests/unit/SQLMap/CacheTest.php | 326 ++-- tests/unit/SQLMap/ConfigureTest.php | 38 +- tests/unit/SQLMap/ConnectionTest.php | 50 +- tests/unit/SQLMap/DelegateTest.php | 126 +- tests/unit/SQLMap/GroupByTest.php | 84 +- tests/unit/SQLMap/InheritanceTest.php | 290 +-- tests/unit/SQLMap/ParameterMapTest.php | 496 ++--- tests/unit/SQLMap/PropertyAccessTest.php | 152 +- tests/unit/SQLMap/ResultClassTest.php | 562 +++--- tests/unit/SQLMap/ResultMapTest.php | 558 +++--- tests/unit/SQLMap/SelectKeyTest.php | 238 +-- tests/unit/SQLMap/SqlMapCacheTest.php | 152 +- tests/unit/SQLMap/StatementTest.php | 2266 +++++++++++------------ tests/unit/SQLMap/TAdodbConnectionTestCase.php | 126 +- tests/unit/SQLMap/common.php | 302 +-- tests/unit/SQLMap/domain/A.php | 52 +- tests/unit/SQLMap/domain/Account.php | 70 +- tests/unit/SQLMap/domain/AccountBis.php | 24 +- tests/unit/SQLMap/domain/AccountCollection.php | 32 +- tests/unit/SQLMap/domain/B.php | 44 +- tests/unit/SQLMap/domain/Book.php | 20 +- tests/unit/SQLMap/domain/C.php | 28 +- tests/unit/SQLMap/domain/Category.php | 36 +- tests/unit/SQLMap/domain/Complex.php | 20 +- tests/unit/SQLMap/domain/D.php | 30 +- tests/unit/SQLMap/domain/Document.php | 30 +- tests/unit/SQLMap/domain/DocumentCollection.php | 14 +- tests/unit/SQLMap/domain/E.php | 30 +- tests/unit/SQLMap/domain/F.php | 30 +- tests/unit/SQLMap/domain/LineItem.php | 62 +- tests/unit/SQLMap/domain/LineItemCollection.php | 14 +- tests/unit/SQLMap/domain/Newspaper.php | 22 +- tests/unit/SQLMap/domain/Order.php | 140 +- tests/unit/SQLMap/domain/Other.php | 44 +- tests/unit/SQLMap/domain/Sample.php | 108 +- tests/unit/SQLMap/domain/Search.php | 44 +- tests/unit/SQLMap/domain/User.php | 52 +- 38 files changed, 3615 insertions(+), 3615 deletions(-) (limited to 'tests/unit/SQLMap') diff --git a/tests/unit/SQLMap/BaseTest.php b/tests/unit/SQLMap/BaseTest.php index 0f3ce1e2..047863ec 100644 --- a/tests/unit/SQLMap/BaseTest.php +++ b/tests/unit/SQLMap/BaseTest.php @@ -1,260 +1,260 @@ -assertTrue(true); - } - - public function testCase2() - { - $this->assertTrue(true); - } - - public function __construct() - { - parent::__construct(); - $this->config = BaseTestConfig::createConfigInstance(); - $this->ScriptDirectory = $this->config->getScriptDir(); - } - - public function hasSupportFor($feature) - { - return $this->config->hasFeature($feature); - } - - public function __destruct() - { - if(!is_null($this->mapper)) - $this->mapper->cacheConfiguration(); - } - - function getConnection() - { - if(is_null($this->connection)) - $this->connection = new TAdodbConnection($this->config->getConnectionString()); - $this->connection->open(); - return $this->connection; - } - - protected static $ScriptDirectory; - - /** - * Initialize an sqlMap - */ - protected function initSqlMap() - { - $filename = $this->config->getSqlMapConfigFile(); - $this->mapper = new TSQLMapClient; - $this->sqlmap = $this->mapper->configure($filename,true); - $this->sqlmap->getTypeHandlerFactory()->register('date', new TDateTimeHandler); - $this->sqlmap->getDataProvider()->setConnectionString($this->config->getConnectionString()); - } - - /** - * Run a sql batch for the datasource. - */ - protected function initScript($script) - { - $runner = $this->config->getScriptRunner(); - $runner->runScript($this->getConnection(), $this->ScriptDirectory.$script); - } - - /** - * Create a new account with id = 6 - */ - protected function NewAccount6() - { - $account = new Account(); - $account->setID(6); - $account->setFirstName('Calamity'); - $account->setLastName('Jane'); - $account->setEmailAddress('no_email@provided.com'); - return $account; - } - - /** - * Verify that the input account is equal to the account(id=1). - */ - protected function assertAccount1(Account $account) - { - $this->assertEquals($account->getID(), 1); - $this->assertEquals($account->getFirstName(), 'Joe'); - $this->assertEquals($account->getEmailAddress(), 'Joe.Dalton@somewhere.com'); - } - - /** - * Verify that the input account is equal to the account(id=6). - */ - protected function assertAccount6(Account $account) - { - $this->assertEquals($account->getID(), 6); - $this->assertEquals($account->getFirstName(), 'Calamity'); - $this->assertEquals($account->getLastName(), 'Jane'); - $this->assertNull($account->getEmailAddress()); - } - - /** - * Verify that the input order is equal to the order(id=1). - */ - protected function assertOrder1(Order $order) - { - $date = @mktime(8,15,0,2,15,2003); - - $this->assertEquals((int)$order->getID(), 1); - if($order->getDate() instanceof TDateTime) - $this->assertEquals($order->getDate()->getTimestamp(), $date); - else - $this->fail(); - $this->assertEquals($order->getCardType(), 'VISA'); - $this->assertEquals($order->getCardNumber(), '999999999999'); - $this->assertEquals($order->getCardExpiry(), '05/03'); - $this->assertEquals($order->getStreet(), '11 This Street'); - $this->assertEquals($order->getProvince(), 'BC'); - $this->assertEquals($order->getPostalCode(), 'C4B 4F4'); - } - - function assertAccount1AsHashArray($account) - { - $this->assertEquals(1, (int)$account["Id"]); - $this->assertEquals("Joe", $account["FirstName"]); - $this->assertEquals("Dalton", $account["LastName"]); - $this->assertEquals("Joe.Dalton@somewhere.com", $account["EmailAddress"]); - } - - function AssertOrder1AsHashArray($order) - { - $date = @mktime(8,15,0,2,15,2003); - - $this->assertEquals(1, $order["Id"]); - if($order['Date'] instanceof TDateTime) - $this->assertEquals($date, $order["Date"]->getTimestamp()); - else - $this->fail(); - $this->assertEquals("VISA", $order["CardType"]); - $this->assertEquals("999999999999", $order["CardNumber"]); - $this->assertEquals("05/03", $order["CardExpiry"]); - $this->assertEquals("11 This Street", $order["Street"]); - $this->assertEquals("Victoria", $order["City"]); - $this->assertEquals("BC", $order["Province"]); - $this->assertEquals("C4B 4F4", $order["PostalCode"]); - } - -} - -class HundredsBool implements ITypeHandlerCallback -{ - public function getResult($string) - { - $value = intval($string); - if($value == 100) - return true; - if($value == 200) - return false; - //throw new Exception('unexpected value '.$value); - } - - public function getParameter($parameter) - { - if($parameter) - return 100; - else - return 200; - } - - public function createNewInstance($data=null) - { - throw new TDataMapperException('can not create'); - } -} - -class OuiNonBool implements ITypeHandlerCallback -{ - const YES = "Oui"; - const NO = "Non"; - - public function getResult($string) - { - if($string === self::YES) - return true; - if($string === self::NO) - return false; - //throw new Exception('unexpected value '.$string); - } - - public function getParameter($parameter) - { - if($parameter) - return self::YES; - else - return self::NO; - } - - public function createNewInstance($data=null) - { - throw new TDataMapperException('can not create'); - } -} - -class TDateTimeHandler implements ITypeHandlerCallback -{ - public function getResult($string) - { - $time = new TDateTime($string); - return $time; - } - - public function getParameter($parameter) - { - if($parameter instanceof TDateTime) - return $parameter->getTimestamp(); - else - return $parameter; - } - - public function createNewInstance($data=null) - { - return new TDateTime; - } -} - -class TDateTime -{ - private $_datetime; - - public function __construct($datetime=null) - { - if(!is_null($datetime)) - $this->setDatetime($datetime); - } - - public function getTimestamp() - { - return strtotime($this->getDatetime()); - } - - public function getDateTime() - { - return $this->_datetime; - } - - public function setDateTime($value) - { - $this->_datetime = $value; - } -} - +assertTrue(true); + } + + public function testCase2() + { + $this->assertTrue(true); + } + + public function __construct() + { + parent::__construct(); + $this->config = BaseTestConfig::createConfigInstance(); + $this->ScriptDirectory = $this->config->getScriptDir(); + } + + public function hasSupportFor($feature) + { + return $this->config->hasFeature($feature); + } + + public function __destruct() + { + if(!is_null($this->mapper)) + $this->mapper->cacheConfiguration(); + } + + function getConnection() + { + if(is_null($this->connection)) + $this->connection = new TAdodbConnection($this->config->getConnectionString()); + $this->connection->open(); + return $this->connection; + } + + protected static $ScriptDirectory; + + /** + * Initialize an sqlMap + */ + protected function initSqlMap() + { + $filename = $this->config->getSqlMapConfigFile(); + $this->mapper = new TSQLMapClient; + $this->sqlmap = $this->mapper->configure($filename,true); + $this->sqlmap->getTypeHandlerFactory()->register('date', new TDateTimeHandler); + $this->sqlmap->getDataProvider()->setConnectionString($this->config->getConnectionString()); + } + + /** + * Run a sql batch for the datasource. + */ + protected function initScript($script) + { + $runner = $this->config->getScriptRunner(); + $runner->runScript($this->getConnection(), $this->ScriptDirectory.$script); + } + + /** + * Create a new account with id = 6 + */ + protected function NewAccount6() + { + $account = new Account(); + $account->setID(6); + $account->setFirstName('Calamity'); + $account->setLastName('Jane'); + $account->setEmailAddress('no_email@provided.com'); + return $account; + } + + /** + * Verify that the input account is equal to the account(id=1). + */ + protected function assertAccount1(Account $account) + { + $this->assertEquals($account->getID(), 1); + $this->assertEquals($account->getFirstName(), 'Joe'); + $this->assertEquals($account->getEmailAddress(), 'Joe.Dalton@somewhere.com'); + } + + /** + * Verify that the input account is equal to the account(id=6). + */ + protected function assertAccount6(Account $account) + { + $this->assertEquals($account->getID(), 6); + $this->assertEquals($account->getFirstName(), 'Calamity'); + $this->assertEquals($account->getLastName(), 'Jane'); + $this->assertNull($account->getEmailAddress()); + } + + /** + * Verify that the input order is equal to the order(id=1). + */ + protected function assertOrder1(Order $order) + { + $date = @mktime(8,15,0,2,15,2003); + + $this->assertEquals((int)$order->getID(), 1); + if($order->getDate() instanceof TDateTime) + $this->assertEquals($order->getDate()->getTimestamp(), $date); + else + $this->fail(); + $this->assertEquals($order->getCardType(), 'VISA'); + $this->assertEquals($order->getCardNumber(), '999999999999'); + $this->assertEquals($order->getCardExpiry(), '05/03'); + $this->assertEquals($order->getStreet(), '11 This Street'); + $this->assertEquals($order->getProvince(), 'BC'); + $this->assertEquals($order->getPostalCode(), 'C4B 4F4'); + } + + function assertAccount1AsHashArray($account) + { + $this->assertEquals(1, (int)$account["Id"]); + $this->assertEquals("Joe", $account["FirstName"]); + $this->assertEquals("Dalton", $account["LastName"]); + $this->assertEquals("Joe.Dalton@somewhere.com", $account["EmailAddress"]); + } + + function AssertOrder1AsHashArray($order) + { + $date = @mktime(8,15,0,2,15,2003); + + $this->assertEquals(1, $order["Id"]); + if($order['Date'] instanceof TDateTime) + $this->assertEquals($date, $order["Date"]->getTimestamp()); + else + $this->fail(); + $this->assertEquals("VISA", $order["CardType"]); + $this->assertEquals("999999999999", $order["CardNumber"]); + $this->assertEquals("05/03", $order["CardExpiry"]); + $this->assertEquals("11 This Street", $order["Street"]); + $this->assertEquals("Victoria", $order["City"]); + $this->assertEquals("BC", $order["Province"]); + $this->assertEquals("C4B 4F4", $order["PostalCode"]); + } + +} + +class HundredsBool implements ITypeHandlerCallback +{ + public function getResult($string) + { + $value = intval($string); + if($value == 100) + return true; + if($value == 200) + return false; + //throw new Exception('unexpected value '.$value); + } + + public function getParameter($parameter) + { + if($parameter) + return 100; + else + return 200; + } + + public function createNewInstance($data=null) + { + throw new TDataMapperException('can not create'); + } +} + +class OuiNonBool implements ITypeHandlerCallback +{ + const YES = "Oui"; + const NO = "Non"; + + public function getResult($string) + { + if($string === self::YES) + return true; + if($string === self::NO) + return false; + //throw new Exception('unexpected value '.$string); + } + + public function getParameter($parameter) + { + if($parameter) + return self::YES; + else + return self::NO; + } + + public function createNewInstance($data=null) + { + throw new TDataMapperException('can not create'); + } +} + +class TDateTimeHandler implements ITypeHandlerCallback +{ + public function getResult($string) + { + $time = new TDateTime($string); + return $time; + } + + public function getParameter($parameter) + { + if($parameter instanceof TDateTime) + return $parameter->getTimestamp(); + else + return $parameter; + } + + public function createNewInstance($data=null) + { + return new TDateTime; + } +} + +class TDateTime +{ + private $_datetime; + + public function __construct($datetime=null) + { + if(!is_null($datetime)) + $this->setDatetime($datetime); + } + + public function getTimestamp() + { + return strtotime($this->getDatetime()); + } + + public function getDateTime() + { + return $this->_datetime; + } + + public function setDateTime($value) + { + $this->_datetime = $value; + } +} + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/CacheTest.php b/tests/unit/SQLMap/CacheTest.php index 4fd69916..c8a0aab7 100644 --- a/tests/unit/SQLMap/CacheTest.php +++ b/tests/unit/SQLMap/CacheTest.php @@ -1,164 +1,164 @@ -initSqlMap(); - - //force autoload - new Account; - } - - function resetDatabase() - { - $this->initScript('account-init.sql'); - } - - /** - * Test for JIRA 29 - */ - function testJIRA28() - { - $account = $this->sqlmap->queryForObject("GetNoAccountWithCache",-99); - $this->assertNull($account); - } - - /** - * Test Cache query - */ - function testQueryWithCache() - { - $this->resetDatabase(); - - $list1 = $this->sqlmap->queryForList("GetCachedAccountsViaResultMap"); - - $list2 = $this->sqlmap->queryForList("GetCachedAccountsViaResultMap"); - - $this->assertTrue($list1 === $list2); - - $account = $list1[1]; - $account->setEmailAddress("somebody@cache.com"); - - //this will cause the cache to flush - $this->sqlmap->update("UpdateAccountViaInlineParameters", $account); - - $list3 = $this->sqlmap->queryForList("GetCachedAccountsViaResultMap"); - - $this->assertTrue($list1 !== $list3); - - $this->resetDatabase(); - } - - - /** - * Test flush Cache - */ - function testFlushDataCache() - { - $list1 = $this->sqlmap->queryForList("GetCachedAccountsViaResultMap"); - $list2 = $this->sqlmap->queryForList("GetCachedAccountsViaResultMap"); - - $this->assertTrue($list1 === $list2); - $this->sqlmap->flushCaches(); - - $list3 = $this->sqlmap->queryForList("GetCachedAccountsViaResultMap"); - - $this->assertTrue($list1 !== $list3); - } - - /** - * - */ - function testFlushDataCacheOnExecute() - { - $list1 = $this->sqlmap->queryForList("GetCachedAccountsViaResultMap"); - - $list2 = $this->sqlmap->queryForList("GetCachedAccountsViaResultMap"); - - $this->assertTrue($list1 === $list2); - $this->sqlmap->update("UpdateAccountViaInlineParameters", $list1[0]); - - $list3 = $this->sqlmap->queryForList("GetCachedAccountsViaResultMap"); - - $this->assertTrue($list1 !== $list3); - } - - /** - */ - protected function getCacheModel() - { - $cache = new TSqlMapCacheModel(); - // $cache->setFlushInterval(5*60); - $cache->setImplementation('LRU'); - $cache->initialize($this->sqlmap); - return $cache; - } - - /** - * Test CacheHit - */ - function testCacheHit() - { - $cache = $this->getCacheModel(); - $key = new TSqlMapCacheKey('testkey'); - $cache->set($key, 'a'); - - $returnedObject = $cache->get($key); - - $this->assertEquals('a', $returnedObject); - - $this->assertEquals(1, $cache->getHitRatio()); - } - - - - /** - * Test CacheMiss - */ - function testCacheMiss() - { - $cache = $this->getCacheModel(); - $key = new TSqlMapCacheKey('testKey'); - $value = 'testValue'; - $cache->set($key, $value); - - $wrongKey = new TSqlMapCacheKey('wrongKey'); - - $returnedObject = $cache->get($wrongKey); - $this->assertNotEquals($value, $returnedObject); - $this->assertNull($returnedObject) ; - $this->assertEquals(0, $cache->getHitRatio()); - } - - /** - * Test CacheHitMiss - */ - function testCacheHitMiss() - { - $cache = $this->getCacheModel(); - $key = new TSqlMapCacheKey('testKey'); - - $value = "testValue"; - $cache->set($key, $value); - - $returnedObject = $cache->get($key); - $this->assertEquals($value, $returnedObject); - - $wrongKey = new TSqlMapCacheKey('wrongKey'); - - $returnedObject = $cache->get($wrongKey); - $this->assertNotEquals($value, $returnedObject); - $this->assertNull($returnedObject) ; - $this->assertEquals(0.5, $cache->getHitRatio()); - } -} - +initSqlMap(); + + //force autoload + new Account; + } + + function resetDatabase() + { + $this->initScript('account-init.sql'); + } + + /** + * Test for JIRA 29 + */ + function testJIRA28() + { + $account = $this->sqlmap->queryForObject("GetNoAccountWithCache",-99); + $this->assertNull($account); + } + + /** + * Test Cache query + */ + function testQueryWithCache() + { + $this->resetDatabase(); + + $list1 = $this->sqlmap->queryForList("GetCachedAccountsViaResultMap"); + + $list2 = $this->sqlmap->queryForList("GetCachedAccountsViaResultMap"); + + $this->assertTrue($list1 === $list2); + + $account = $list1[1]; + $account->setEmailAddress("somebody@cache.com"); + + //this will cause the cache to flush + $this->sqlmap->update("UpdateAccountViaInlineParameters", $account); + + $list3 = $this->sqlmap->queryForList("GetCachedAccountsViaResultMap"); + + $this->assertTrue($list1 !== $list3); + + $this->resetDatabase(); + } + + + /** + * Test flush Cache + */ + function testFlushDataCache() + { + $list1 = $this->sqlmap->queryForList("GetCachedAccountsViaResultMap"); + $list2 = $this->sqlmap->queryForList("GetCachedAccountsViaResultMap"); + + $this->assertTrue($list1 === $list2); + $this->sqlmap->flushCaches(); + + $list3 = $this->sqlmap->queryForList("GetCachedAccountsViaResultMap"); + + $this->assertTrue($list1 !== $list3); + } + + /** + * + */ + function testFlushDataCacheOnExecute() + { + $list1 = $this->sqlmap->queryForList("GetCachedAccountsViaResultMap"); + + $list2 = $this->sqlmap->queryForList("GetCachedAccountsViaResultMap"); + + $this->assertTrue($list1 === $list2); + $this->sqlmap->update("UpdateAccountViaInlineParameters", $list1[0]); + + $list3 = $this->sqlmap->queryForList("GetCachedAccountsViaResultMap"); + + $this->assertTrue($list1 !== $list3); + } + + /** + */ + protected function getCacheModel() + { + $cache = new TSqlMapCacheModel(); + // $cache->setFlushInterval(5*60); + $cache->setImplementation('LRU'); + $cache->initialize($this->sqlmap); + return $cache; + } + + /** + * Test CacheHit + */ + function testCacheHit() + { + $cache = $this->getCacheModel(); + $key = new TSqlMapCacheKey('testkey'); + $cache->set($key, 'a'); + + $returnedObject = $cache->get($key); + + $this->assertEquals('a', $returnedObject); + + $this->assertEquals(1, $cache->getHitRatio()); + } + + + + /** + * Test CacheMiss + */ + function testCacheMiss() + { + $cache = $this->getCacheModel(); + $key = new TSqlMapCacheKey('testKey'); + $value = 'testValue'; + $cache->set($key, $value); + + $wrongKey = new TSqlMapCacheKey('wrongKey'); + + $returnedObject = $cache->get($wrongKey); + $this->assertNotEquals($value, $returnedObject); + $this->assertNull($returnedObject) ; + $this->assertEquals(0, $cache->getHitRatio()); + } + + /** + * Test CacheHitMiss + */ + function testCacheHitMiss() + { + $cache = $this->getCacheModel(); + $key = new TSqlMapCacheKey('testKey'); + + $value = "testValue"; + $cache->set($key, $value); + + $returnedObject = $cache->get($key); + $this->assertEquals($value, $returnedObject); + + $wrongKey = new TSqlMapCacheKey('wrongKey'); + + $returnedObject = $cache->get($wrongKey); + $this->assertNotEquals($value, $returnedObject); + $this->assertNull($returnedObject) ; + $this->assertEquals(0.5, $cache->getHitRatio()); + } +} + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/ConfigureTest.php b/tests/unit/SQLMap/ConfigureTest.php index ef2e5e31..84c77c0e 100644 --- a/tests/unit/SQLMap/ConfigureTest.php +++ b/tests/unit/SQLMap/ConfigureTest.php @@ -1,20 +1,20 @@ -configure($filename); - $this->assertNotNull($sqlmap); - } -} - +configure($filename); + $this->assertNotNull($sqlmap); + } +} + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/ConnectionTest.php b/tests/unit/SQLMap/ConnectionTest.php index 138505fd..5ab1e7e7 100644 --- a/tests/unit/SQLMap/ConnectionTest.php +++ b/tests/unit/SQLMap/ConnectionTest.php @@ -1,26 +1,26 @@ -initSqlmap(); - } - - function testOpenConnection() - { - $conn = $this->sqlmap->openConnection(); - $this->assertFalse($conn->getIsClosed()); - $this->sqlmap->closeConnection(); - $this->assertTrue($conn->getIsClosed()); - $this->sqlmap->openConnection(); - $this->assertFalse($conn->getIsClosed()); - } -} - +initSqlmap(); + } + + function testOpenConnection() + { + $conn = $this->sqlmap->openConnection(); + $this->assertFalse($conn->getIsClosed()); + $this->sqlmap->closeConnection(); + $this->assertTrue($conn->getIsClosed()); + $this->sqlmap->openConnection(); + $this->assertFalse($conn->getIsClosed()); + } +} + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/DelegateTest.php b/tests/unit/SQLMap/DelegateTest.php index e4c4d812..cd285d98 100644 --- a/tests/unit/SQLMap/DelegateTest.php +++ b/tests/unit/SQLMap/DelegateTest.php @@ -1,64 +1,64 @@ -initSqlMap(); - } - - function testListDelegate() - { - $list = $this->sqlmap->queryWithRowDelegate( - "GetAllAccountsViaResultMap", array($this, 'listHandler')); - - $this->assertEquals(5, count($list)); - $this->assertAccount1($list[0]); - $this->assertEquals(1, $list[0]->getID()); - $this->assertEquals(2, $list[1]->getID()); - $this->assertEquals(3, $list[2]->getID()); - $this->assertEquals(4, $list[3]->getID()); - $this->assertEquals(5, $list[4]->getID()); - } - - /** - * Test ExecuteQueryForMap : Hashtable. - */ - function testExecuteQueryForMap() - { - $map = $this->sqlmap->QueryForMapWithRowDelegate( - "GetAllAccountsViaResultClass", array($this, 'mapHandler'), null, "FirstName"); - - $this->assertEquals(5, count($map)); - $this->assertAccount1($map["Joe"]); - - $this->assertEquals(1, $map["Joe"]->getID()); - $this->assertEquals(2, $map["Averel"]->getID()); - $this->assertEquals(3, $map["William"]->getID()); - $this->assertEquals(4, $map["Jack"]->getID()); - $this->assertEquals(5, $map["Gilles"]->getID()); - } - - public function listHandler($sender, $param) - { - $list = &$param->getList(); - $list[] = $param->result; - $this->assertTrue($param->result instanceof Account); - } - - public function mapHandler($sender, $param) - { - $map = &$param->getMap(); - $map[$param->getKey()] = $param->getValue(); - $this->assertTrue($param->getValue() instanceof Account); - } -} - - - +initSqlMap(); + } + + function testListDelegate() + { + $list = $this->sqlmap->queryWithRowDelegate( + "GetAllAccountsViaResultMap", array($this, 'listHandler')); + + $this->assertEquals(5, count($list)); + $this->assertAccount1($list[0]); + $this->assertEquals(1, $list[0]->getID()); + $this->assertEquals(2, $list[1]->getID()); + $this->assertEquals(3, $list[2]->getID()); + $this->assertEquals(4, $list[3]->getID()); + $this->assertEquals(5, $list[4]->getID()); + } + + /** + * Test ExecuteQueryForMap : Hashtable. + */ + function testExecuteQueryForMap() + { + $map = $this->sqlmap->QueryForMapWithRowDelegate( + "GetAllAccountsViaResultClass", array($this, 'mapHandler'), null, "FirstName"); + + $this->assertEquals(5, count($map)); + $this->assertAccount1($map["Joe"]); + + $this->assertEquals(1, $map["Joe"]->getID()); + $this->assertEquals(2, $map["Averel"]->getID()); + $this->assertEquals(3, $map["William"]->getID()); + $this->assertEquals(4, $map["Jack"]->getID()); + $this->assertEquals(5, $map["Gilles"]->getID()); + } + + public function listHandler($sender, $param) + { + $list = &$param->getList(); + $list[] = $param->result; + $this->assertTrue($param->result instanceof Account); + } + + public function mapHandler($sender, $param) + { + $map = &$param->getMap(); + $map[$param->getKey()] = $param->getValue(); + $this->assertTrue($param->getValue() instanceof Account); + } +} + + + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/GroupByTest.php b/tests/unit/SQLMap/GroupByTest.php index a03a7305..eed714c9 100644 --- a/tests/unit/SQLMap/GroupByTest.php +++ b/tests/unit/SQLMap/GroupByTest.php @@ -1,43 +1,43 @@ -_orders = $orders; - } - - public function getOrders() - { - return $this->_orders; - } -} - - -/** - * @package System.DataAccess.SQLMap - */ -class GroupByTest extends BaseTest -{ - function __construct() - { - parent::__construct(); - $this->initSqlMap(); - } - - function testAccountWithOrders() - { - $this->initScript('account-init.sql'); - $accounts = $this->sqlmap->queryForList("getAccountWithOrders"); - $this->assertEquals(5, count($accounts)); - foreach($accounts as $account) - $this->assertEquals(2, count($account->getOrders())); - } - -/**/ -} - +_orders = $orders; + } + + public function getOrders() + { + return $this->_orders; + } +} + + +/** + * @package System.DataAccess.SQLMap + */ +class GroupByTest extends BaseTest +{ + function __construct() + { + parent::__construct(); + $this->initSqlMap(); + } + + function testAccountWithOrders() + { + $this->initScript('account-init.sql'); + $accounts = $this->sqlmap->queryForList("getAccountWithOrders"); + $this->assertEquals(5, count($accounts)); + foreach($accounts as $account) + $this->assertEquals(2, count($account->getOrders())); + } + +/**/ +} + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/InheritanceTest.php b/tests/unit/SQLMap/InheritanceTest.php index 9ace1c29..41a81ae1 100644 --- a/tests/unit/SQLMap/InheritanceTest.php +++ b/tests/unit/SQLMap/InheritanceTest.php @@ -1,146 +1,146 @@ -initSqlMap(); - $this->initScript('documents-init.sql'); - } - - /// Test All document with no formula - function testGetAllDocument() - { - $list = $this->sqlmap->queryForList("GetAllDocument"); - - $this->assertEquals(6, count($list)); - $book = $list[0]; - $this->assertBook($book, 1, "The World of Null-A", 55); - - $book = $list[1]; - $this->assertBook($book, 3, "Lord of the Rings", 3587); - - $document = $list[2]; - $this->assertDocument($document, 5, "Le Monde"); - - $document = $list[3]; - $this->assertDocument($document, 6, "Foundation"); - - $news = $list[4]; - $this->assertNewspaper($news, 2, "Le Progres de Lyon", "Lyon"); - - $document = $list[5]; - $this->assertDocument($document, 4, "Le Canard enchaine"); - } - - /// Test All document in a typed collection - function testGetTypedCollection() - { - $list = $this->sqlmap->queryForList("GetTypedCollection"); - - $this->assertEquals(6, $list->getCount()); - - $book = $list[0]; - $this->assertBook($book, 1, "The World of Null-A", 55); - - $book = $list[1]; - $this->assertBook($book, 3, "Lord of the Rings", 3587); - - $document = $list[2]; - $this->assertDocument($document, 5, "Le Monde"); - - $document = $list[3]; - $this->assertDocument($document, 6, "Foundation"); - - $news = $list[4]; - $this->assertNewspaper($news, 2, "Le Progres de Lyon", "Lyon"); - - $document = $list[5]; - $this->assertDocument($document, 4, "Le Canard enchaine"); - } - - /// Test All document with Custom Type Handler - function testGetAllDocumentWithCustomTypeHandler() - { - - //register the custom inheritance type handler - $this->sqlmap->getTypeHandlerFactory()->register( - 'CustomInheritance', new CustomInheritance); - - $list = $this->sqlmap->queryForList("GetAllDocumentWithCustomTypeHandler"); - - $this->assertEquals(6, count($list)); - $book = $list[0]; - $this->assertBook($book, 1, "The World of Null-A", 55); - - $book = $list[1]; - $this->assertBook($book, 3, "Lord of the Rings", 3587); - - $news = $list[2]; - $this->assertNewspaper($news, 5, "Le Monde", "Paris"); - - $book = $list[3]; - $this->assertBook($book, 6, "Foundation", 557); - - $news = $list[4]; - $this->assertNewspaper($news, 2, "Le Progres de Lyon", "Lyon"); - - $news = $list[5]; - $this->assertNewspaper($news, 4, "Le Canard enchaine", "Paris"); - } - - function AssertDocument(Document $document, $id, $title) - { - $this->assertEquals($id, $document->getID()); - $this->assertEquals($title, $document->getTitle()); - } - - function AssertBook(Book $book, $id, $title, $pageNumber) - { - $this->assertEquals($id, $book->getId()); - $this->assertEquals($title, $book->getTitle()); - $this->assertEquals($pageNumber, (int)$book->getPageNumber()); - } - - function AssertNewspaper(Newspaper $news, $id, $title, $city) - { - $this->assertEquals($id, $news->getId()); - $this->assertEquals($title, $news->getTitle()); - $this->assertEquals($city, $news->getCity()); - } -} - - -class CustomInheritance implements ITypeHandlerCallback -{ - public function getResult($type) - { - switch ($type) - { - case 'Monograph': case 'Book': - return 'Book'; - case 'Tabloid': case 'Broadsheet': case 'Newspaper': - return 'Newspaper'; - default: - return 'Document'; - } - } - - public function getParameter($parameter) - { - throw new TDataMapperException('not implemented'); - } - - public function createNewInstance($data=null) - { - throw new TDataMapperException('can not create'); - } -} +initSqlMap(); + $this->initScript('documents-init.sql'); + } + + /// Test All document with no formula + function testGetAllDocument() + { + $list = $this->sqlmap->queryForList("GetAllDocument"); + + $this->assertEquals(6, count($list)); + $book = $list[0]; + $this->assertBook($book, 1, "The World of Null-A", 55); + + $book = $list[1]; + $this->assertBook($book, 3, "Lord of the Rings", 3587); + + $document = $list[2]; + $this->assertDocument($document, 5, "Le Monde"); + + $document = $list[3]; + $this->assertDocument($document, 6, "Foundation"); + + $news = $list[4]; + $this->assertNewspaper($news, 2, "Le Progres de Lyon", "Lyon"); + + $document = $list[5]; + $this->assertDocument($document, 4, "Le Canard enchaine"); + } + + /// Test All document in a typed collection + function testGetTypedCollection() + { + $list = $this->sqlmap->queryForList("GetTypedCollection"); + + $this->assertEquals(6, $list->getCount()); + + $book = $list[0]; + $this->assertBook($book, 1, "The World of Null-A", 55); + + $book = $list[1]; + $this->assertBook($book, 3, "Lord of the Rings", 3587); + + $document = $list[2]; + $this->assertDocument($document, 5, "Le Monde"); + + $document = $list[3]; + $this->assertDocument($document, 6, "Foundation"); + + $news = $list[4]; + $this->assertNewspaper($news, 2, "Le Progres de Lyon", "Lyon"); + + $document = $list[5]; + $this->assertDocument($document, 4, "Le Canard enchaine"); + } + + /// Test All document with Custom Type Handler + function testGetAllDocumentWithCustomTypeHandler() + { + + //register the custom inheritance type handler + $this->sqlmap->getTypeHandlerFactory()->register( + 'CustomInheritance', new CustomInheritance); + + $list = $this->sqlmap->queryForList("GetAllDocumentWithCustomTypeHandler"); + + $this->assertEquals(6, count($list)); + $book = $list[0]; + $this->assertBook($book, 1, "The World of Null-A", 55); + + $book = $list[1]; + $this->assertBook($book, 3, "Lord of the Rings", 3587); + + $news = $list[2]; + $this->assertNewspaper($news, 5, "Le Monde", "Paris"); + + $book = $list[3]; + $this->assertBook($book, 6, "Foundation", 557); + + $news = $list[4]; + $this->assertNewspaper($news, 2, "Le Progres de Lyon", "Lyon"); + + $news = $list[5]; + $this->assertNewspaper($news, 4, "Le Canard enchaine", "Paris"); + } + + function AssertDocument(Document $document, $id, $title) + { + $this->assertEquals($id, $document->getID()); + $this->assertEquals($title, $document->getTitle()); + } + + function AssertBook(Book $book, $id, $title, $pageNumber) + { + $this->assertEquals($id, $book->getId()); + $this->assertEquals($title, $book->getTitle()); + $this->assertEquals($pageNumber, (int)$book->getPageNumber()); + } + + function AssertNewspaper(Newspaper $news, $id, $title, $city) + { + $this->assertEquals($id, $news->getId()); + $this->assertEquals($title, $news->getTitle()); + $this->assertEquals($city, $news->getCity()); + } +} + + +class CustomInheritance implements ITypeHandlerCallback +{ + public function getResult($type) + { + switch ($type) + { + case 'Monograph': case 'Book': + return 'Book'; + case 'Tabloid': case 'Broadsheet': case 'Newspaper': + return 'Newspaper'; + default: + return 'Document'; + } + } + + public function getParameter($parameter) + { + throw new TDataMapperException('not implemented'); + } + + public function createNewInstance($data=null) + { + throw new TDataMapperException('can not create'); + } +} ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/ParameterMapTest.php b/tests/unit/SQLMap/ParameterMapTest.php index 5b3c3006..130b1505 100644 --- a/tests/unit/SQLMap/ParameterMapTest.php +++ b/tests/unit/SQLMap/ParameterMapTest.php @@ -1,249 +1,249 @@ -initSqlMap(); - } - - function setup() - { - $this->initScript('account-init.sql'); -// $this->initScript('account-procedure.sql'); - $this->initScript('order-init.sql'); -// $this->initScript('line-item-init.sql'); - $this->initScript('category-init.sql'); - } - - /// Test null replacement in ParameterMap property - function testNullValueReplacement() - { - $account = $this->newAccount6(); - - $this->sqlmap->insert("InsertAccountViaParameterMap", $account); - $account = $this->sqlmap->queryForObject("GetAccountNullableEmail", 6); - - $this->assertNull($account->getEmailAddress(), 'no_email@provided.com'); - - $this->assertAccount6($account); - } - - /// Test Test Null Value Replacement Inline - function testNullValueReplacementInline() - { - $account = $this->newAccount6(); - - $this->sqlmap->insert("InsertAccountViaInlineParameters", $account); - $account = $this->sqlmap->queryForObject("GetAccountNullableEmail", 6); - $this->assertNull($account->getEmailAddress()); - - $this->assertAccount6($account); - } - - /// Test Test Null Value Replacement Inline - function testSpecifiedType() - { - $account = $this->newAccount6(); - $account->setEmailAddress(null); - $this->sqlmap->insert("InsertAccountNullableEmail", $account); - $account = $this->sqlmap->queryForObject("GetAccountNullableEmail", 6); - $this->assertAccount6($account); - } - - - /// Test Test Null Value Replacement Inline - function testUnknownParameterClass() - { - $account = $this->newAccount6(); - $account->setEmailAddress(null); - $this->sqlmap->insert("InsertAccountUknownParameterClass", $account); - $account = $this->sqlmap->queryForObject("GetAccountNullableEmail", 6); - $this->assertAccount6($account); - } - - - /// Test null replacement in ParameterMap property - /// for System.DateTime.MinValue - function testNullValueReplacementForDateTimeMinValue() - { - $account = $this->newAccount6(); - $this->sqlmap->insert("InsertAccountViaParameterMap", $account); - $order = new Order(); - $order->setId(99); - $order->setCardExpiry("09/11"); - $order->setAccount($account); - $order->setCardNumber("154564656"); - $order->setCardType("Visa"); - $order->setCity("Lyon"); - $order->setDate(null); - $order->setPostalCode("69004"); - $order->setProvince("Rhone"); - $order->setStreet("rue Durand"); - - $this->sqlmap->insert("InsertOrderViaParameterMap", $order); - - $orderTest = $this->sqlmap->queryForObject("GetOrderLiteByColumnName", 99); - - $this->assertEquals($order->getCity(), $orderTest->getCity()); - } - - /// Test null replacement in ParameterMap/Hahstable property - /// for System.DateTime.MinValue - function testNullValueReplacementForDateTimeWithHashtable() - { - $account = $this->newAccount6(); - - $this->sqlmap->insert("InsertAccountViaParameterMap", $account); - - $order = new Order(); - $order->setId(99); - $order->setCardExpiry("09/11"); - $order->setAccount($account); - $order->setCardNumber("154564656"); - $order->setCardType("Visa"); - $order->setCity("Lyon"); - $order->setDate('0001-01-01 00:00:00'); //<-- null replacement - $order->setPostalCode("69004"); - $order->setProvince("Rhone"); - $order->setStreet("rue Durand"); - - $this->sqlmap->insert("InsertOrderViaParameterMap", $order); - - $orderTest = $this->sqlmap->queryForObject("GetOrderByHashTable", 99); - - $this->assertEquals($orderTest["Date"], '0001-01-01 00:00:00'); - } - - /// Test null replacement in ParameterMap property - /// for Guid - function testNullValueReplacementForGuidValue() - { - if($this->hasSupportFor('last_insert_id')) - { - $category = new Category(); - $category->setName("Totoasdasd"); - $category->setGuidString('00000000-0000-0000-0000-000000000000'); - - $key = $this->sqlmap->insert("InsertCategoryNull", $category); - - $categoryRead = $this->sqlmap->queryForObject("GetCategory", $key); - - $this->assertEquals($category->getName(), $categoryRead->getName()); - $this->assertEquals('', $categoryRead->getGuidString()); - } - } - - - -/// Test complex mapping Via hasTable - /// - /// - /// map.Add("Item", Item); - /// map.Add("Order", Order); - /// - /// - /// ... #Item.prop1#...#Order.prop2# - /// - /// - /// - function testComplexMappingViaHasTable() - { - $a = new Account(); - $a->setFirstName("Joe"); - - $param["Account"] = $a; - - $o = new Order(); - $o->setCity("Dalton"); - $param["Order"] = $o; - - $accountTest = $this->sqlmap->queryForObject("GetAccountComplexMapping", $param); - - $this->assertAccount1($accountTest); - } - -/* - /// Test ByteArrayTypeHandler via Picture Property - function testByteArrayTypeHandler() - { - $account = $this->newAccount6(); - - $this->sqlmap->insert("InsertAccountViaParameterMap", $account); - - $order = new Order(); - $order->setId(99); - $order->setCardExpiry("09/11"); - $order->setAccount($account); - $order->setCardNumber("154564656"); - $order->setCardType("Visa"); - $order->setCity("Lyon"); - $order->setDate(0); - $order->setPostalCode("69004"); - $order->setProvince("Rhone"); - $order->setStreet("rue Durand"); - - $this->sqlmap->insert("InsertOrderViaParameterMap", $order); - - $item = new LineItem(); - $item->setId(99); - $item->setCode("test"); - $item->setPrice(-99.99); - $item->setQuantity(99); - $item->setOrder($order); - $item->setPicture(null); - - // Check insert - $this->sqlmap->insert("InsertLineItemWithPicture", $item); - - // select - $item = null; - - $param["LineItem_ID"] = 99; - $param["Order_ID"] = 99; - - $item = $this->sqlmap->queryForObject("GetSpecificLineItemWithPicture", $param); - - $this->assertNotNull($item->getId()); -// $this->assertNotNull($item->getPicture()); -// $this->assertEquals( GetSize(item.Picture), this.GetSize( this.GetPicture() )); - } -*/ - - /// Test extend parameter map capacity - /// (Support Requests 1043181) - function testInsertOrderViaExtendParameterMap() - { - $this->sqlmap->getTypeHandlerFactory()->register('HundredsBool', new HundredsBool()); - - $account = $this->newAccount6(); - $this->sqlmap->insert("InsertAccountViaParameterMap", $account); - - $order = new Order(); - $order->setId(99); - $order->setCardExpiry("09/11"); - $order->setAccount($account); - $order->setCardNumber("154564656"); - $order->setCardType("Visa"); - $order->setCity("Lyon"); - $order->setDate(null); //<-- null replacement - $order->setPostalCode("69004"); - $order->setProvince("Rhone"); - $order->setStreet("rue Durand"); - - $this->sqlmap->insert("InsertOrderViaExtendParameterMap", $order); - - $orderTest = $this->sqlmap->queryForObject("GetOrderLiteByColumnName", 99); - - $this->assertEquals($order->getCity(), $orderTest->getCity()); - } -/**/ -} - +initSqlMap(); + } + + function setup() + { + $this->initScript('account-init.sql'); +// $this->initScript('account-procedure.sql'); + $this->initScript('order-init.sql'); +// $this->initScript('line-item-init.sql'); + $this->initScript('category-init.sql'); + } + + /// Test null replacement in ParameterMap property + function testNullValueReplacement() + { + $account = $this->newAccount6(); + + $this->sqlmap->insert("InsertAccountViaParameterMap", $account); + $account = $this->sqlmap->queryForObject("GetAccountNullableEmail", 6); + + $this->assertNull($account->getEmailAddress(), 'no_email@provided.com'); + + $this->assertAccount6($account); + } + + /// Test Test Null Value Replacement Inline + function testNullValueReplacementInline() + { + $account = $this->newAccount6(); + + $this->sqlmap->insert("InsertAccountViaInlineParameters", $account); + $account = $this->sqlmap->queryForObject("GetAccountNullableEmail", 6); + $this->assertNull($account->getEmailAddress()); + + $this->assertAccount6($account); + } + + /// Test Test Null Value Replacement Inline + function testSpecifiedType() + { + $account = $this->newAccount6(); + $account->setEmailAddress(null); + $this->sqlmap->insert("InsertAccountNullableEmail", $account); + $account = $this->sqlmap->queryForObject("GetAccountNullableEmail", 6); + $this->assertAccount6($account); + } + + + /// Test Test Null Value Replacement Inline + function testUnknownParameterClass() + { + $account = $this->newAccount6(); + $account->setEmailAddress(null); + $this->sqlmap->insert("InsertAccountUknownParameterClass", $account); + $account = $this->sqlmap->queryForObject("GetAccountNullableEmail", 6); + $this->assertAccount6($account); + } + + + /// Test null replacement in ParameterMap property + /// for System.DateTime.MinValue + function testNullValueReplacementForDateTimeMinValue() + { + $account = $this->newAccount6(); + $this->sqlmap->insert("InsertAccountViaParameterMap", $account); + $order = new Order(); + $order->setId(99); + $order->setCardExpiry("09/11"); + $order->setAccount($account); + $order->setCardNumber("154564656"); + $order->setCardType("Visa"); + $order->setCity("Lyon"); + $order->setDate(null); + $order->setPostalCode("69004"); + $order->setProvince("Rhone"); + $order->setStreet("rue Durand"); + + $this->sqlmap->insert("InsertOrderViaParameterMap", $order); + + $orderTest = $this->sqlmap->queryForObject("GetOrderLiteByColumnName", 99); + + $this->assertEquals($order->getCity(), $orderTest->getCity()); + } + + /// Test null replacement in ParameterMap/Hahstable property + /// for System.DateTime.MinValue + function testNullValueReplacementForDateTimeWithHashtable() + { + $account = $this->newAccount6(); + + $this->sqlmap->insert("InsertAccountViaParameterMap", $account); + + $order = new Order(); + $order->setId(99); + $order->setCardExpiry("09/11"); + $order->setAccount($account); + $order->setCardNumber("154564656"); + $order->setCardType("Visa"); + $order->setCity("Lyon"); + $order->setDate('0001-01-01 00:00:00'); //<-- null replacement + $order->setPostalCode("69004"); + $order->setProvince("Rhone"); + $order->setStreet("rue Durand"); + + $this->sqlmap->insert("InsertOrderViaParameterMap", $order); + + $orderTest = $this->sqlmap->queryForObject("GetOrderByHashTable", 99); + + $this->assertEquals($orderTest["Date"], '0001-01-01 00:00:00'); + } + + /// Test null replacement in ParameterMap property + /// for Guid + function testNullValueReplacementForGuidValue() + { + if($this->hasSupportFor('last_insert_id')) + { + $category = new Category(); + $category->setName("Totoasdasd"); + $category->setGuidString('00000000-0000-0000-0000-000000000000'); + + $key = $this->sqlmap->insert("InsertCategoryNull", $category); + + $categoryRead = $this->sqlmap->queryForObject("GetCategory", $key); + + $this->assertEquals($category->getName(), $categoryRead->getName()); + $this->assertEquals('', $categoryRead->getGuidString()); + } + } + + + +/// Test complex mapping Via hasTable + /// + /// + /// map.Add("Item", Item); + /// map.Add("Order", Order); + /// + /// + /// ... #Item.prop1#...#Order.prop2# + /// + /// + /// + function testComplexMappingViaHasTable() + { + $a = new Account(); + $a->setFirstName("Joe"); + + $param["Account"] = $a; + + $o = new Order(); + $o->setCity("Dalton"); + $param["Order"] = $o; + + $accountTest = $this->sqlmap->queryForObject("GetAccountComplexMapping", $param); + + $this->assertAccount1($accountTest); + } + +/* + /// Test ByteArrayTypeHandler via Picture Property + function testByteArrayTypeHandler() + { + $account = $this->newAccount6(); + + $this->sqlmap->insert("InsertAccountViaParameterMap", $account); + + $order = new Order(); + $order->setId(99); + $order->setCardExpiry("09/11"); + $order->setAccount($account); + $order->setCardNumber("154564656"); + $order->setCardType("Visa"); + $order->setCity("Lyon"); + $order->setDate(0); + $order->setPostalCode("69004"); + $order->setProvince("Rhone"); + $order->setStreet("rue Durand"); + + $this->sqlmap->insert("InsertOrderViaParameterMap", $order); + + $item = new LineItem(); + $item->setId(99); + $item->setCode("test"); + $item->setPrice(-99.99); + $item->setQuantity(99); + $item->setOrder($order); + $item->setPicture(null); + + // Check insert + $this->sqlmap->insert("InsertLineItemWithPicture", $item); + + // select + $item = null; + + $param["LineItem_ID"] = 99; + $param["Order_ID"] = 99; + + $item = $this->sqlmap->queryForObject("GetSpecificLineItemWithPicture", $param); + + $this->assertNotNull($item->getId()); +// $this->assertNotNull($item->getPicture()); +// $this->assertEquals( GetSize(item.Picture), this.GetSize( this.GetPicture() )); + } +*/ + + /// Test extend parameter map capacity + /// (Support Requests 1043181) + function testInsertOrderViaExtendParameterMap() + { + $this->sqlmap->getTypeHandlerFactory()->register('HundredsBool', new HundredsBool()); + + $account = $this->newAccount6(); + $this->sqlmap->insert("InsertAccountViaParameterMap", $account); + + $order = new Order(); + $order->setId(99); + $order->setCardExpiry("09/11"); + $order->setAccount($account); + $order->setCardNumber("154564656"); + $order->setCardType("Visa"); + $order->setCity("Lyon"); + $order->setDate(null); //<-- null replacement + $order->setPostalCode("69004"); + $order->setProvince("Rhone"); + $order->setStreet("rue Durand"); + + $this->sqlmap->insert("InsertOrderViaExtendParameterMap", $order); + + $orderTest = $this->sqlmap->queryForObject("GetOrderLiteByColumnName", 99); + + $this->assertEquals($order->getCity(), $orderTest->getCity()); + } +/**/ +} + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/PropertyAccessTest.php b/tests/unit/SQLMap/PropertyAccessTest.php index 04bb8c17..0e17e8d5 100644 --- a/tests/unit/SQLMap/PropertyAccessTest.php +++ b/tests/unit/SQLMap/PropertyAccessTest.php @@ -1,77 +1,77 @@ -Id = 10; - $account->FirstName = "Luky"; - $account->LastName = "Luke"; - $account->EmailAddress = "luly.luke@somewhere.com"; - - $two = new AccountBis(); - $two->Id = 12; - $two->FirstName = "Mini Me!"; - $account->More = $two; - - $account6 = $this->NewAccount6(); - $two->More = $account6; - - $this->assertEquals(10, TPropertyAccess::get($account, 'Id')); - $this->assertEquals(12, TPropertyAccess::get($account, 'More.Id')); - $this->assertEquals(6, TPropertyAccess::get($account, 'More.More.Id')); - } - - function testSetPublicProperty() - { - $account = new AccountBis(); - - $account->Id = 10; - $account->FirstName = "Luky"; - $account->LastName = "Luke"; - $account->EmailAddress = "luly.luke@somewhere.com"; - - $two = new AccountBis(); - $two->Id = 12; - $two->FirstName = "Mini Me!"; - TPropertyAccess::set($account, 'More', $two); - - $account6 = $this->NewAccount6(); - TPropertyAccess::set($account, 'More.More', $account6); - - TPropertyAccess::set($account, 'More.More.EmailAddress', 'hahaha'); - - $this->assertEquals(10, TPropertyAccess::get($account, 'Id')); - $this->assertEquals(12, TPropertyAccess::get($account, 'More.Id')); - $this->assertEquals(6, TPropertyAccess::get($account, 'More.More.Id')); - - $this->assertEquals('hahaha', - TPropertyAccess::get($account, 'More.More.EmailAddress')); - } - - function testArrayAccessProperty() - { - $account = new AccountBis(); - $things['more'] = 1; - $things['accounts'] = $this->NewAccount6(); - $account->More = $things; - - $this->assertEquals(6, TPropertyAccess::get($account, 'More.accounts.ID')); - - TPropertyAccess::set($account, 'More.accounts.EmailAddress', 'adssd'); - $this->assertEquals('adssd', TPropertyAccess::get($account, 'More.accounts.EmailAddress')); - - $this->assertEquals(1, TPropertyAccess::get($things, 'more')); - } - -} - - +Id = 10; + $account->FirstName = "Luky"; + $account->LastName = "Luke"; + $account->EmailAddress = "luly.luke@somewhere.com"; + + $two = new AccountBis(); + $two->Id = 12; + $two->FirstName = "Mini Me!"; + $account->More = $two; + + $account6 = $this->NewAccount6(); + $two->More = $account6; + + $this->assertEquals(10, TPropertyAccess::get($account, 'Id')); + $this->assertEquals(12, TPropertyAccess::get($account, 'More.Id')); + $this->assertEquals(6, TPropertyAccess::get($account, 'More.More.Id')); + } + + function testSetPublicProperty() + { + $account = new AccountBis(); + + $account->Id = 10; + $account->FirstName = "Luky"; + $account->LastName = "Luke"; + $account->EmailAddress = "luly.luke@somewhere.com"; + + $two = new AccountBis(); + $two->Id = 12; + $two->FirstName = "Mini Me!"; + TPropertyAccess::set($account, 'More', $two); + + $account6 = $this->NewAccount6(); + TPropertyAccess::set($account, 'More.More', $account6); + + TPropertyAccess::set($account, 'More.More.EmailAddress', 'hahaha'); + + $this->assertEquals(10, TPropertyAccess::get($account, 'Id')); + $this->assertEquals(12, TPropertyAccess::get($account, 'More.Id')); + $this->assertEquals(6, TPropertyAccess::get($account, 'More.More.Id')); + + $this->assertEquals('hahaha', + TPropertyAccess::get($account, 'More.More.EmailAddress')); + } + + function testArrayAccessProperty() + { + $account = new AccountBis(); + $things['more'] = 1; + $things['accounts'] = $this->NewAccount6(); + $account->More = $things; + + $this->assertEquals(6, TPropertyAccess::get($account, 'More.accounts.ID')); + + TPropertyAccess::set($account, 'More.accounts.EmailAddress', 'adssd'); + $this->assertEquals('adssd', TPropertyAccess::get($account, 'More.accounts.EmailAddress')); + + $this->assertEquals(1, TPropertyAccess::get($things, 'more')); + } + +} + + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/ResultClassTest.php b/tests/unit/SQLMap/ResultClassTest.php index 93f93069..ec82b983 100644 --- a/tests/unit/SQLMap/ResultClassTest.php +++ b/tests/unit/SQLMap/ResultClassTest.php @@ -1,282 +1,282 @@ -initSqlMap(); - } - - /** - * Test a boolean resultClass - */ - function testBoolean() - { - $bit = $this->sqlmap->queryForObject("GetBoolean", 1); - - $this->assertEquals(true, $bit); - } - - /** - * Test a boolean implicit resultClass - */ - function testBooleanWithoutResultClass() - { - $bit = (boolean)$this->sqlmap->queryForObject("GetBooleanWithoutResultClass", 1); - - $this->assertEquals(true, $bit); - } - - /** - * Test a byte resultClass - */ - function testByte() - { - $letter = $this->sqlmap->queryForObject("GetByte", 1); - - $this->assertEquals(155, (int)$letter); - } - - /** - * Test a byte implicit resultClass - */ - function testByteWithoutResultClass() - { - $letter = $this->sqlmap->queryForObject("GetByteWithoutResultClass", 1); - - $this->assertEquals(155, (int)$letter); - } - - /** - * Test a char resultClass - */ - function testChar() - { - $letter = $this->sqlmap->queryForObject("GetChar", 1); - - $this->assertEquals('a', trim($letter)); - } - - /** - * Test a char implicit resultClass - */ - function testCharWithoutResultClass() - { - $letter = $this->sqlmap->queryForObject("GetCharWithoutResultClass", 1); - - $this->assertEquals('a', trim($letter)); - } - - /** - * Test a DateTime resultClass - */ - function testDateTime() - { - $orderDate = $this->sqlmap->queryForObject("GetDate", 1); - - $date = @mktime(8, 15, 00, 2, 15, 2003); - - $this->assertEquals($date, $orderDate->getTimeStamp()); - } - - /** - * Test a DateTime implicit resultClass - */ - function testDateTimeWithoutResultClass() - { - $date = $this->sqlmap->queryForObject("GetDateWithoutResultClass", 1); - $orderDate = new TDateTime; - $orderDate->setDateTime($date); - $date = @mktime(8, 15, 00, 2, 15, 2003); - - $this->assertEquals($date, $orderDate->getTimeStamp()); - } - - /** - * Test a decimal resultClass - */ - function testDecimal() - { - $price = $this->sqlmap->queryForObject("GetDecimal", 1); - - $this->assertEquals(1.56, $price); - } - - /** - * Test a decimal implicit resultClass - */ - function testDecimalWithoutResultClass() - { - $price = $this->sqlmap->queryForObject("GetDecimalWithoutResultClass", 1); - - $this->assertEquals(1.56, (float)$price); - } - - /** - * Test a double resultClass - */ - function testDouble() - { - $price = $this->sqlmap->queryForObject("GetDouble", 1); - - $this->assertEquals(99.5, $price); - } - - /** - * Test a double implicit resultClass - */ - - function testDoubleWithoutResultClass() - { - $price = $this->sqlmap->queryForObject("GetDoubleWithoutResultClass", 1); - - $this->assertEquals(99.5, (float)$price); - } - - /** - * IBATISNET-25 Error applying ResultMap when using 'Guid' in resultClass - */ -/* function testGuid() - { - Guid newGuid = new Guid("CD5ABF17-4BBC-4C86-92F1-257735414CF4"); - - Guid guid = (Guid) $this->sqlmap->queryForObject("GetGuid", 1); - - $this->assertEquals(newGuid, guid); - } -*/ - - /** - * Test a Guid implicit resultClass - */ -/* function testGuidWithoutResultClass() - { - Guid newGuid = new Guid("CD5ABF17-4BBC-4C86-92F1-257735414CF4"); - - string guidString = Convert.ToString($this->sqlmap->queryForObject("GetGuidWithoutResultClass", 1)); - - Guid guid = new Guid(guidString); - - $this->assertEquals(newGuid, guid); - } -*/ - /** - * Test a int16 resultClass (integer in PHP) - */ - - function testInt16() - { - $integer = $this->sqlmap->queryForObject("GetInt16", 1); - - $this->assertEquals(32111, $integer); - } - - /** - * Test a int16 implicit resultClass (integer in PHP) - */ - - function testInt16WithoutResultClass() - { - $integer = $this->sqlmap->queryForObject("GetInt16WithoutResultClass", 1); - - $this->assertEquals(32111, (int)$integer); - } - - /** - * Test a int 32 resultClass (integer in PHP) - */ - - - function testInt32() - { - $integer = $this->sqlmap->queryForObject("GetInt32", 1); - - $this->assertEquals(999999, $integer); - } - - /** - * Test a int 32 implicit resultClass (integer in PHP) - */ - - - function testInt32WithoutResultClass() - { - $integer = $this->sqlmap->queryForObject("GetInt32WithoutResultClass", 1); - - $this->assertEquals(999999, (int)$integer); - } - - /** - * Test a int64 resultClass (float in PHP) - */ - - function testInt64() - { - $bigInt = $this->sqlmap->queryForObject("GetInt64", 1); - - $this->assertEquals(9223372036854775800, $bigInt); - } - - /** - * Test a int64 implicit resultClass (float in PHP) - */ - - function testInt64WithoutResultClass() - { - $bigInt = $this->sqlmap->queryForObject("GetInt64WithoutResultClass", 1); - - $this->assertEquals(9223372036854775800, (double)$bigInt); - } - - /** - * Test a single/float resultClass - */ - - function testSingle() - { - $price = (float)$this->sqlmap->queryForObject("GetSingle", 1); - - $this->assertEquals(92233.5, $price); - } - - /** - * Test a single/float implicit resultClass - */ - - function testSingleWithoutResultClass() - { - $price = $this->sqlmap->queryForObject("GetSingleWithoutResultClass", 1); - - $this->assertEquals(92233.5, (float)$price); - } - - /** - * Test a string resultClass - */ - - function testString() - { - $cardType = $this->sqlmap->queryForObject("GetString", 1); - - $this->assertEquals("VISA", $cardType); - } - - /** - * Test a string implicit resultClass - */ - - function testStringWithoutResultClass() - { - $cardType = $this->sqlmap->queryForObject("GetStringWithoutResultClass", 1); - - $this->assertEquals("VISA", $cardType); - } -/**/ -} - +initSqlMap(); + } + + /** + * Test a boolean resultClass + */ + function testBoolean() + { + $bit = $this->sqlmap->queryForObject("GetBoolean", 1); + + $this->assertEquals(true, $bit); + } + + /** + * Test a boolean implicit resultClass + */ + function testBooleanWithoutResultClass() + { + $bit = (boolean)$this->sqlmap->queryForObject("GetBooleanWithoutResultClass", 1); + + $this->assertEquals(true, $bit); + } + + /** + * Test a byte resultClass + */ + function testByte() + { + $letter = $this->sqlmap->queryForObject("GetByte", 1); + + $this->assertEquals(155, (int)$letter); + } + + /** + * Test a byte implicit resultClass + */ + function testByteWithoutResultClass() + { + $letter = $this->sqlmap->queryForObject("GetByteWithoutResultClass", 1); + + $this->assertEquals(155, (int)$letter); + } + + /** + * Test a char resultClass + */ + function testChar() + { + $letter = $this->sqlmap->queryForObject("GetChar", 1); + + $this->assertEquals('a', trim($letter)); + } + + /** + * Test a char implicit resultClass + */ + function testCharWithoutResultClass() + { + $letter = $this->sqlmap->queryForObject("GetCharWithoutResultClass", 1); + + $this->assertEquals('a', trim($letter)); + } + + /** + * Test a DateTime resultClass + */ + function testDateTime() + { + $orderDate = $this->sqlmap->queryForObject("GetDate", 1); + + $date = @mktime(8, 15, 00, 2, 15, 2003); + + $this->assertEquals($date, $orderDate->getTimeStamp()); + } + + /** + * Test a DateTime implicit resultClass + */ + function testDateTimeWithoutResultClass() + { + $date = $this->sqlmap->queryForObject("GetDateWithoutResultClass", 1); + $orderDate = new TDateTime; + $orderDate->setDateTime($date); + $date = @mktime(8, 15, 00, 2, 15, 2003); + + $this->assertEquals($date, $orderDate->getTimeStamp()); + } + + /** + * Test a decimal resultClass + */ + function testDecimal() + { + $price = $this->sqlmap->queryForObject("GetDecimal", 1); + + $this->assertEquals(1.56, $price); + } + + /** + * Test a decimal implicit resultClass + */ + function testDecimalWithoutResultClass() + { + $price = $this->sqlmap->queryForObject("GetDecimalWithoutResultClass", 1); + + $this->assertEquals(1.56, (float)$price); + } + + /** + * Test a double resultClass + */ + function testDouble() + { + $price = $this->sqlmap->queryForObject("GetDouble", 1); + + $this->assertEquals(99.5, $price); + } + + /** + * Test a double implicit resultClass + */ + + function testDoubleWithoutResultClass() + { + $price = $this->sqlmap->queryForObject("GetDoubleWithoutResultClass", 1); + + $this->assertEquals(99.5, (float)$price); + } + + /** + * IBATISNET-25 Error applying ResultMap when using 'Guid' in resultClass + */ +/* function testGuid() + { + Guid newGuid = new Guid("CD5ABF17-4BBC-4C86-92F1-257735414CF4"); + + Guid guid = (Guid) $this->sqlmap->queryForObject("GetGuid", 1); + + $this->assertEquals(newGuid, guid); + } +*/ + + /** + * Test a Guid implicit resultClass + */ +/* function testGuidWithoutResultClass() + { + Guid newGuid = new Guid("CD5ABF17-4BBC-4C86-92F1-257735414CF4"); + + string guidString = Convert.ToString($this->sqlmap->queryForObject("GetGuidWithoutResultClass", 1)); + + Guid guid = new Guid(guidString); + + $this->assertEquals(newGuid, guid); + } +*/ + /** + * Test a int16 resultClass (integer in PHP) + */ + + function testInt16() + { + $integer = $this->sqlmap->queryForObject("GetInt16", 1); + + $this->assertEquals(32111, $integer); + } + + /** + * Test a int16 implicit resultClass (integer in PHP) + */ + + function testInt16WithoutResultClass() + { + $integer = $this->sqlmap->queryForObject("GetInt16WithoutResultClass", 1); + + $this->assertEquals(32111, (int)$integer); + } + + /** + * Test a int 32 resultClass (integer in PHP) + */ + + + function testInt32() + { + $integer = $this->sqlmap->queryForObject("GetInt32", 1); + + $this->assertEquals(999999, $integer); + } + + /** + * Test a int 32 implicit resultClass (integer in PHP) + */ + + + function testInt32WithoutResultClass() + { + $integer = $this->sqlmap->queryForObject("GetInt32WithoutResultClass", 1); + + $this->assertEquals(999999, (int)$integer); + } + + /** + * Test a int64 resultClass (float in PHP) + */ + + function testInt64() + { + $bigInt = $this->sqlmap->queryForObject("GetInt64", 1); + + $this->assertEquals(9223372036854775800, $bigInt); + } + + /** + * Test a int64 implicit resultClass (float in PHP) + */ + + function testInt64WithoutResultClass() + { + $bigInt = $this->sqlmap->queryForObject("GetInt64WithoutResultClass", 1); + + $this->assertEquals(9223372036854775800, (double)$bigInt); + } + + /** + * Test a single/float resultClass + */ + + function testSingle() + { + $price = (float)$this->sqlmap->queryForObject("GetSingle", 1); + + $this->assertEquals(92233.5, $price); + } + + /** + * Test a single/float implicit resultClass + */ + + function testSingleWithoutResultClass() + { + $price = $this->sqlmap->queryForObject("GetSingleWithoutResultClass", 1); + + $this->assertEquals(92233.5, (float)$price); + } + + /** + * Test a string resultClass + */ + + function testString() + { + $cardType = $this->sqlmap->queryForObject("GetString", 1); + + $this->assertEquals("VISA", $cardType); + } + + /** + * Test a string implicit resultClass + */ + + function testStringWithoutResultClass() + { + $cardType = $this->sqlmap->queryForObject("GetStringWithoutResultClass", 1); + + $this->assertEquals("VISA", $cardType); + } +/**/ +} + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/ResultMapTest.php b/tests/unit/SQLMap/ResultMapTest.php index 4909c37f..09fff11d 100644 --- a/tests/unit/SQLMap/ResultMapTest.php +++ b/tests/unit/SQLMap/ResultMapTest.php @@ -1,280 +1,280 @@ -initSqlMap(); - new Order; - new LineItemCollection; - new Account; - } - - function resetDatabase() - { - $this->initScript('account-init.sql'); - $this->initScript('order-init.sql'); - $this->initScript('line-item-init.sql'); -// $this->initScript('enumeration-init.sql'); - } - - function testColumnsByName() - { - $order = $this->sqlmap->QueryForObject('GetOrderLiteByColumnName', 1); - $this->assertOrder1($order); - } - - function testColumnsByIndex() - { - $order = $this->sqlmap->QueryForObject("GetOrderLiteByColumnIndex", 1); - $this->assertOrder1($order); - } - - - function testExtendedResultMap() - { - $order = $this->sqlmap->queryForObject("GetOrderWithLineItemsNoLazyLoad", 1); - $this->assertOrder1($order); - $this->assertTrue($order->getLineItemsList() instanceof TList); - $this->assertEquals(2, $order->getLineItemsList()->getCount()); - } - - function testLazyLoad() - { - $order = $this->sqlmap->QueryForObject("GetOrderWithLineItems", 1); - $this->assertOrder1($order); - $this->assertNotNull($order->getLineItemsList()); - $this->assertFalse($order->getLineItemsList() instanceof TList); - $this->assertEquals(2, $order->getLineItemsList()->getCount()); - - // After a call to a method from a proxy object, - // the proxy object is replaced by the real object. - $this->assertTrue($order->getLineItemsList() instanceof TList); - $this->assertEquals(2, $order->getLineItemsList()->getCount()); - } - - function testLazyLoadWithOpenConnection() - { - $this->sqlmap->openConnection(); - - $this->testLazyLoad(); - $this->sqlmap->closeConnection(); - } - - function testLazyWithTypedCollectionMapping() - { - $order = $this->sqlmap->queryForObject("GetOrderWithLineItemCollection", 1); - $this->assertOrder1($order); - $this->assertNotNull($order->getLineItems()); - $this->assertFalse($order->getLineItemsList() instanceof LineItemCollection); - - $this->assertEquals(2, $order->getLineItems()->getCount()); - - // After a call to a method from a proxy object, - // the proxy object is replaced by the real object. - $this->assertTrue($order->getLineItems() instanceof LineItemCollection); - foreach($order->getLineItems() as $item) - { - $this->assertNotNull($item); - $this->assertTrue($item instanceof LineItem); - } - } - - function testNullValueReplacementOnString() - { - $account = $this->sqlmap->queryForObject("GetAccountViaColumnName", 5); - $this->assertEquals("no_email@provided.com", $account->getEmailAddress()); - } - - function testTypeSpecified() - { - $order = $this->sqlmap->queryForObject("GetOrderWithTypes", 1); - $this->assertOrder1($order); - } - - - function testComplexObjectMapping() - { - $order = $this->sqlmap->queryForObject("GetOrderWithAccount", 1); - $this->assertOrder1($order); - $this->assertAccount1($order->getAccount()); - } - - function testCollectionMappingAndExtends() - { - $order = $this->sqlmap->queryForObject("GetOrderWithLineItemsCollection", 1); - $this->assertOrder1($order); - - // Check strongly typed collection - $this->assertNotNull($order->getLineItems()); - $this->assertEquals(2, $order->getLineItems()->getCount()); - } - - function testListMapping() - { - $order = $this->sqlmap->queryForObject("GetOrderWithLineItems", 1); - $this->assertOrder1($order); - - // Check TList collection - $this->assertNotNull($order->getLineItemsList()); - $this->assertEquals(2, $order->getLineItemsList()->getCount()); - } - - function testArrayMapping() - { - $order = $this->sqlmap->queryForObject("GetOrderWithLineItemArray", 1); - $this->assertOrder1($order); - $this->assertNotNull($order->getLineItemsArray()); - $this->assertTrue(is_array($order->getLineItemsArray())); - $this->assertEquals(2, count($order->getLineItemsArray())); - } - - function testTypedCollectionMapping() - { - $order = $this->sqlmap->queryForObject("GetOrderWithLineItemCollectionNoLazy", 1); - $this->assertOrder1($order); - $this->assertNotNull($order->getLineItems()); - $this->assertTrue($order->getLineItems() instanceof LineItemCollection); - $this->assertEquals(2, $order->getLineItems()->getCount()); - foreach($order->getLineItems() as $item) - { - $this->assertNotNull($item); - $this->assertTrue($item instanceof LineItem); - } - } - - function testHashArrayMapping() - { - $order = $this->sqlmap->queryForObject("GetOrderAsHastable", 1); - $this->assertOrder1AsHashArray($order); - } - - function testNestedObjects() - { - $order = $this->sqlmap->queryForObject("GetOrderJoinedFavourite", 1); - - $this->assertOrder1($order); - $this->assertNotNull($order->getFavouriteLineItem()); - $this->assertEquals(2, (int)$order->getFavouriteLineItem()->getID()); - $this->assertEquals("ESM-23", $order->getFavouriteLineItem()->getCode()); - - } - function testNestedObjects2() - { - $order = $this->sqlmap->queryForObject("GetOrderJoinedFavourite2", 1); - $this->assertOrder1($order); - - $this->assertNotNull($order->getFavouriteLineItem()); - $this->assertEquals(2, (int)$order->getFavouriteLineItem()->getID()); - $this->assertEquals("ESM-23", $order->getFavouriteLineItem()->getCode()); - } - - function testImplicitResultMaps() - { - $order = $this->sqlmap->queryForObject("GetOrderJoinedFavourite3", 1); - - // *** force date to timestamp since data type can't be - // *** explicity known without mapping - $order->setDate(new TDateTime($order->getDate())); - - $this->assertOrder1($order); - - $this->assertNotNull($order->getFavouriteLineItem()); - $this->assertEquals(2, $order->getFavouriteLineItem()->getID()); - $this->assertEquals("ESM-23", $order->getFavouriteLineItem()->getCode()); - } - - function testCompositeKeyMapping() - { - $this->resetDatabase(); - - $order1 = $this->sqlmap->queryForObject("GetOrderWithFavouriteLineItem", 1); - $order2 = $this->sqlmap->queryForObject("GetOrderWithFavouriteLineItem", 2); - - $this->assertNotNull($order1); - $this->assertNotNull($order1->getFavouriteLineItem()); - $this->assertEquals(2, $order1->getFavouriteLineItem()->getID()); - - $this->assertNotNull($order2); - $this->assertNotNull($order2->getFavouriteLineItem()); - $this->assertEquals(1, $order2->getFavouriteLineItem()->getID()); - } - - function testSimpleTypeMapping() - { - $this->resetDatabase(); - - $list = $this->sqlmap->QueryForList("GetAllCreditCardNumbersFromOrders", null); - - $this->assertEquals(5, count($list)); - $this->assertEquals("555555555555", $list[0]); - } - - - function testDecimalTypeMapping() - { - $this->resetDatabase(); - - $param["LineItem_ID"] = 1; - $param["Order_ID"] = 10; - $price = $this->sqlmap->queryForObject("GetLineItemPrice", $param); - $this->assertEquals(gettype($price), 'double'); - $this->assertEquals(45.43, $price); - } - -//todo -/* - function testNullValueReplacementOnEnum() - { - $enum['Id'] = 99; - $enum['Day'] = 'Days.Thu'; - $enum['Color'] = 'Colors.Blue'; - $enum['Month'] = 'Months.All'; - - $this->sqlmap->insert("InsertEnumViaParameterMap", $enum); - - $enumClass = $this->sqlmap->queryForObject("GetEnumerationNullValue", 99); - - $this->assertEquals($enumClass['Day'], 'Days.Thu'); - $this->asserEquals($enumClass['Color'], 'Colors.Blue'); - $this->assertEquals($enumClass['Month'], 'Months.All'); - } - - - function testByteArrayMapping() - { - } - - function testNullValueReplacementOnDecimal() - { - } - - function testNullValueReplacementOnDateTime() - { - } -*/ - -//future work - -/* - //requires dynamic SQL - function testDynamiqueCompositeKeyMapping() - { - $order1 = $this->sqlmap->queryForObject("GetOrderWithDynFavouriteLineItem", 1); - - $this->assertNotNull($order1); - $this->assertNotNull($order1->getFavouriteLineItem()); - var_dump($order1); - $this->assertEquals(2, $order1->getFavouriteLineItem()->getID()); - } -*/ - -} - +initSqlMap(); + new Order; + new LineItemCollection; + new Account; + } + + function resetDatabase() + { + $this->initScript('account-init.sql'); + $this->initScript('order-init.sql'); + $this->initScript('line-item-init.sql'); +// $this->initScript('enumeration-init.sql'); + } + + function testColumnsByName() + { + $order = $this->sqlmap->QueryForObject('GetOrderLiteByColumnName', 1); + $this->assertOrder1($order); + } + + function testColumnsByIndex() + { + $order = $this->sqlmap->QueryForObject("GetOrderLiteByColumnIndex", 1); + $this->assertOrder1($order); + } + + + function testExtendedResultMap() + { + $order = $this->sqlmap->queryForObject("GetOrderWithLineItemsNoLazyLoad", 1); + $this->assertOrder1($order); + $this->assertTrue($order->getLineItemsList() instanceof TList); + $this->assertEquals(2, $order->getLineItemsList()->getCount()); + } + + function testLazyLoad() + { + $order = $this->sqlmap->QueryForObject("GetOrderWithLineItems", 1); + $this->assertOrder1($order); + $this->assertNotNull($order->getLineItemsList()); + $this->assertFalse($order->getLineItemsList() instanceof TList); + $this->assertEquals(2, $order->getLineItemsList()->getCount()); + + // After a call to a method from a proxy object, + // the proxy object is replaced by the real object. + $this->assertTrue($order->getLineItemsList() instanceof TList); + $this->assertEquals(2, $order->getLineItemsList()->getCount()); + } + + function testLazyLoadWithOpenConnection() + { + $this->sqlmap->openConnection(); + + $this->testLazyLoad(); + $this->sqlmap->closeConnection(); + } + + function testLazyWithTypedCollectionMapping() + { + $order = $this->sqlmap->queryForObject("GetOrderWithLineItemCollection", 1); + $this->assertOrder1($order); + $this->assertNotNull($order->getLineItems()); + $this->assertFalse($order->getLineItemsList() instanceof LineItemCollection); + + $this->assertEquals(2, $order->getLineItems()->getCount()); + + // After a call to a method from a proxy object, + // the proxy object is replaced by the real object. + $this->assertTrue($order->getLineItems() instanceof LineItemCollection); + foreach($order->getLineItems() as $item) + { + $this->assertNotNull($item); + $this->assertTrue($item instanceof LineItem); + } + } + + function testNullValueReplacementOnString() + { + $account = $this->sqlmap->queryForObject("GetAccountViaColumnName", 5); + $this->assertEquals("no_email@provided.com", $account->getEmailAddress()); + } + + function testTypeSpecified() + { + $order = $this->sqlmap->queryForObject("GetOrderWithTypes", 1); + $this->assertOrder1($order); + } + + + function testComplexObjectMapping() + { + $order = $this->sqlmap->queryForObject("GetOrderWithAccount", 1); + $this->assertOrder1($order); + $this->assertAccount1($order->getAccount()); + } + + function testCollectionMappingAndExtends() + { + $order = $this->sqlmap->queryForObject("GetOrderWithLineItemsCollection", 1); + $this->assertOrder1($order); + + // Check strongly typed collection + $this->assertNotNull($order->getLineItems()); + $this->assertEquals(2, $order->getLineItems()->getCount()); + } + + function testListMapping() + { + $order = $this->sqlmap->queryForObject("GetOrderWithLineItems", 1); + $this->assertOrder1($order); + + // Check TList collection + $this->assertNotNull($order->getLineItemsList()); + $this->assertEquals(2, $order->getLineItemsList()->getCount()); + } + + function testArrayMapping() + { + $order = $this->sqlmap->queryForObject("GetOrderWithLineItemArray", 1); + $this->assertOrder1($order); + $this->assertNotNull($order->getLineItemsArray()); + $this->assertTrue(is_array($order->getLineItemsArray())); + $this->assertEquals(2, count($order->getLineItemsArray())); + } + + function testTypedCollectionMapping() + { + $order = $this->sqlmap->queryForObject("GetOrderWithLineItemCollectionNoLazy", 1); + $this->assertOrder1($order); + $this->assertNotNull($order->getLineItems()); + $this->assertTrue($order->getLineItems() instanceof LineItemCollection); + $this->assertEquals(2, $order->getLineItems()->getCount()); + foreach($order->getLineItems() as $item) + { + $this->assertNotNull($item); + $this->assertTrue($item instanceof LineItem); + } + } + + function testHashArrayMapping() + { + $order = $this->sqlmap->queryForObject("GetOrderAsHastable", 1); + $this->assertOrder1AsHashArray($order); + } + + function testNestedObjects() + { + $order = $this->sqlmap->queryForObject("GetOrderJoinedFavourite", 1); + + $this->assertOrder1($order); + $this->assertNotNull($order->getFavouriteLineItem()); + $this->assertEquals(2, (int)$order->getFavouriteLineItem()->getID()); + $this->assertEquals("ESM-23", $order->getFavouriteLineItem()->getCode()); + + } + function testNestedObjects2() + { + $order = $this->sqlmap->queryForObject("GetOrderJoinedFavourite2", 1); + $this->assertOrder1($order); + + $this->assertNotNull($order->getFavouriteLineItem()); + $this->assertEquals(2, (int)$order->getFavouriteLineItem()->getID()); + $this->assertEquals("ESM-23", $order->getFavouriteLineItem()->getCode()); + } + + function testImplicitResultMaps() + { + $order = $this->sqlmap->queryForObject("GetOrderJoinedFavourite3", 1); + + // *** force date to timestamp since data type can't be + // *** explicity known without mapping + $order->setDate(new TDateTime($order->getDate())); + + $this->assertOrder1($order); + + $this->assertNotNull($order->getFavouriteLineItem()); + $this->assertEquals(2, $order->getFavouriteLineItem()->getID()); + $this->assertEquals("ESM-23", $order->getFavouriteLineItem()->getCode()); + } + + function testCompositeKeyMapping() + { + $this->resetDatabase(); + + $order1 = $this->sqlmap->queryForObject("GetOrderWithFavouriteLineItem", 1); + $order2 = $this->sqlmap->queryForObject("GetOrderWithFavouriteLineItem", 2); + + $this->assertNotNull($order1); + $this->assertNotNull($order1->getFavouriteLineItem()); + $this->assertEquals(2, $order1->getFavouriteLineItem()->getID()); + + $this->assertNotNull($order2); + $this->assertNotNull($order2->getFavouriteLineItem()); + $this->assertEquals(1, $order2->getFavouriteLineItem()->getID()); + } + + function testSimpleTypeMapping() + { + $this->resetDatabase(); + + $list = $this->sqlmap->QueryForList("GetAllCreditCardNumbersFromOrders", null); + + $this->assertEquals(5, count($list)); + $this->assertEquals("555555555555", $list[0]); + } + + + function testDecimalTypeMapping() + { + $this->resetDatabase(); + + $param["LineItem_ID"] = 1; + $param["Order_ID"] = 10; + $price = $this->sqlmap->queryForObject("GetLineItemPrice", $param); + $this->assertEquals(gettype($price), 'double'); + $this->assertEquals(45.43, $price); + } + +//todo +/* + function testNullValueReplacementOnEnum() + { + $enum['Id'] = 99; + $enum['Day'] = 'Days.Thu'; + $enum['Color'] = 'Colors.Blue'; + $enum['Month'] = 'Months.All'; + + $this->sqlmap->insert("InsertEnumViaParameterMap", $enum); + + $enumClass = $this->sqlmap->queryForObject("GetEnumerationNullValue", 99); + + $this->assertEquals($enumClass['Day'], 'Days.Thu'); + $this->asserEquals($enumClass['Color'], 'Colors.Blue'); + $this->assertEquals($enumClass['Month'], 'Months.All'); + } + + + function testByteArrayMapping() + { + } + + function testNullValueReplacementOnDecimal() + { + } + + function testNullValueReplacementOnDateTime() + { + } +*/ + +//future work + +/* + //requires dynamic SQL + function testDynamiqueCompositeKeyMapping() + { + $order1 = $this->sqlmap->queryForObject("GetOrderWithDynFavouriteLineItem", 1); + + $this->assertNotNull($order1); + $this->assertNotNull($order1->getFavouriteLineItem()); + var_dump($order1); + $this->assertEquals(2, $order1->getFavouriteLineItem()->getID()); + } +*/ + +} + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/SelectKeyTest.php b/tests/unit/SQLMap/SelectKeyTest.php index 6ed48165..34ffbbb7 100644 --- a/tests/unit/SQLMap/SelectKeyTest.php +++ b/tests/unit/SQLMap/SelectKeyTest.php @@ -1,120 +1,120 @@ -initSqlMap(); - - //force autoload - new Account; - new Order; - new LineItem; - new LineItemCollection; - new A; new B; new C; new D; new E; new F; - } - - /** - * Test Insert with post GeneratedKey - */ - function testInsertPostKey() - { - $this->initScript('line-item-init.sql'); - - $item = new LineItem(); - - $item->setId(10); - $item->setCode("blah"); - $item->setOrder(new Order()); - $item->getOrder()->setId(9); - $item->setPrice(44.00); - $item->setQuantity(1); - - $key = $this->sqlmap->Insert("InsertLineItemPostKey", $item); - - $this->assertEquals(99, $key); - $this->assertEquals(99, $item->getId()); - - $param["Order_ID"] = 9; - $param["LineItem_ID"] =10; - $testItem = $this->sqlmap->QueryForObject("GetSpecificLineItem", $param); - - $this->assertNotNull($testItem); - $this->assertEquals(10, $testItem->getId()); - - $this->initScript('line-item-init.sql'); - } - - /** - * Test Insert pre GeneratedKey - */ - function testInsertPreKey() - { - $this->initScript('line-item-init.sql'); - - $item = new LineItem(); - - $item->setId(10); - $item->setCode("blah"); - $item->setOrder(new Order()); - $item->getOrder()->setId(9); - $item->setPrice(44.00); - $item->setQuantity(1); - - $key = $this->sqlmap->Insert("InsertLineItemPreKey", $item); - - $this->assertEquals(99, $key); - $this->assertEquals(99, $item->getId()); - - $param["Order_ID"] = 9; - $param["LineItem_ID"] = 99; - - $testItem = $this->sqlmap->QueryForObject("GetSpecificLineItem", $param); - - $this->assertNotNull($testItem); - $this->assertEquals(99, $testItem->getId()); - - $this->initScript('line-item-init.sql'); - } - - /** - * Test Test Insert No Key - */ - function testInsertNoKey() - { - $this->initScript('line-item-init.sql'); - - $item = new LineItem(); - - $item->setId(100); - $item->setCode("blah"); - $item->setOrder(new Order()); - $item->getOrder()->setId(9); - $item->setPrice(44.00); - $item->setQuantity(1); - - - $key = $this->sqlmap->Insert("InsertLineItemNoKey", $item); - - $this->assertNull($key); - $this->assertEquals(100, $item->getId()); - - $param["Order_ID"] = 9; - $param["LineItem_ID"] = 100; - - $testItem = $this->sqlmap->QueryForObject("GetSpecificLineItem", $param); - - $this->assertNotNull($testItem); - $this->assertEquals(100, $testItem->getId()); - - $this->initScript('line-item-init.sql'); - } -} - +initSqlMap(); + + //force autoload + new Account; + new Order; + new LineItem; + new LineItemCollection; + new A; new B; new C; new D; new E; new F; + } + + /** + * Test Insert with post GeneratedKey + */ + function testInsertPostKey() + { + $this->initScript('line-item-init.sql'); + + $item = new LineItem(); + + $item->setId(10); + $item->setCode("blah"); + $item->setOrder(new Order()); + $item->getOrder()->setId(9); + $item->setPrice(44.00); + $item->setQuantity(1); + + $key = $this->sqlmap->Insert("InsertLineItemPostKey", $item); + + $this->assertEquals(99, $key); + $this->assertEquals(99, $item->getId()); + + $param["Order_ID"] = 9; + $param["LineItem_ID"] =10; + $testItem = $this->sqlmap->QueryForObject("GetSpecificLineItem", $param); + + $this->assertNotNull($testItem); + $this->assertEquals(10, $testItem->getId()); + + $this->initScript('line-item-init.sql'); + } + + /** + * Test Insert pre GeneratedKey + */ + function testInsertPreKey() + { + $this->initScript('line-item-init.sql'); + + $item = new LineItem(); + + $item->setId(10); + $item->setCode("blah"); + $item->setOrder(new Order()); + $item->getOrder()->setId(9); + $item->setPrice(44.00); + $item->setQuantity(1); + + $key = $this->sqlmap->Insert("InsertLineItemPreKey", $item); + + $this->assertEquals(99, $key); + $this->assertEquals(99, $item->getId()); + + $param["Order_ID"] = 9; + $param["LineItem_ID"] = 99; + + $testItem = $this->sqlmap->QueryForObject("GetSpecificLineItem", $param); + + $this->assertNotNull($testItem); + $this->assertEquals(99, $testItem->getId()); + + $this->initScript('line-item-init.sql'); + } + + /** + * Test Test Insert No Key + */ + function testInsertNoKey() + { + $this->initScript('line-item-init.sql'); + + $item = new LineItem(); + + $item->setId(100); + $item->setCode("blah"); + $item->setOrder(new Order()); + $item->getOrder()->setId(9); + $item->setPrice(44.00); + $item->setQuantity(1); + + + $key = $this->sqlmap->Insert("InsertLineItemNoKey", $item); + + $this->assertNull($key); + $this->assertEquals(100, $item->getId()); + + $param["Order_ID"] = 9; + $param["LineItem_ID"] = 100; + + $testItem = $this->sqlmap->QueryForObject("GetSpecificLineItem", $param); + + $this->assertNotNull($testItem); + $this->assertEquals(100, $testItem->getId()); + + $this->initScript('line-item-init.sql'); + } +} + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/SqlMapCacheTest.php b/tests/unit/SQLMap/SqlMapCacheTest.php index a2593e1a..f1746115 100644 --- a/tests/unit/SQLMap/SqlMapCacheTest.php +++ b/tests/unit/SQLMap/SqlMapCacheTest.php @@ -1,77 +1,77 @@ -set($key1, $object1); - $fifo->set($key2, $object2); - - $this->assertTrue($object1 === $fifo->get($key1)); - $this->assertTrue($object2 === $fifo->get($key2)); - - //object 1 should be removed - $fifo->set($key3, $object3); - - $this->assertNull($fifo->get($key1)); - $this->assertTrue($object2 === $fifo->get($key2)); - $this->assertTrue($object3 === $fifo->get($key3)); - - //object 2 should be removed - $fifo->set($key1, $object1); - - $this->assertNull($fifo->get($key2)); - $this->assertTrue($object3 === $fifo->get($key3)); - $this->assertTrue($object1 === $fifo->get($key1)); - } - - function testLruCache() - { - $lru = new TSqlMapLruCache(2); - - $object1 = new TSqlMapper; - $object2 = new TComponent; - $object3 = new TMapper; - - $key1 = 'key1'; - $key2 = 'key2'; - $key3 = 'key3'; - - $lru->set($key1, $object1); - $lru->set($key2, $object2); - - $this->assertTrue($object2 === $lru->get($key2)); - $this->assertTrue($object1 === $lru->get($key1)); - - //object 2 should be removed, i.e. least recently used - $lru->set($key3, $object3); - - $this->assertNull($lru->get($key2)); - $this->assertTrue($object1 === $lru->get($key1)); - $this->assertTrue($object3 === $lru->get($key3)); - - //object 1 will be removed - $lru->set($key2, $object2); - - $this->assertNull($lru->get($key1)); - $this->assertTrue($object2 === $lru->get($key2)); - $this->assertTrue($object3 === $lru->get($key3)); - } -} - - +set($key1, $object1); + $fifo->set($key2, $object2); + + $this->assertTrue($object1 === $fifo->get($key1)); + $this->assertTrue($object2 === $fifo->get($key2)); + + //object 1 should be removed + $fifo->set($key3, $object3); + + $this->assertNull($fifo->get($key1)); + $this->assertTrue($object2 === $fifo->get($key2)); + $this->assertTrue($object3 === $fifo->get($key3)); + + //object 2 should be removed + $fifo->set($key1, $object1); + + $this->assertNull($fifo->get($key2)); + $this->assertTrue($object3 === $fifo->get($key3)); + $this->assertTrue($object1 === $fifo->get($key1)); + } + + function testLruCache() + { + $lru = new TSqlMapLruCache(2); + + $object1 = new TSqlMapper; + $object2 = new TComponent; + $object3 = new TMapper; + + $key1 = 'key1'; + $key2 = 'key2'; + $key3 = 'key3'; + + $lru->set($key1, $object1); + $lru->set($key2, $object2); + + $this->assertTrue($object2 === $lru->get($key2)); + $this->assertTrue($object1 === $lru->get($key1)); + + //object 2 should be removed, i.e. least recently used + $lru->set($key3, $object3); + + $this->assertNull($lru->get($key2)); + $this->assertTrue($object1 === $lru->get($key1)); + $this->assertTrue($object3 === $lru->get($key3)); + + //object 1 will be removed + $lru->set($key2, $object2); + + $this->assertNull($lru->get($key1)); + $this->assertTrue($object2 === $lru->get($key2)); + $this->assertTrue($object3 === $lru->get($key3)); + } +} + + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/StatementTest.php b/tests/unit/SQLMap/StatementTest.php index b014dea4..b549835f 100644 --- a/tests/unit/SQLMap/StatementTest.php +++ b/tests/unit/SQLMap/StatementTest.php @@ -1,1134 +1,1134 @@ -initSqlMap(); - - //force autoload - new Account; - new Order; - new LineItem; - new LineItemCollection; - new A; new B; new C; new D; new E; new F; - } - - public function setup() - { - - } - - function resetDatabase() - { - $this->initScript('account-init.sql'); - $this->initScript('order-init.sql'); - $this->initScript('line-item-init.sql'); -// $this->initScript('enumeration-init.sql'); - $this->initScript('other-init.sql'); - } - - - #region Object Query tests - - /** - * Test Open connection with a connection string - */ - function testOpenConnection() - { - $this->sqlmap->OpenConnection($this->sqlmap->getDataProvider()->getConnectionString()); - $account= $this->sqlmap->QueryForObject("SelectWithProperty"); - $this->sqlmap->CloseConnection(); - $this->assertAccount1($account); - } - - /** - * Test use a statement with property subtitution - * (JIRA 22) - */ - function testSelectWithProperty() - { - $account= $this->sqlmap->QueryForObject("SelectWithProperty"); - $this->assertAccount1($account); - } - - /** - * Test ExecuteQueryForObject Via ColumnName - */ - function testExecuteQueryForObjectViaColumnName() - { - $account= $this->sqlmap->QueryForObject("GetAccountViaColumnName", 1); - $this->assertAccount1($account); - } - - /** - * Test ExecuteQueryForObject Via ColumnIndex - */ - function testExecuteQueryForObjectViaColumnIndex() - { - $account= $this->sqlmap->QueryForObject("GetAccountViaColumnIndex", 1); - $this->assertAccount1($account); - } - - /** - * Test ExecuteQueryForObject Via ResultClass - */ - function testExecuteQueryForObjectViaResultClass() - { - $account= $this->sqlmap->QueryForObject("GetAccountViaResultClass", 1); - $this->assertAccount1($account); - } - - /** - * Test ExecuteQueryForObject With simple ResultClass : string - */ - function testExecuteQueryForObjectWithSimpleResultClass() - { - $email = $this->sqlmap->QueryForObject("GetEmailAddressViaResultClass", 1); - $this->assertEquals("Joe.Dalton@somewhere.com", $email); - } - - /** - * Test ExecuteQueryForObject With simple ResultMap : string - */ - function testExecuteQueryForObjectWithSimpleResultMap() - { - $email = $this->sqlmap->QueryForObject("GetEmailAddressViaResultMap", 1); - $this->assertEquals("Joe.Dalton@somewhere.com", $email); - } - - /** - * Test Primitive ReturnValue : TDateTime - */ - function testPrimitiveReturnValue() - { - $CardExpiry = $this->sqlmap->QueryForObject("GetOrderCardExpiryViaResultClass", 1); - $date = @mktime(8, 15, 00, 2, 15, 2003); - $this->assertEquals($date, $CardExpiry->getTimeStamp()); - } - - /** - * Test ExecuteQueryForObject with result object : Account - */ - function testExecuteQueryForObjectWithResultObject() - { - $account= new Account(); - $testAccount = $this->sqlmap->QueryForObject("GetAccountViaColumnName", 1, $account); - $this->assertAccount1($account); - $this->assertTrue($account == $testAccount); - } - - /** - * Test ExecuteQueryForObject as array - */ - function testExecuteQueryForObjectAsHashArray() - { - $account = $this->sqlmap->QueryForObject("GetAccountAsHashtable", 1); - $this->assertAccount1AsHashArray($account); - } - - /** - * Test ExecuteQueryForObject as Hashtable ResultClass - */ - function testExecuteQueryForObjectAsHashtableResultClass() - { - $account = $this->sqlmap->QueryForObject("GetAccountAsHashtableResultClass", 1); - $this->assertAccount1AsHashArray($account); - } - - /** - * Test ExecuteQueryForObject via Hashtable - */ - function testExecuteQueryForObjectViaHashtable() - { - $param["LineItem_ID"] = 2; - $param["Order_ID"] = 9; - - $testItem = $this->sqlmap->QueryForObject("GetSpecificLineItem", $param); - - $this->assertNotNull($testItem); - $this->assertEquals("TSM-12", $testItem->getCode()); - } - /**/ - - //TODO: Test Query Dynamic Sql Element - function testQueryDynamicSqlElement() - { - //$list = $this->sqlmap->QueryForList("GetDynamicOrderedEmailAddressesViaResultMap", "Account_ID"); - - //$this->assertEquals("Joe.Dalton@somewhere.com", $list[0]); - - //list = $this->sqlmap->QueryForList("GetDynamicOrderedEmailAddressesViaResultMap", "Account_FirstName"); - - //$this->assertEquals("Averel.Dalton@somewhere.com", $list[0]); - - } - - // TODO: Test Execute QueryForList With ResultMap With Dynamic Element - function testExecuteQueryForListWithResultMapWithDynamicElement() - { - //$list = $this->sqlmap->QueryForList("GetAllAccountsViaResultMapWithDynamicElement", "LIKE"); - - //$this->assertAccount1$list[0]); - //$this->assertEquals(3, $list->getCount()); - //$this->assertEquals(1, $list[0]->getID()); - //$this->assertEquals(2, $list[1]->getID()); - //$this->assertEquals(4, $list[2]->getID()); - - //list = $this->sqlmap->QueryForList("GetAllAccountsViaResultMapWithDynamicElement", "="); - - //$this->assertEquals(0, $list->getCount()); - } - - - - /** - * Test Get Account Via Inline Parameters - */ - function testExecuteQueryForObjectViaInlineParameters() - { - $account= new Account(); - $account->setID(1); - - $testAccount = $this->sqlmap->QueryForObject("GetAccountViaInlineParameters", $account); - - $this->assertAccount1($testAccount); - } - /**/ - - // TODO: Test ExecuteQuery For Object With Enum property - - function testExecuteQueryForObjectWithEnum() - { - //$enumClass = $this->sqlmap->QueryForObject("GetEnumeration", 1); - - //$this->assertEquals(enumClass.Day, Days.Sat); - //$this->assertEquals(enumClass.Color, Colors.Red); - //$this->assertEquals(enumClass.Month, Months.August); - - //enumClass = $this->sqlmap->QueryForObject("GetEnumeration", 3) as Enumeration; - - //$this->assertEquals(enumClass.Day, Days.Mon); - //$this->assertEquals(enumClass.Color, Colors.Blue); - //$this->assertEquals(enumClass.Month, Months.September);*/ - } - - #endregion - - #region List Query tests - - /** - * Test QueryForList with Hashtable ResultMap - */ - function testQueryForListWithHashtableResultMap() - { - $this->initScript('account-init.sql'); - $list = $this->sqlmap->QueryForList("GetAllAccountsAsHashMapViaResultMap"); - - $this->assertAccount1AsHashArray($list[0]); - $this->assertEquals(5, count($list)); - - $this->assertEquals(1, (int)$list[0]["Id"]); - $this->assertEquals(2, (int)$list[1]["Id"]); - $this->assertEquals(3, (int)$list[2]["Id"]); - $this->assertEquals(4, (int)$list[3]["Id"]); - $this->assertEquals(5, (int)$list[4]["Id"]); - } - - /** - * Test QueryForList with Hashtable ResultClass - */ - function testQueryForListWithHashtableResultClass() - { - $list = $this->sqlmap->QueryForList("GetAllAccountsAsHashtableViaResultClass"); - - $this->assertAccount1AsHashArray($list[0]); - $this->assertEquals(5, count($list)); - - $this->assertEquals(1, (int)$list[0]["Id"]); - $this->assertEquals(2, (int)$list[1]["Id"]); - $this->assertEquals(3, (int)$list[2]["Id"]); - $this->assertEquals(4, (int)$list[3]["Id"]); - $this->assertEquals(5, (int)$list[4]["Id"]); - } - - /** - * Test QueryForList with IList ResultClass - */ - function testQueryForListWithIListResultClass() - { - $list = $this->sqlmap->QueryForList("GetAllAccountsAsArrayListViaResultClass"); - - $listAccount = $list[0]; - - $this->assertEquals(1,(int)$listAccount[0]); - $this->assertEquals("Joe",$listAccount[1]); - $this->assertEquals("Dalton",$listAccount[2]); - $this->assertEquals("Joe.Dalton@somewhere.com",$listAccount[3]); - - $this->assertEquals(5, count($list)); - - $listAccount = $list[0]; - $this->assertEquals(1, (int)$listAccount[0]); - $listAccount = $list[1]; - $this->assertEquals(2, (int)$listAccount[0]); - $listAccount = $list[2]; - $this->assertEquals(3, (int)$listAccount[0]); - $listAccount = $list[3]; - $this->assertEquals(4, (int)$listAccount[0]); - $listAccount = $list[4]; - $this->assertEquals(5, (int)$listAccount[0]); - } - - /** - * Test QueryForList With ResultMap, result collection as ArrayList - */ - function testQueryForListWithResultMap() - { - $list = $this->sqlmap->QueryForList("GetAllAccountsViaResultMap"); - - $this->assertAccount1($list[0]); - $this->assertEquals(5, count($list)); - $this->assertEquals(1, $list[0]->getID()); - $this->assertEquals(2, $list[1]->getID()); - $this->assertEquals(3, $list[2]->getID()); - $this->assertEquals(4, $list[3]->getID()); - $this->assertEquals(5, $list[4]->getID()); - } - - /** - * Test ExecuteQueryForPaginatedList - */ - function testExecuteQueryForPaginatedList() - { - // Get List of all 5 - $list = $this->sqlmap->QueryForPagedList("GetAllAccountsViaResultMap", null, 2); - - // Test initial state (page 0) - $this->assertFalse($list->getIsPreviousPageAvailable()); - $this->assertTrue($list->getIsNextPageAvailable()); - $this->assertAccount1($list[0]); - $this->assertEquals(2, $list->getCount()); - $this->assertEquals(1, $list[0]->getID()); - $this->assertEquals(2, $list[1]->getID()); - - // Test illegal previous page (no effect, state should be same) - $list->PreviousPage(); - $this->assertFalse($list->getIsPreviousPageAvailable()); - $this->assertTrue($list->getIsNextPageAvailable()); - $this->assertAccount1($list[0]); - $this->assertEquals(2, $list->getCount()); - $this->assertEquals(1, $list[0]->getID()); - $this->assertEquals(2, $list[1]->getID()); - - // Test next (page 1) - $list->NextPage(); - $this->assertTrue($list->getIsPreviousPageAvailable()); - $this->assertTrue($list->getIsNextPageAvailable()); - $this->assertEquals(2, $list->getCount()); - $this->assertEquals(3, $list[0]->getID()); - $this->assertEquals(4, $list[1]->getID()); - - // Test next (page 2 -last) - $list->NextPage(); - $this->assertTrue($list->getIsPreviousPageAvailable()); - $this->assertFalse($list->getIsNextPageAvailable()); - $this->assertEquals(1, $list->getCount()); - $this->assertEquals(5, $list[0]->getID()); - - // Test previous (page 1) - $list->PreviousPage(); - $this->assertTrue($list->getIsPreviousPageAvailable()); - $this->assertTrue($list->getIsNextPageAvailable()); - $this->assertEquals(2, $list->getCount()); - $this->assertEquals(3, $list[0]->getID()); - $this->assertEquals(4, $list[1]->getID()); - - // Test previous (page 0 -first) - $list->PreviousPage(); - $this->assertFalse($list->getIsPreviousPageAvailable()); - $this->assertTrue($list->getIsNextPageAvailable()); - $this->assertAccount1($list[0]); - $this->assertEquals(2, $list->getCount()); - $this->assertEquals(1, $list[0]->getID()); - $this->assertEquals(2, $list[1]->getID()); - - // Test goto (page 0) - $list->GotoPage(0); - $this->assertFalse($list->getIsPreviousPageAvailable()); - $this->assertTrue($list->getIsNextPageAvailable()); - $this->assertEquals(2, $list->getCount()); - $this->assertEquals(1, $list[0]->getID()); - $this->assertEquals(2, $list[1]->getID()); - - // Test goto (page 1) - $list->GotoPage(1); - $this->assertTrue($list->getIsPreviousPageAvailable()); - $this->assertTrue($list->getIsNextPageAvailable()); - $this->assertEquals(2, $list->getCount()); - $this->assertEquals(3, $list[0]->getID()); - $this->assertEquals(4, $list[1]->getID()); - - // Test goto (page 2) - $list->GotoPage(2); - $this->assertTrue($list->getIsPreviousPageAvailable()); - $this->assertFalse($list->getIsNextPageAvailable()); - $this->assertEquals(1, $list->getCount()); - $this->assertEquals(5, $list[0]->getID()); - - // Test illegal goto (page 0) - $list->GotoPage(3); - $this->assertTrue($list->getIsPreviousPageAvailable()); - $this->assertFalse($list->getIsNextPageAvailable()); - $this->assertEquals(0, $list->getCount()); - - $list = $this->sqlmap->QueryForPagedList("GetNoAccountsViaResultMap", null, 2); - - // Test empty list - $this->assertFalse($list->getIsPreviousPageAvailable()); - $this->assertFalse($list->getIsNextPageAvailable()); - $this->assertEquals(0, $list->getCount()); - - // Test next - $list->NextPage(); - $this->assertFalse($list->getIsPreviousPageAvailable()); - $this->assertFalse($list->getIsNextPageAvailable()); - $this->assertEquals(0, $list->getCount()); - - // Test previous - $list->PreviousPage(); - $this->assertFalse($list->getIsPreviousPageAvailable()); - $this->assertFalse($list->getIsNextPageAvailable()); - $this->assertEquals(0, $list->getCount()); - - // Test previous - $list->GotoPage(0); - $this->assertFalse($list->getIsPreviousPageAvailable()); - $this->assertFalse($list->getIsNextPageAvailable()); - $this->assertEquals(0, $list->getCount()); - $list = $this->sqlmap->QueryForPagedList("GetFewAccountsViaResultMap", null, 2); - - $this->assertFalse($list->getIsPreviousPageAvailable()); - $this->assertFalse($list->getIsNextPageAvailable()); - $this->assertEquals(1, $list->getCount()); - - // Test next - $list->NextPage(); - $this->assertFalse($list->getIsPreviousPageAvailable()); - $this->assertFalse($list->getIsNextPageAvailable()); - $this->assertEquals(1, $list->getCount()); - // Test previous - $list->PreviousPage(); - $this->assertFalse($list->getIsPreviousPageAvailable()); - $this->assertFalse($list->getIsNextPageAvailable()); - $this->assertEquals(1, $list->getCount()); - - // Test previous - $list->GotoPage(0); - $this->assertFalse($list->getIsPreviousPageAvailable()); - $this->assertFalse($list->getIsNextPageAvailable()); - $this->assertEquals(1, $list->getCount()); - - - $list = $this->sqlmap->QueryForPagedList("GetAllAccountsViaResultMap", null, 5); - - $this->assertEquals(5, $list->getCount()); - - $list->NextPage(); - $this->assertEquals(5, $list->getCount()); - - $b = $list->getIsPreviousPageAvailable(); - $list->PreviousPage(); - $this->assertEquals(5, $list->getCount()); - } - - /** - * Test QueryForList with ResultObject : - * AccountCollection strongly typed collection - */ - function testQueryForListWithResultObject() - { - $accounts = new AccountCollection(); - - $this->sqlmap->QueryForList("GetAllAccountsViaResultMap", null, $accounts); - $this->assertAccount1($accounts[0]); - $this->assertEquals(5, $accounts->getCount()); - $this->assertEquals(1, $accounts[0]->getID()); - $this->assertEquals(2, $accounts[1]->getID()); - $this->assertEquals(3, $accounts[2]->getID()); - $this->assertEquals(4, $accounts[3]->getID()); - $this->assertEquals(5, $accounts[4]->GetId()); - } - - /** - * Test QueryForList with ListClass : LineItemCollection - */ - function testQueryForListWithListClass() - { - $linesItem = $this->sqlmap->QueryForList("GetLineItemsForOrderWithListClass", 10); - - $this->assertNotNull($linesItem); - $this->assertEquals(2, $linesItem->getCount()); - $this->assertEquals("ESM-34", $linesItem[0]->getCode()); - $this->assertEquals("QSM-98", $linesItem[1]->getCode()); - } - - /** - * Test QueryForList with no result. - */ - function testQueryForListWithNoResult() - { - $list = $this->sqlmap->QueryForList("GetNoAccountsViaResultMap"); - - $this->assertEquals(0, count($list)); - } - - /** - * Test QueryForList with ResultClass : Account. - */ - function testQueryForListResultClass() - { - $list = $this->sqlmap->QueryForList("GetAllAccountsViaResultClass"); - - $this->assertAccount1($list[0]); - $this->assertEquals(5, count($list)); - $this->assertEquals(1, $list[0]->getID()); - $this->assertEquals(2, $list[1]->getID()); - $this->assertEquals(3, $list[2]->getID()); - $this->assertEquals(4, $list[3]->getID()); - $this->assertEquals(5, $list[4]->getID()); - } - - /** - * Test QueryForList with simple resultClass : string - */ - function testQueryForListWithSimpleResultClass() - { - $list = $this->sqlmap->QueryForList("GetAllEmailAddressesViaResultClass"); - - $this->assertEquals("Joe.Dalton@somewhere.com", $list[0]); - $this->assertEquals("Averel.Dalton@somewhere.com", $list[1]); - $this->assertEquals('', $list[2]); - $this->assertEquals("Jack.Dalton@somewhere.com", $list[3]); - $this->assertEquals('', $list[4]); - } - - /** - * Test QueryForList with simple ResultMap : string - */ - function testQueryForListWithSimpleResultMap() - { - $list = $this->sqlmap->QueryForList("GetAllEmailAddressesViaResultMap"); - - $this->assertEquals("Joe.Dalton@somewhere.com", $list[0]); - $this->assertEquals("Averel.Dalton@somewhere.com", $list[1]); - $this->assertEquals('', $list[2]); - $this->assertEquals("Jack.Dalton@somewhere.com", $list[3]); - $this->assertEquals('', $list[4]); - } - - /** - * Test QueryForListWithSkipAndMax - */ - function testQueryForListWithSkipAndMax() - { - $list = $this->sqlmap->QueryForList("GetAllAccountsViaResultMap", null, null, 2, 2); - - $this->assertEquals(2, count($list)); - $this->assertEquals(3, $list[0]->getID()); - $this->assertEquals(4, $list[1]->getID()); - } - - - /** - * Test row delegate - */ - function testQueryWithRowDelegate() - { - //$handler = new SqlMapper.RowDelegate(this.RowHandler); - - //$list = $this->sqlmap->QueryWithRowDelegate("GetAllAccountsViaResultMap", null, handler); - - //$this->assertEquals(5, _index); - //$this->assertEquals(5, $list->getCount()); - //$this->assertAccount1$list[0]); - //$this->assertEquals(1, $list[0]->getID()); - //$this->assertEquals(2, $list[1]->getID()); - //$this->assertEquals(3, $list[2]->getID()); - //$this->assertEquals(4, $list[3]->getID()); - //$this->assertEquals(5, $list[4]->getID()); - } - - #endregion - - #region Map Tests - - /** - * Test ExecuteQueryForMap : Hashtable. - */ - function testExecuteQueryForMap() - { - $map = $this->sqlmap->QueryForMap("GetAllAccountsViaResultClass", null, "FirstName"); - - $this->assertEquals(5, count($map)); - $this->assertAccount1($map["Joe"]); - - $this->assertEquals(1, $map["Joe"]->getID()); - $this->assertEquals(2, $map["Averel"]->getID()); - $this->assertEquals(3, $map["William"]->getID()); - $this->assertEquals(4, $map["Jack"]->getID()); - $this->assertEquals(5, $map["Gilles"]->getID()); - } - - /** - * Test ExecuteQueryForMap : Hashtable. - * - * If the keyProperty is an integer, you must acces the map - * by map[integer] and not by map["integer"] - */ - function testExecuteQueryForMap2() - { - $map = $this->sqlmap->QueryForMap("GetAllOrderWithLineItems", null, "PostalCode"); - - $this->assertEquals(11, count($map)); - $order = $map["T4H 9G4"]; - - $this->assertEquals(2, $order->getLineItemsList()->getCount()); - } - - /** - * Test ExecuteQueryForMap with value property : - * "FirstName" as key, "EmailAddress" as value - */ - function testExecuteQueryForMapWithValueProperty() - { - $map = $this->sqlmap->QueryForMap("GetAllAccountsViaResultClass", null, - "FirstName", "EmailAddress"); - - $this->assertEquals(5, count($map)); - - $this->assertEquals("Joe.Dalton@somewhere.com", $map["Joe"]); - $this->assertEquals("Averel.Dalton@somewhere.com", $map["Averel"]); - $this->assertNull($map["William"]); - $this->assertEquals("Jack.Dalton@somewhere.com", $map["Jack"]); - $this->assertNull($map["Gilles"]); - } - - /** - * Test ExecuteQueryForWithJoined - */ - function testExecuteQueryForWithJoined() - { - $order = $this->sqlmap->QueryForObject("GetOrderJoinWithAccount",10); - - $this->assertNotNull($order->getAccount()); - - $order = $this->sqlmap->QueryForObject("GetOrderJoinWithAccount",11); - - $this->assertNull($order->getAccount()); - } - - /** - * Test ExecuteQueryFor With Complex Joined - * - * A->B->C - * ->E - * ->F - */ - function testExecuteQueryForWithComplexJoined() - { - $a = $this->sqlmap->QueryForObject("SelectComplexJoined",null); - $this->assertNotNull($a); - $this->assertNotNull($a->getB()); - $this->assertNotNull($a->getB()->getC()); - $this->assertNull($a->getB()->getD()); - $this->assertNotNull($a->getE()); - $this->assertNull($a->getF()); - } - #endregion - - #region Extends statement - - /** - * Test base Extends statement - */ - function testExtendsGetAllAccounts() - { - $list = $this->sqlmap->QueryForList("GetAllAccounts"); - - $this->assertAccount1($list[0]); - $this->assertEquals(5, count($list)); - $this->assertEquals(1, $list[0]->getID()); - $this->assertEquals(2, $list[1]->getID()); - $this->assertEquals(3, $list[2]->getID()); - $this->assertEquals(4, $list[3]->getID()); - $this->assertEquals(5, $list[4]->getID()); - } - - /** - * Test Extends statement GetAllAccountsOrderByName extends GetAllAccounts - */ - function testExtendsGetAllAccountsOrderByName() - { - $list = $this->sqlmap->QueryForList("GetAllAccountsOrderByName"); - - $this->assertAccount1($list[3]); - $this->assertEquals(5, count($list)); - - $this->assertEquals(2, $list[0]->getID()); - $this->assertEquals(5, $list[1]->getID()); - $this->assertEquals(4, $list[2]->getID()); - $this->assertEquals(1, $list[3]->getID()); - $this->assertEquals(3, $list[4]->getID()); - } - - /** - * Test Extends statement GetOneAccount extends GetAllAccounts - */ - function testExtendsGetOneAccount() - { - $account= $this->sqlmap->QueryForObject("GetOneAccount", 1); - $this->assertAccount1($account); - } - - /** - * Test Extends statement GetSomeAccount extends GetAllAccounts - */ - function testExtendsGetSomeAccount() - { - $param["lowID"] = 2; - $param["hightID"] = 4; - - $list = $this->sqlmap->QueryForList("GetSomeAccount", $param); - - $this->assertEquals(3, count($list)); - - $this->assertEquals(2, $list[0]->getID()); - $this->assertEquals(3, $list[1]->getID()); - $this->assertEquals(4, $list[2]->getID()); - } - - #endregion - - #region Update tests - - - /** - * Test Insert account via public fields - */ - function testInsertAccountViaPublicFields() - { - $this->initScript('account-init.sql'); - - $account = new AccountBis(); - - $account->Id = 10; - $account->FirstName = "Luky"; - $account->LastName = "Luke"; - $account->EmailAddress = "luly.luke@somewhere.com"; - - $this->sqlmap->Insert("InsertAccountViaPublicFields", $account); - - $testAccount = $this->sqlmap->QueryForObject("GetAccountViaColumnName", 10); - - $this->assertNotNull($testAccount); - - $this->assertEquals(10, $testAccount->getID()); - - $this->initScript('account-init.sql'); - } - - /** - * - */ - function testInsertOrderViaProperties() - { - $this->initScript('account-init.sql'); - $this->initScript('order-init.sql'); - $account= $this->NewAccount6(); - - $this->sqlmap->Insert("InsertAccountViaParameterMap", $account); - - $order = new Order(); - $order->setId(99); - $order->setCardExpiry("09/11"); - $order->setAccount($account); - $order->setCardNumber("154564656"); - $order->setCardType("Visa"); - $order->setCity("Lyon"); - $order->setDate('2005-05-20'); - $order->setPostalCode("69004"); - $order->setProvince("Rhone"); - $order->setStreet("rue Durand"); - - $this->sqlmap->Insert("InsertOrderViaPublicFields", $order); - - $this->initScript('account-init.sql'); - $this->initScript('order-init.sql'); - } - - - /** - * Test Insert account via inline parameters - */ - function testInsertAccountViaInlineParameters() - { - $this->initScript('account-init.sql'); - $account= new Account(); - - $account->setId(10); - $account->setFirstName("Luky"); - $account->setLastName("Luke"); - $account->setEmailAddress("luly.luke@somewhere.com"); - - $this->sqlmap->Insert("InsertAccountViaInlineParameters", $account); - - $testAccount = $this->sqlmap->QueryForObject("GetAccountViaColumnIndex", 10); - - $this->assertNotNull($testAccount); - $this->assertEquals(10, $testAccount->getId()); - $this->initScript('account-init.sql'); - } - - /** - * Test Insert account via parameterMap - */ - function testInsertAccountViaParameterMap() - { - $this->initScript('account-init.sql'); - $account= $this->NewAccount6(); - $this->sqlmap->Insert("InsertAccountViaParameterMap", $account); - - $account = $this->sqlmap->QueryForObject("GetAccountNullableEmail", 6); - $this->AssertAccount6($account); - - $this->initScript('account-init.sql'); - } - - /** - * Test Update via parameterMap - */ - function testUpdateViaParameterMap() - { - $this->initScript('account-init.sql'); - $account= $this->sqlmap->QueryForObject("GetAccountViaColumnName", 1); - - $account->setEmailAddress("new@somewhere.com"); - $this->sqlmap->Update("UpdateAccountViaParameterMap", $account); - - $account = $this->sqlmap->QueryForObject("GetAccountViaColumnName", 1); - - $this->assertEquals("new@somewhere.com", $account->getEmailAddress()); - $this->initScript('account-init.sql'); - } - - /** - * Test Update via parameterMap V2 - */ - function testUpdateViaParameterMap2() - { - $this->initScript('account-init.sql'); - $account= $this->sqlmap->QueryForObject("GetAccountViaColumnName", 1); - - $account->setEmailAddress("new@somewhere.com"); - $this->sqlmap->Update("UpdateAccountViaParameterMap2", $account); - - $account = $this->sqlmap->QueryForObject("GetAccountViaColumnName", 1); - - $this->assertEquals("new@somewhere.com", $account->getEmailAddress()); - $this->initScript('account-init.sql'); - } - - /** - * Test Update with inline parameters - */ - function testUpdateWithInlineParameters() - { - $this->initScript('account-init.sql'); - $account= $this->sqlmap->QueryForObject("GetAccountViaColumnName", 1); - - $account->setEmailAddress("new@somewhere.com"); - $this->sqlmap->Update("UpdateAccountViaInlineParameters", $account); - - $account = $this->sqlmap->QueryForObject("GetAccountViaColumnName", 1); - - $this->assertEquals("new@somewhere.com", $account->getEmailAddress()); - $this->initScript('account-init.sql'); - } - - /** - * Test Execute Update With Parameter Class - */ - function testExecuteUpdateWithParameterClass() - { - $this->initScript('account-init.sql'); - $account= $this->NewAccount6(); - - $this->sqlmap->Insert("InsertAccountViaParameterMap", $account); - - $noRowsDeleted = $this->sqlmap->Update("DeleteAccount", null); - - $this->sqlmap->Update("DeleteAccount", $account); - - $account = $this->sqlmap->QueryForObject("GetAccountViaColumnName", 6); - - $this->assertNull($account); - $this->assertEquals(0, $noRowsDeleted); - $this->initScript('account-init.sql'); - } - - /** - * Test Execute Delete - */ - function testExecuteDelete() - { - $this->initScript('account-init.sql'); - $account= $this->NewAccount6(); - - $this->sqlmap->Insert("InsertAccountViaParameterMap", $account); - - $account = null; - $account = $this->sqlmap->QueryForObject("GetAccountViaColumnName", 6); - - $this->assertTrue($account->getId() == 6); - - $rowNumber = $this->sqlmap->Delete("DeleteAccount", $account); - $this->assertTrue($rowNumber == 1); - - $account = $this->sqlmap->QueryForObject("GetAccountViaColumnName", 6); - - $this->assertNull($account); - $this->initScript('account-init.sql'); - } - - /** - * Test Execute Delete - */ - function testDeleteWithComments() - { - $this->initScript('line-item-init.sql'); - $rowNumber = $this->sqlmap->Delete("DeleteWithComments"); - - $this->assertEquals($rowNumber, 2); - $this->initScript('line-item-init.sql'); - } - - - - #endregion - - #region Row delegate - - private $_index = 0; - - function RowHandler($sender, $paramterObject, $list) - { - //_index++; - //$this->assertEquals(_index, (($account) obj).Id); - //$list->Add(obj); - } - - #endregion - - #region JIRA Tests - - /** - * Test JIRA 30 (repeating property) - */ - function testJIRA30() - { - $account= new Account(); - $account->setId(1); - $account->setFirstName("Joe"); - $account->setLastName("Dalton"); - $account->setEmailAddress("Joe.Dalton@somewhere.com"); - - $result = $this->sqlmap->QueryForObject("GetAccountWithRepeatingProperty", $account); - - $this->assertAccount1($result); - } - - /** - * Test Bit column - */ - function testJIRA42() - { - $other = new Other(); - - $other->setInt(100); - $other->setBool(true); - $other->setLong(789456321); - - $this->sqlmap->Insert("InsertBool", $other); - } - - /** - * Test for access a result map in a different namespace - */ - function testJIRA45() - { - $account= $this->sqlmap->QueryForObject("GetAccountJIRA45", 1); - $this->assertAccount1($account); - } - - /** - * Test : Whitespace is not maintained properly when CDATA tags are used - */ - function testJIRA110() - { - $account= $this->sqlmap->QueryForObject("Get1Account"); - $this->assertAccount1($account); - } - - /** - * Test : Whitespace is not maintained properly when CDATA tags are used - */ - function testJIRA110Bis() - { - $list = $this->sqlmap->QueryForList("GetAccounts"); - - $this->assertAccount1($list[0]); - $this->assertEquals(5, count($list)); - } - - /** - * Test for cache stats only being calculated on CachingStatments - */ - function testJIRA113() - { - // $this->sqlmap->FlushCaches(); - - // taken from TestFlushDataCache() - // first query is not cached, second query is: 50% cache hit - /*$list = $this->sqlmap->QueryForList("GetCachedAccountsViaResultMap"); - $firstId = HashCodeProvider.GetIdentityHashCode(list); - list = $this->sqlmap->QueryForList("GetCachedAccountsViaResultMap"); - int secondId = HashCodeProvider.GetIdentityHashCode(list); - $this->assertEquals(firstId, secondId); - - string cacheStats = $this->sqlmap->GetDataCacheStats(); - - $this->assertNotNull(cacheStats);*/ - } - - #endregion - - #region CustomTypeHandler tests - - /** - * Test CustomTypeHandler - */ - function testExecuteQueryWithCustomTypeHandler() - { - $this->sqlmap->getTypeHandlerFactory()->register('HundredsBool', new HundredsBool()); - $this->sqlmap->getTypeHandlerFactory()->register('OuiNonBool', new OuiNonBool()); - - $list = $this->sqlmap->QueryForList("GetAllAccountsViaCustomTypeHandler"); - - $this->assertAccount1($list[0]); - $this->assertEquals(5, count($list)); - $this->assertEquals(1, $list[0]->getID()); - $this->assertEquals(2, $list[1]->getID()); - $this->assertEquals(3, $list[2]->getID()); - $this->assertEquals(4, $list[3]->getID()); - $this->assertEquals(5, $list[4]->getID()); - - $this->assertFalse($list[0]->getCartOptions()); - $this->assertFalse($list[1]->getCartOptions()); - $this->assertTrue($list[2]->getCartOptions()); - $this->assertTrue($list[3]->getCartOptions()); - $this->assertTrue($list[4]->getCartOptions()); - - $this->assertTrue($list[0]->getBannerOptions()); - $this->assertTrue($list[1]->getBannerOptions()); - $this->assertFalse($list[2]->getBannerOptions()); - $this->assertFalse($list[3]->getBannerOptions()); - $this->assertTrue($list[4]->getBannerOptions()); - } - - /** - * Test CustomTypeHandler Oui/Non - */ - function testCustomTypeHandler() - { - $this->initScript('other-init.sql'); - $this->initScript('account-init.sql'); - - $this->sqlmap->getTypeHandlerFactory()->register('OuiNonBool', new OuiNonBool()); - - $other = new Other(); - $other->setInt(99); - $other->setLong(1966); - $other->setBool(true); - $other->setBool2(false); - $this->sqlmap->Insert("InsertCustomTypeHandler", $other); - - $anOther = $this->sqlmap->QueryForObject("SelectByInt", 99); - $this->assertNotNull( $anOther ); - $this->assertEquals(99, (int)$anOther->getInt()); - $this->assertEquals(1966, (int)$anOther->getLong()); - $this->assertEquals(true, (boolean)$anOther->getBool()); - $this->assertEquals(false, (boolean)$anOther->getBool2()); - - } - - /** - * Test CustomTypeHandler Oui/Non - */ - function testInsertInlineCustomTypeHandlerV1() - { - $this->initScript('other-init.sql'); - $this->initScript('account-init.sql'); - - $other = new Other(); - $other->setInt(99); - $other->setLong(1966); - $other->setBool(true); - $other->setBool2(false); - - $this->sqlmap->Insert("InsertInlineCustomTypeHandlerV1", $other); - - $anOther = $this->sqlmap->QueryForObject("SelectByIntV1", 99); - - $this->assertNotNull( $anOther ); - $this->assertEquals(99, (int)$anOther->getInt()); - $this->assertEquals(1966, (int)$anOther->getLong()); - $this->assertEquals(true, (boolean)$anOther->getBool()); - $this->assertEquals(false, (boolean)$anOther->getBool2()); - - } - - /** - * Test CustomTypeHandler Oui/Non - */ - function testInsertInlineCustomTypeHandlerV2() - { - $this->initScript('other-init.sql'); - $this->initScript('account-init.sql'); - - $other = new Other(); - $other->setInt(99); - $other->setLong(1966); - $other->setBool(true); - $other->setBool2(false); - - $this->sqlmap->Insert("InsertInlineCustomTypeHandlerV2", $other); - - $anOther = $this->sqlmap->QueryForObject("SelectByInt", 99); - - $this->assertNotNull( $anOther ); - $this->assertEquals(99, (int)$anOther->getInt()); - $this->assertEquals(1966, (int)$anOther->getLong()); - $this->assertEquals(true, (boolean)$anOther->getBool()); - $this->assertEquals(false, (boolean)$anOther->getBool2()); - } - #endregion - /**/ -} - +initSqlMap(); + + //force autoload + new Account; + new Order; + new LineItem; + new LineItemCollection; + new A; new B; new C; new D; new E; new F; + } + + public function setup() + { + + } + + function resetDatabase() + { + $this->initScript('account-init.sql'); + $this->initScript('order-init.sql'); + $this->initScript('line-item-init.sql'); +// $this->initScript('enumeration-init.sql'); + $this->initScript('other-init.sql'); + } + + + #region Object Query tests + + /** + * Test Open connection with a connection string + */ + function testOpenConnection() + { + $this->sqlmap->OpenConnection($this->sqlmap->getDataProvider()->getConnectionString()); + $account= $this->sqlmap->QueryForObject("SelectWithProperty"); + $this->sqlmap->CloseConnection(); + $this->assertAccount1($account); + } + + /** + * Test use a statement with property subtitution + * (JIRA 22) + */ + function testSelectWithProperty() + { + $account= $this->sqlmap->QueryForObject("SelectWithProperty"); + $this->assertAccount1($account); + } + + /** + * Test ExecuteQueryForObject Via ColumnName + */ + function testExecuteQueryForObjectViaColumnName() + { + $account= $this->sqlmap->QueryForObject("GetAccountViaColumnName", 1); + $this->assertAccount1($account); + } + + /** + * Test ExecuteQueryForObject Via ColumnIndex + */ + function testExecuteQueryForObjectViaColumnIndex() + { + $account= $this->sqlmap->QueryForObject("GetAccountViaColumnIndex", 1); + $this->assertAccount1($account); + } + + /** + * Test ExecuteQueryForObject Via ResultClass + */ + function testExecuteQueryForObjectViaResultClass() + { + $account= $this->sqlmap->QueryForObject("GetAccountViaResultClass", 1); + $this->assertAccount1($account); + } + + /** + * Test ExecuteQueryForObject With simple ResultClass : string + */ + function testExecuteQueryForObjectWithSimpleResultClass() + { + $email = $this->sqlmap->QueryForObject("GetEmailAddressViaResultClass", 1); + $this->assertEquals("Joe.Dalton@somewhere.com", $email); + } + + /** + * Test ExecuteQueryForObject With simple ResultMap : string + */ + function testExecuteQueryForObjectWithSimpleResultMap() + { + $email = $this->sqlmap->QueryForObject("GetEmailAddressViaResultMap", 1); + $this->assertEquals("Joe.Dalton@somewhere.com", $email); + } + + /** + * Test Primitive ReturnValue : TDateTime + */ + function testPrimitiveReturnValue() + { + $CardExpiry = $this->sqlmap->QueryForObject("GetOrderCardExpiryViaResultClass", 1); + $date = @mktime(8, 15, 00, 2, 15, 2003); + $this->assertEquals($date, $CardExpiry->getTimeStamp()); + } + + /** + * Test ExecuteQueryForObject with result object : Account + */ + function testExecuteQueryForObjectWithResultObject() + { + $account= new Account(); + $testAccount = $this->sqlmap->QueryForObject("GetAccountViaColumnName", 1, $account); + $this->assertAccount1($account); + $this->assertTrue($account == $testAccount); + } + + /** + * Test ExecuteQueryForObject as array + */ + function testExecuteQueryForObjectAsHashArray() + { + $account = $this->sqlmap->QueryForObject("GetAccountAsHashtable", 1); + $this->assertAccount1AsHashArray($account); + } + + /** + * Test ExecuteQueryForObject as Hashtable ResultClass + */ + function testExecuteQueryForObjectAsHashtableResultClass() + { + $account = $this->sqlmap->QueryForObject("GetAccountAsHashtableResultClass", 1); + $this->assertAccount1AsHashArray($account); + } + + /** + * Test ExecuteQueryForObject via Hashtable + */ + function testExecuteQueryForObjectViaHashtable() + { + $param["LineItem_ID"] = 2; + $param["Order_ID"] = 9; + + $testItem = $this->sqlmap->QueryForObject("GetSpecificLineItem", $param); + + $this->assertNotNull($testItem); + $this->assertEquals("TSM-12", $testItem->getCode()); + } + /**/ + + //TODO: Test Query Dynamic Sql Element + function testQueryDynamicSqlElement() + { + //$list = $this->sqlmap->QueryForList("GetDynamicOrderedEmailAddressesViaResultMap", "Account_ID"); + + //$this->assertEquals("Joe.Dalton@somewhere.com", $list[0]); + + //list = $this->sqlmap->QueryForList("GetDynamicOrderedEmailAddressesViaResultMap", "Account_FirstName"); + + //$this->assertEquals("Averel.Dalton@somewhere.com", $list[0]); + + } + + // TODO: Test Execute QueryForList With ResultMap With Dynamic Element + function testExecuteQueryForListWithResultMapWithDynamicElement() + { + //$list = $this->sqlmap->QueryForList("GetAllAccountsViaResultMapWithDynamicElement", "LIKE"); + + //$this->assertAccount1$list[0]); + //$this->assertEquals(3, $list->getCount()); + //$this->assertEquals(1, $list[0]->getID()); + //$this->assertEquals(2, $list[1]->getID()); + //$this->assertEquals(4, $list[2]->getID()); + + //list = $this->sqlmap->QueryForList("GetAllAccountsViaResultMapWithDynamicElement", "="); + + //$this->assertEquals(0, $list->getCount()); + } + + + + /** + * Test Get Account Via Inline Parameters + */ + function testExecuteQueryForObjectViaInlineParameters() + { + $account= new Account(); + $account->setID(1); + + $testAccount = $this->sqlmap->QueryForObject("GetAccountViaInlineParameters", $account); + + $this->assertAccount1($testAccount); + } + /**/ + + // TODO: Test ExecuteQuery For Object With Enum property + + function testExecuteQueryForObjectWithEnum() + { + //$enumClass = $this->sqlmap->QueryForObject("GetEnumeration", 1); + + //$this->assertEquals(enumClass.Day, Days.Sat); + //$this->assertEquals(enumClass.Color, Colors.Red); + //$this->assertEquals(enumClass.Month, Months.August); + + //enumClass = $this->sqlmap->QueryForObject("GetEnumeration", 3) as Enumeration; + + //$this->assertEquals(enumClass.Day, Days.Mon); + //$this->assertEquals(enumClass.Color, Colors.Blue); + //$this->assertEquals(enumClass.Month, Months.September);*/ + } + + #endregion + + #region List Query tests + + /** + * Test QueryForList with Hashtable ResultMap + */ + function testQueryForListWithHashtableResultMap() + { + $this->initScript('account-init.sql'); + $list = $this->sqlmap->QueryForList("GetAllAccountsAsHashMapViaResultMap"); + + $this->assertAccount1AsHashArray($list[0]); + $this->assertEquals(5, count($list)); + + $this->assertEquals(1, (int)$list[0]["Id"]); + $this->assertEquals(2, (int)$list[1]["Id"]); + $this->assertEquals(3, (int)$list[2]["Id"]); + $this->assertEquals(4, (int)$list[3]["Id"]); + $this->assertEquals(5, (int)$list[4]["Id"]); + } + + /** + * Test QueryForList with Hashtable ResultClass + */ + function testQueryForListWithHashtableResultClass() + { + $list = $this->sqlmap->QueryForList("GetAllAccountsAsHashtableViaResultClass"); + + $this->assertAccount1AsHashArray($list[0]); + $this->assertEquals(5, count($list)); + + $this->assertEquals(1, (int)$list[0]["Id"]); + $this->assertEquals(2, (int)$list[1]["Id"]); + $this->assertEquals(3, (int)$list[2]["Id"]); + $this->assertEquals(4, (int)$list[3]["Id"]); + $this->assertEquals(5, (int)$list[4]["Id"]); + } + + /** + * Test QueryForList with IList ResultClass + */ + function testQueryForListWithIListResultClass() + { + $list = $this->sqlmap->QueryForList("GetAllAccountsAsArrayListViaResultClass"); + + $listAccount = $list[0]; + + $this->assertEquals(1,(int)$listAccount[0]); + $this->assertEquals("Joe",$listAccount[1]); + $this->assertEquals("Dalton",$listAccount[2]); + $this->assertEquals("Joe.Dalton@somewhere.com",$listAccount[3]); + + $this->assertEquals(5, count($list)); + + $listAccount = $list[0]; + $this->assertEquals(1, (int)$listAccount[0]); + $listAccount = $list[1]; + $this->assertEquals(2, (int)$listAccount[0]); + $listAccount = $list[2]; + $this->assertEquals(3, (int)$listAccount[0]); + $listAccount = $list[3]; + $this->assertEquals(4, (int)$listAccount[0]); + $listAccount = $list[4]; + $this->assertEquals(5, (int)$listAccount[0]); + } + + /** + * Test QueryForList With ResultMap, result collection as ArrayList + */ + function testQueryForListWithResultMap() + { + $list = $this->sqlmap->QueryForList("GetAllAccountsViaResultMap"); + + $this->assertAccount1($list[0]); + $this->assertEquals(5, count($list)); + $this->assertEquals(1, $list[0]->getID()); + $this->assertEquals(2, $list[1]->getID()); + $this->assertEquals(3, $list[2]->getID()); + $this->assertEquals(4, $list[3]->getID()); + $this->assertEquals(5, $list[4]->getID()); + } + + /** + * Test ExecuteQueryForPaginatedList + */ + function testExecuteQueryForPaginatedList() + { + // Get List of all 5 + $list = $this->sqlmap->QueryForPagedList("GetAllAccountsViaResultMap", null, 2); + + // Test initial state (page 0) + $this->assertFalse($list->getIsPreviousPageAvailable()); + $this->assertTrue($list->getIsNextPageAvailable()); + $this->assertAccount1($list[0]); + $this->assertEquals(2, $list->getCount()); + $this->assertEquals(1, $list[0]->getID()); + $this->assertEquals(2, $list[1]->getID()); + + // Test illegal previous page (no effect, state should be same) + $list->PreviousPage(); + $this->assertFalse($list->getIsPreviousPageAvailable()); + $this->assertTrue($list->getIsNextPageAvailable()); + $this->assertAccount1($list[0]); + $this->assertEquals(2, $list->getCount()); + $this->assertEquals(1, $list[0]->getID()); + $this->assertEquals(2, $list[1]->getID()); + + // Test next (page 1) + $list->NextPage(); + $this->assertTrue($list->getIsPreviousPageAvailable()); + $this->assertTrue($list->getIsNextPageAvailable()); + $this->assertEquals(2, $list->getCount()); + $this->assertEquals(3, $list[0]->getID()); + $this->assertEquals(4, $list[1]->getID()); + + // Test next (page 2 -last) + $list->NextPage(); + $this->assertTrue($list->getIsPreviousPageAvailable()); + $this->assertFalse($list->getIsNextPageAvailable()); + $this->assertEquals(1, $list->getCount()); + $this->assertEquals(5, $list[0]->getID()); + + // Test previous (page 1) + $list->PreviousPage(); + $this->assertTrue($list->getIsPreviousPageAvailable()); + $this->assertTrue($list->getIsNextPageAvailable()); + $this->assertEquals(2, $list->getCount()); + $this->assertEquals(3, $list[0]->getID()); + $this->assertEquals(4, $list[1]->getID()); + + // Test previous (page 0 -first) + $list->PreviousPage(); + $this->assertFalse($list->getIsPreviousPageAvailable()); + $this->assertTrue($list->getIsNextPageAvailable()); + $this->assertAccount1($list[0]); + $this->assertEquals(2, $list->getCount()); + $this->assertEquals(1, $list[0]->getID()); + $this->assertEquals(2, $list[1]->getID()); + + // Test goto (page 0) + $list->GotoPage(0); + $this->assertFalse($list->getIsPreviousPageAvailable()); + $this->assertTrue($list->getIsNextPageAvailable()); + $this->assertEquals(2, $list->getCount()); + $this->assertEquals(1, $list[0]->getID()); + $this->assertEquals(2, $list[1]->getID()); + + // Test goto (page 1) + $list->GotoPage(1); + $this->assertTrue($list->getIsPreviousPageAvailable()); + $this->assertTrue($list->getIsNextPageAvailable()); + $this->assertEquals(2, $list->getCount()); + $this->assertEquals(3, $list[0]->getID()); + $this->assertEquals(4, $list[1]->getID()); + + // Test goto (page 2) + $list->GotoPage(2); + $this->assertTrue($list->getIsPreviousPageAvailable()); + $this->assertFalse($list->getIsNextPageAvailable()); + $this->assertEquals(1, $list->getCount()); + $this->assertEquals(5, $list[0]->getID()); + + // Test illegal goto (page 0) + $list->GotoPage(3); + $this->assertTrue($list->getIsPreviousPageAvailable()); + $this->assertFalse($list->getIsNextPageAvailable()); + $this->assertEquals(0, $list->getCount()); + + $list = $this->sqlmap->QueryForPagedList("GetNoAccountsViaResultMap", null, 2); + + // Test empty list + $this->assertFalse($list->getIsPreviousPageAvailable()); + $this->assertFalse($list->getIsNextPageAvailable()); + $this->assertEquals(0, $list->getCount()); + + // Test next + $list->NextPage(); + $this->assertFalse($list->getIsPreviousPageAvailable()); + $this->assertFalse($list->getIsNextPageAvailable()); + $this->assertEquals(0, $list->getCount()); + + // Test previous + $list->PreviousPage(); + $this->assertFalse($list->getIsPreviousPageAvailable()); + $this->assertFalse($list->getIsNextPageAvailable()); + $this->assertEquals(0, $list->getCount()); + + // Test previous + $list->GotoPage(0); + $this->assertFalse($list->getIsPreviousPageAvailable()); + $this->assertFalse($list->getIsNextPageAvailable()); + $this->assertEquals(0, $list->getCount()); + $list = $this->sqlmap->QueryForPagedList("GetFewAccountsViaResultMap", null, 2); + + $this->assertFalse($list->getIsPreviousPageAvailable()); + $this->assertFalse($list->getIsNextPageAvailable()); + $this->assertEquals(1, $list->getCount()); + + // Test next + $list->NextPage(); + $this->assertFalse($list->getIsPreviousPageAvailable()); + $this->assertFalse($list->getIsNextPageAvailable()); + $this->assertEquals(1, $list->getCount()); + // Test previous + $list->PreviousPage(); + $this->assertFalse($list->getIsPreviousPageAvailable()); + $this->assertFalse($list->getIsNextPageAvailable()); + $this->assertEquals(1, $list->getCount()); + + // Test previous + $list->GotoPage(0); + $this->assertFalse($list->getIsPreviousPageAvailable()); + $this->assertFalse($list->getIsNextPageAvailable()); + $this->assertEquals(1, $list->getCount()); + + + $list = $this->sqlmap->QueryForPagedList("GetAllAccountsViaResultMap", null, 5); + + $this->assertEquals(5, $list->getCount()); + + $list->NextPage(); + $this->assertEquals(5, $list->getCount()); + + $b = $list->getIsPreviousPageAvailable(); + $list->PreviousPage(); + $this->assertEquals(5, $list->getCount()); + } + + /** + * Test QueryForList with ResultObject : + * AccountCollection strongly typed collection + */ + function testQueryForListWithResultObject() + { + $accounts = new AccountCollection(); + + $this->sqlmap->QueryForList("GetAllAccountsViaResultMap", null, $accounts); + $this->assertAccount1($accounts[0]); + $this->assertEquals(5, $accounts->getCount()); + $this->assertEquals(1, $accounts[0]->getID()); + $this->assertEquals(2, $accounts[1]->getID()); + $this->assertEquals(3, $accounts[2]->getID()); + $this->assertEquals(4, $accounts[3]->getID()); + $this->assertEquals(5, $accounts[4]->GetId()); + } + + /** + * Test QueryForList with ListClass : LineItemCollection + */ + function testQueryForListWithListClass() + { + $linesItem = $this->sqlmap->QueryForList("GetLineItemsForOrderWithListClass", 10); + + $this->assertNotNull($linesItem); + $this->assertEquals(2, $linesItem->getCount()); + $this->assertEquals("ESM-34", $linesItem[0]->getCode()); + $this->assertEquals("QSM-98", $linesItem[1]->getCode()); + } + + /** + * Test QueryForList with no result. + */ + function testQueryForListWithNoResult() + { + $list = $this->sqlmap->QueryForList("GetNoAccountsViaResultMap"); + + $this->assertEquals(0, count($list)); + } + + /** + * Test QueryForList with ResultClass : Account. + */ + function testQueryForListResultClass() + { + $list = $this->sqlmap->QueryForList("GetAllAccountsViaResultClass"); + + $this->assertAccount1($list[0]); + $this->assertEquals(5, count($list)); + $this->assertEquals(1, $list[0]->getID()); + $this->assertEquals(2, $list[1]->getID()); + $this->assertEquals(3, $list[2]->getID()); + $this->assertEquals(4, $list[3]->getID()); + $this->assertEquals(5, $list[4]->getID()); + } + + /** + * Test QueryForList with simple resultClass : string + */ + function testQueryForListWithSimpleResultClass() + { + $list = $this->sqlmap->QueryForList("GetAllEmailAddressesViaResultClass"); + + $this->assertEquals("Joe.Dalton@somewhere.com", $list[0]); + $this->assertEquals("Averel.Dalton@somewhere.com", $list[1]); + $this->assertEquals('', $list[2]); + $this->assertEquals("Jack.Dalton@somewhere.com", $list[3]); + $this->assertEquals('', $list[4]); + } + + /** + * Test QueryForList with simple ResultMap : string + */ + function testQueryForListWithSimpleResultMap() + { + $list = $this->sqlmap->QueryForList("GetAllEmailAddressesViaResultMap"); + + $this->assertEquals("Joe.Dalton@somewhere.com", $list[0]); + $this->assertEquals("Averel.Dalton@somewhere.com", $list[1]); + $this->assertEquals('', $list[2]); + $this->assertEquals("Jack.Dalton@somewhere.com", $list[3]); + $this->assertEquals('', $list[4]); + } + + /** + * Test QueryForListWithSkipAndMax + */ + function testQueryForListWithSkipAndMax() + { + $list = $this->sqlmap->QueryForList("GetAllAccountsViaResultMap", null, null, 2, 2); + + $this->assertEquals(2, count($list)); + $this->assertEquals(3, $list[0]->getID()); + $this->assertEquals(4, $list[1]->getID()); + } + + + /** + * Test row delegate + */ + function testQueryWithRowDelegate() + { + //$handler = new SqlMapper.RowDelegate(this.RowHandler); + + //$list = $this->sqlmap->QueryWithRowDelegate("GetAllAccountsViaResultMap", null, handler); + + //$this->assertEquals(5, _index); + //$this->assertEquals(5, $list->getCount()); + //$this->assertAccount1$list[0]); + //$this->assertEquals(1, $list[0]->getID()); + //$this->assertEquals(2, $list[1]->getID()); + //$this->assertEquals(3, $list[2]->getID()); + //$this->assertEquals(4, $list[3]->getID()); + //$this->assertEquals(5, $list[4]->getID()); + } + + #endregion + + #region Map Tests + + /** + * Test ExecuteQueryForMap : Hashtable. + */ + function testExecuteQueryForMap() + { + $map = $this->sqlmap->QueryForMap("GetAllAccountsViaResultClass", null, "FirstName"); + + $this->assertEquals(5, count($map)); + $this->assertAccount1($map["Joe"]); + + $this->assertEquals(1, $map["Joe"]->getID()); + $this->assertEquals(2, $map["Averel"]->getID()); + $this->assertEquals(3, $map["William"]->getID()); + $this->assertEquals(4, $map["Jack"]->getID()); + $this->assertEquals(5, $map["Gilles"]->getID()); + } + + /** + * Test ExecuteQueryForMap : Hashtable. + * + * If the keyProperty is an integer, you must acces the map + * by map[integer] and not by map["integer"] + */ + function testExecuteQueryForMap2() + { + $map = $this->sqlmap->QueryForMap("GetAllOrderWithLineItems", null, "PostalCode"); + + $this->assertEquals(11, count($map)); + $order = $map["T4H 9G4"]; + + $this->assertEquals(2, $order->getLineItemsList()->getCount()); + } + + /** + * Test ExecuteQueryForMap with value property : + * "FirstName" as key, "EmailAddress" as value + */ + function testExecuteQueryForMapWithValueProperty() + { + $map = $this->sqlmap->QueryForMap("GetAllAccountsViaResultClass", null, + "FirstName", "EmailAddress"); + + $this->assertEquals(5, count($map)); + + $this->assertEquals("Joe.Dalton@somewhere.com", $map["Joe"]); + $this->assertEquals("Averel.Dalton@somewhere.com", $map["Averel"]); + $this->assertNull($map["William"]); + $this->assertEquals("Jack.Dalton@somewhere.com", $map["Jack"]); + $this->assertNull($map["Gilles"]); + } + + /** + * Test ExecuteQueryForWithJoined + */ + function testExecuteQueryForWithJoined() + { + $order = $this->sqlmap->QueryForObject("GetOrderJoinWithAccount",10); + + $this->assertNotNull($order->getAccount()); + + $order = $this->sqlmap->QueryForObject("GetOrderJoinWithAccount",11); + + $this->assertNull($order->getAccount()); + } + + /** + * Test ExecuteQueryFor With Complex Joined + * + * A->B->C + * ->E + * ->F + */ + function testExecuteQueryForWithComplexJoined() + { + $a = $this->sqlmap->QueryForObject("SelectComplexJoined",null); + $this->assertNotNull($a); + $this->assertNotNull($a->getB()); + $this->assertNotNull($a->getB()->getC()); + $this->assertNull($a->getB()->getD()); + $this->assertNotNull($a->getE()); + $this->assertNull($a->getF()); + } + #endregion + + #region Extends statement + + /** + * Test base Extends statement + */ + function testExtendsGetAllAccounts() + { + $list = $this->sqlmap->QueryForList("GetAllAccounts"); + + $this->assertAccount1($list[0]); + $this->assertEquals(5, count($list)); + $this->assertEquals(1, $list[0]->getID()); + $this->assertEquals(2, $list[1]->getID()); + $this->assertEquals(3, $list[2]->getID()); + $this->assertEquals(4, $list[3]->getID()); + $this->assertEquals(5, $list[4]->getID()); + } + + /** + * Test Extends statement GetAllAccountsOrderByName extends GetAllAccounts + */ + function testExtendsGetAllAccountsOrderByName() + { + $list = $this->sqlmap->QueryForList("GetAllAccountsOrderByName"); + + $this->assertAccount1($list[3]); + $this->assertEquals(5, count($list)); + + $this->assertEquals(2, $list[0]->getID()); + $this->assertEquals(5, $list[1]->getID()); + $this->assertEquals(4, $list[2]->getID()); + $this->assertEquals(1, $list[3]->getID()); + $this->assertEquals(3, $list[4]->getID()); + } + + /** + * Test Extends statement GetOneAccount extends GetAllAccounts + */ + function testExtendsGetOneAccount() + { + $account= $this->sqlmap->QueryForObject("GetOneAccount", 1); + $this->assertAccount1($account); + } + + /** + * Test Extends statement GetSomeAccount extends GetAllAccounts + */ + function testExtendsGetSomeAccount() + { + $param["lowID"] = 2; + $param["hightID"] = 4; + + $list = $this->sqlmap->QueryForList("GetSomeAccount", $param); + + $this->assertEquals(3, count($list)); + + $this->assertEquals(2, $list[0]->getID()); + $this->assertEquals(3, $list[1]->getID()); + $this->assertEquals(4, $list[2]->getID()); + } + + #endregion + + #region Update tests + + + /** + * Test Insert account via public fields + */ + function testInsertAccountViaPublicFields() + { + $this->initScript('account-init.sql'); + + $account = new AccountBis(); + + $account->Id = 10; + $account->FirstName = "Luky"; + $account->LastName = "Luke"; + $account->EmailAddress = "luly.luke@somewhere.com"; + + $this->sqlmap->Insert("InsertAccountViaPublicFields", $account); + + $testAccount = $this->sqlmap->QueryForObject("GetAccountViaColumnName", 10); + + $this->assertNotNull($testAccount); + + $this->assertEquals(10, $testAccount->getID()); + + $this->initScript('account-init.sql'); + } + + /** + * + */ + function testInsertOrderViaProperties() + { + $this->initScript('account-init.sql'); + $this->initScript('order-init.sql'); + $account= $this->NewAccount6(); + + $this->sqlmap->Insert("InsertAccountViaParameterMap", $account); + + $order = new Order(); + $order->setId(99); + $order->setCardExpiry("09/11"); + $order->setAccount($account); + $order->setCardNumber("154564656"); + $order->setCardType("Visa"); + $order->setCity("Lyon"); + $order->setDate('2005-05-20'); + $order->setPostalCode("69004"); + $order->setProvince("Rhone"); + $order->setStreet("rue Durand"); + + $this->sqlmap->Insert("InsertOrderViaPublicFields", $order); + + $this->initScript('account-init.sql'); + $this->initScript('order-init.sql'); + } + + + /** + * Test Insert account via inline parameters + */ + function testInsertAccountViaInlineParameters() + { + $this->initScript('account-init.sql'); + $account= new Account(); + + $account->setId(10); + $account->setFirstName("Luky"); + $account->setLastName("Luke"); + $account->setEmailAddress("luly.luke@somewhere.com"); + + $this->sqlmap->Insert("InsertAccountViaInlineParameters", $account); + + $testAccount = $this->sqlmap->QueryForObject("GetAccountViaColumnIndex", 10); + + $this->assertNotNull($testAccount); + $this->assertEquals(10, $testAccount->getId()); + $this->initScript('account-init.sql'); + } + + /** + * Test Insert account via parameterMap + */ + function testInsertAccountViaParameterMap() + { + $this->initScript('account-init.sql'); + $account= $this->NewAccount6(); + $this->sqlmap->Insert("InsertAccountViaParameterMap", $account); + + $account = $this->sqlmap->QueryForObject("GetAccountNullableEmail", 6); + $this->AssertAccount6($account); + + $this->initScript('account-init.sql'); + } + + /** + * Test Update via parameterMap + */ + function testUpdateViaParameterMap() + { + $this->initScript('account-init.sql'); + $account= $this->sqlmap->QueryForObject("GetAccountViaColumnName", 1); + + $account->setEmailAddress("new@somewhere.com"); + $this->sqlmap->Update("UpdateAccountViaParameterMap", $account); + + $account = $this->sqlmap->QueryForObject("GetAccountViaColumnName", 1); + + $this->assertEquals("new@somewhere.com", $account->getEmailAddress()); + $this->initScript('account-init.sql'); + } + + /** + * Test Update via parameterMap V2 + */ + function testUpdateViaParameterMap2() + { + $this->initScript('account-init.sql'); + $account= $this->sqlmap->QueryForObject("GetAccountViaColumnName", 1); + + $account->setEmailAddress("new@somewhere.com"); + $this->sqlmap->Update("UpdateAccountViaParameterMap2", $account); + + $account = $this->sqlmap->QueryForObject("GetAccountViaColumnName", 1); + + $this->assertEquals("new@somewhere.com", $account->getEmailAddress()); + $this->initScript('account-init.sql'); + } + + /** + * Test Update with inline parameters + */ + function testUpdateWithInlineParameters() + { + $this->initScript('account-init.sql'); + $account= $this->sqlmap->QueryForObject("GetAccountViaColumnName", 1); + + $account->setEmailAddress("new@somewhere.com"); + $this->sqlmap->Update("UpdateAccountViaInlineParameters", $account); + + $account = $this->sqlmap->QueryForObject("GetAccountViaColumnName", 1); + + $this->assertEquals("new@somewhere.com", $account->getEmailAddress()); + $this->initScript('account-init.sql'); + } + + /** + * Test Execute Update With Parameter Class + */ + function testExecuteUpdateWithParameterClass() + { + $this->initScript('account-init.sql'); + $account= $this->NewAccount6(); + + $this->sqlmap->Insert("InsertAccountViaParameterMap", $account); + + $noRowsDeleted = $this->sqlmap->Update("DeleteAccount", null); + + $this->sqlmap->Update("DeleteAccount", $account); + + $account = $this->sqlmap->QueryForObject("GetAccountViaColumnName", 6); + + $this->assertNull($account); + $this->assertEquals(0, $noRowsDeleted); + $this->initScript('account-init.sql'); + } + + /** + * Test Execute Delete + */ + function testExecuteDelete() + { + $this->initScript('account-init.sql'); + $account= $this->NewAccount6(); + + $this->sqlmap->Insert("InsertAccountViaParameterMap", $account); + + $account = null; + $account = $this->sqlmap->QueryForObject("GetAccountViaColumnName", 6); + + $this->assertTrue($account->getId() == 6); + + $rowNumber = $this->sqlmap->Delete("DeleteAccount", $account); + $this->assertTrue($rowNumber == 1); + + $account = $this->sqlmap->QueryForObject("GetAccountViaColumnName", 6); + + $this->assertNull($account); + $this->initScript('account-init.sql'); + } + + /** + * Test Execute Delete + */ + function testDeleteWithComments() + { + $this->initScript('line-item-init.sql'); + $rowNumber = $this->sqlmap->Delete("DeleteWithComments"); + + $this->assertEquals($rowNumber, 2); + $this->initScript('line-item-init.sql'); + } + + + + #endregion + + #region Row delegate + + private $_index = 0; + + function RowHandler($sender, $paramterObject, $list) + { + //_index++; + //$this->assertEquals(_index, (($account) obj).Id); + //$list->Add(obj); + } + + #endregion + + #region JIRA Tests + + /** + * Test JIRA 30 (repeating property) + */ + function testJIRA30() + { + $account= new Account(); + $account->setId(1); + $account->setFirstName("Joe"); + $account->setLastName("Dalton"); + $account->setEmailAddress("Joe.Dalton@somewhere.com"); + + $result = $this->sqlmap->QueryForObject("GetAccountWithRepeatingProperty", $account); + + $this->assertAccount1($result); + } + + /** + * Test Bit column + */ + function testJIRA42() + { + $other = new Other(); + + $other->setInt(100); + $other->setBool(true); + $other->setLong(789456321); + + $this->sqlmap->Insert("InsertBool", $other); + } + + /** + * Test for access a result map in a different namespace + */ + function testJIRA45() + { + $account= $this->sqlmap->QueryForObject("GetAccountJIRA45", 1); + $this->assertAccount1($account); + } + + /** + * Test : Whitespace is not maintained properly when CDATA tags are used + */ + function testJIRA110() + { + $account= $this->sqlmap->QueryForObject("Get1Account"); + $this->assertAccount1($account); + } + + /** + * Test : Whitespace is not maintained properly when CDATA tags are used + */ + function testJIRA110Bis() + { + $list = $this->sqlmap->QueryForList("GetAccounts"); + + $this->assertAccount1($list[0]); + $this->assertEquals(5, count($list)); + } + + /** + * Test for cache stats only being calculated on CachingStatments + */ + function testJIRA113() + { + // $this->sqlmap->FlushCaches(); + + // taken from TestFlushDataCache() + // first query is not cached, second query is: 50% cache hit + /*$list = $this->sqlmap->QueryForList("GetCachedAccountsViaResultMap"); + $firstId = HashCodeProvider.GetIdentityHashCode(list); + list = $this->sqlmap->QueryForList("GetCachedAccountsViaResultMap"); + int secondId = HashCodeProvider.GetIdentityHashCode(list); + $this->assertEquals(firstId, secondId); + + string cacheStats = $this->sqlmap->GetDataCacheStats(); + + $this->assertNotNull(cacheStats);*/ + } + + #endregion + + #region CustomTypeHandler tests + + /** + * Test CustomTypeHandler + */ + function testExecuteQueryWithCustomTypeHandler() + { + $this->sqlmap->getTypeHandlerFactory()->register('HundredsBool', new HundredsBool()); + $this->sqlmap->getTypeHandlerFactory()->register('OuiNonBool', new OuiNonBool()); + + $list = $this->sqlmap->QueryForList("GetAllAccountsViaCustomTypeHandler"); + + $this->assertAccount1($list[0]); + $this->assertEquals(5, count($list)); + $this->assertEquals(1, $list[0]->getID()); + $this->assertEquals(2, $list[1]->getID()); + $this->assertEquals(3, $list[2]->getID()); + $this->assertEquals(4, $list[3]->getID()); + $this->assertEquals(5, $list[4]->getID()); + + $this->assertFalse($list[0]->getCartOptions()); + $this->assertFalse($list[1]->getCartOptions()); + $this->assertTrue($list[2]->getCartOptions()); + $this->assertTrue($list[3]->getCartOptions()); + $this->assertTrue($list[4]->getCartOptions()); + + $this->assertTrue($list[0]->getBannerOptions()); + $this->assertTrue($list[1]->getBannerOptions()); + $this->assertFalse($list[2]->getBannerOptions()); + $this->assertFalse($list[3]->getBannerOptions()); + $this->assertTrue($list[4]->getBannerOptions()); + } + + /** + * Test CustomTypeHandler Oui/Non + */ + function testCustomTypeHandler() + { + $this->initScript('other-init.sql'); + $this->initScript('account-init.sql'); + + $this->sqlmap->getTypeHandlerFactory()->register('OuiNonBool', new OuiNonBool()); + + $other = new Other(); + $other->setInt(99); + $other->setLong(1966); + $other->setBool(true); + $other->setBool2(false); + $this->sqlmap->Insert("InsertCustomTypeHandler", $other); + + $anOther = $this->sqlmap->QueryForObject("SelectByInt", 99); + $this->assertNotNull( $anOther ); + $this->assertEquals(99, (int)$anOther->getInt()); + $this->assertEquals(1966, (int)$anOther->getLong()); + $this->assertEquals(true, (boolean)$anOther->getBool()); + $this->assertEquals(false, (boolean)$anOther->getBool2()); + + } + + /** + * Test CustomTypeHandler Oui/Non + */ + function testInsertInlineCustomTypeHandlerV1() + { + $this->initScript('other-init.sql'); + $this->initScript('account-init.sql'); + + $other = new Other(); + $other->setInt(99); + $other->setLong(1966); + $other->setBool(true); + $other->setBool2(false); + + $this->sqlmap->Insert("InsertInlineCustomTypeHandlerV1", $other); + + $anOther = $this->sqlmap->QueryForObject("SelectByIntV1", 99); + + $this->assertNotNull( $anOther ); + $this->assertEquals(99, (int)$anOther->getInt()); + $this->assertEquals(1966, (int)$anOther->getLong()); + $this->assertEquals(true, (boolean)$anOther->getBool()); + $this->assertEquals(false, (boolean)$anOther->getBool2()); + + } + + /** + * Test CustomTypeHandler Oui/Non + */ + function testInsertInlineCustomTypeHandlerV2() + { + $this->initScript('other-init.sql'); + $this->initScript('account-init.sql'); + + $other = new Other(); + $other->setInt(99); + $other->setLong(1966); + $other->setBool(true); + $other->setBool2(false); + + $this->sqlmap->Insert("InsertInlineCustomTypeHandlerV2", $other); + + $anOther = $this->sqlmap->QueryForObject("SelectByInt", 99); + + $this->assertNotNull( $anOther ); + $this->assertEquals(99, (int)$anOther->getInt()); + $this->assertEquals(1966, (int)$anOther->getLong()); + $this->assertEquals(true, (boolean)$anOther->getBool()); + $this->assertEquals(false, (boolean)$anOther->getBool2()); + } + #endregion + /**/ +} + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/TAdodbConnectionTestCase.php b/tests/unit/SQLMap/TAdodbConnectionTestCase.php index 1ba0ec04..7d566386 100644 --- a/tests/unit/SQLMap/TAdodbConnectionTestCase.php +++ b/tests/unit/SQLMap/TAdodbConnectionTestCase.php @@ -1,64 +1,64 @@ -db_file = dirname(__FILE__).'/resources/test.db'; - copy($file,$this->db_file); - $provider = new TAdodb(); - } - - function getDsn() - { - return 'sqlite://'.urlencode(realpath($this->db_file)); - } - - function testProviderCreation() - { - $provider = new TAdodb(); - $connection = $provider->getConnection(); - $this->assertTrue($connection instanceof TAdodbConnection); - try - { - $connection->open(); - $this->fail(); - } - catch (TDbConnectionException $e) - { - $this->pass(); - } - } - - - - function testAdodbSqliteConnection() - { - $connection = new TAdodbConnection($this->getDsn()); - $this->assertTrue($connection->open()); - - $statement = "insert into person(per_id, per_first_name, - per_last_name, per_birth_date, per_weight_kg, per_height_m) - values(?, ?, ?, ?, ?, ?)"; - $sql = $connection->prepare($statement); - $connection->execute($sql, - array(2,'mini','me','2000-01-01', 50.5, 145.5)); - - $statement = "select * from person"; - $results = $connection->execute($statement); - $this->assertEquals($results->RecordCount(), 2); - - } -} - +db_file = dirname(__FILE__).'/resources/test.db'; + copy($file,$this->db_file); + $provider = new TAdodb(); + } + + function getDsn() + { + return 'sqlite://'.urlencode(realpath($this->db_file)); + } + + function testProviderCreation() + { + $provider = new TAdodb(); + $connection = $provider->getConnection(); + $this->assertTrue($connection instanceof TAdodbConnection); + try + { + $connection->open(); + $this->fail(); + } + catch (TDbConnectionException $e) + { + $this->pass(); + } + } + + + + function testAdodbSqliteConnection() + { + $connection = new TAdodbConnection($this->getDsn()); + $this->assertTrue($connection->open()); + + $statement = "insert into person(per_id, per_first_name, + per_last_name, per_birth_date, per_weight_kg, per_height_m) + values(?, ?, ?, ?, ?, ?)"; + $sql = $connection->prepare($statement); + $connection->execute($sql, + array(2,'mini','me','2000-01-01', 50.5, 145.5)); + + $statement = "select * from person"; + $results = $connection->execute($statement); + $this->assertEquals($results->RecordCount(), 2); + + } +} + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/common.php b/tests/unit/SQLMap/common.php index 97f83267..f13fe829 100644 --- a/tests/unit/SQLMap/common.php +++ b/tests/unit/SQLMap/common.php @@ -1,152 +1,152 @@ - 0) - $connection->execute($line); - } - } -} - -class CopyFileScriptRunner -{ - protected $baseFile; - protected $targetFile; - - public function __construct($base, $target) - { - $this->baseFile = $base; - $this->targetFile = $target; - } - - function runScript($connection, $script) - { - copy($this->baseFile, $this->targetFile); - } -} - -class SQLiteBaseTestConfig extends BaseTestConfig -{ - protected $baseFile; - protected $targetFile; - - public function __construct() - { - $this->_sqlmap = SQLMAP_TESTS.'/sqlite.xml'; - $this->targetFile = realpath(SQLMAP_TESTS.'/sqlite/tests.db'); - $this->baseFile = realpath(SQLMAP_TESTS.'/sqlite/backup.db'); - $file = urlencode($this->targetFile); - $this->_connectionString = "sqlite://{$file}/"; - $this->_scriptDir = SQLMAP_TESTS.'/scripts/sqlite/'; - } - - public function getScriptRunner() - { - return new CopyFileScriptRunner($this->baseFile, $this->targetFile); - } -} - -class MySQLBaseTestConfig extends BaseTestConfig -{ - public function __construct() - { - $this->_sqlmap = SQLMAP_TESTS.'/mysql.xml'; - $this->_connectionString = 'mysql://root:weizhuo01@localhost/IBatisNet'; - $this->_scriptDir = SQLMAP_TESTS.'/scripts/mysql/'; - $this->_features = array('insert_id'); - } -} - -class MSSQLBaseTestConfig extends BaseTestConfig -{ - public function __construct() - { - $this->_sqlmap = SQLMAP_TESTS.'/mssql.xml'; - $this->_connectionString = 'odbc_mssql://sqlmap_tests'; - $this->_scriptDir = SQLMAP_TESTS.'/scripts/mssql/'; - $this->_features = array('insert_id'); - } -} - -class BaseTestConfig -{ - protected $_scriptDir; - protected $_connectionString; - protected $_sqlmap; - protected $_features = array(); - - public function getScriptDir() { return $this->_scriptDir; } - public function getConnectionString() { return $this->_connectionString; } - public function getSqlMapConfigFile(){ return $this->_sqlmap; } - - public function hasFeature($feature) - { - return in_array($feature, $this->_features); - } - - public function getScriptRunner() - { - return new DefaultScriptRunner(); - } - - - public static function createConfigInstance() - { - //change this to connection to a different database - - //return new MySQLBaseTestConfig(); - - return new SQLiteBaseTestConfig(); - - //return new MSSQLBaseTestConfig(); - } - -} - - + 0) + $connection->execute($line); + } + } +} + +class CopyFileScriptRunner +{ + protected $baseFile; + protected $targetFile; + + public function __construct($base, $target) + { + $this->baseFile = $base; + $this->targetFile = $target; + } + + function runScript($connection, $script) + { + copy($this->baseFile, $this->targetFile); + } +} + +class SQLiteBaseTestConfig extends BaseTestConfig +{ + protected $baseFile; + protected $targetFile; + + public function __construct() + { + $this->_sqlmap = SQLMAP_TESTS.'/sqlite.xml'; + $this->targetFile = realpath(SQLMAP_TESTS.'/sqlite/tests.db'); + $this->baseFile = realpath(SQLMAP_TESTS.'/sqlite/backup.db'); + $file = urlencode($this->targetFile); + $this->_connectionString = "sqlite://{$file}/"; + $this->_scriptDir = SQLMAP_TESTS.'/scripts/sqlite/'; + } + + public function getScriptRunner() + { + return new CopyFileScriptRunner($this->baseFile, $this->targetFile); + } +} + +class MySQLBaseTestConfig extends BaseTestConfig +{ + public function __construct() + { + $this->_sqlmap = SQLMAP_TESTS.'/mysql.xml'; + $this->_connectionString = 'mysql://root:weizhuo01@localhost/IBatisNet'; + $this->_scriptDir = SQLMAP_TESTS.'/scripts/mysql/'; + $this->_features = array('insert_id'); + } +} + +class MSSQLBaseTestConfig extends BaseTestConfig +{ + public function __construct() + { + $this->_sqlmap = SQLMAP_TESTS.'/mssql.xml'; + $this->_connectionString = 'odbc_mssql://sqlmap_tests'; + $this->_scriptDir = SQLMAP_TESTS.'/scripts/mssql/'; + $this->_features = array('insert_id'); + } +} + +class BaseTestConfig +{ + protected $_scriptDir; + protected $_connectionString; + protected $_sqlmap; + protected $_features = array(); + + public function getScriptDir() { return $this->_scriptDir; } + public function getConnectionString() { return $this->_connectionString; } + public function getSqlMapConfigFile(){ return $this->_sqlmap; } + + public function hasFeature($feature) + { + return in_array($feature, $this->_features); + } + + public function getScriptRunner() + { + return new DefaultScriptRunner(); + } + + + public static function createConfigInstance() + { + //change this to connection to a different database + + //return new MySQLBaseTestConfig(); + + return new SQLiteBaseTestConfig(); + + //return new MSSQLBaseTestConfig(); + } + +} + + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/domain/A.php b/tests/unit/SQLMap/domain/A.php index 6830ea4d..af1f925d 100644 --- a/tests/unit/SQLMap/domain/A.php +++ b/tests/unit/SQLMap/domain/A.php @@ -1,27 +1,27 @@ -_ID; } - public function setID($value){ $this->_ID = $value; } - - public function getLibelle(){ return $this->_Libelle; } - public function setLibelle($value){ $this->_Libelle = $value; } - - public function getB(){ return $this->_B; } - public function setB($value){ $this->_B = $value; } - - public function getE(){ return $this->_E; } - public function setE($value){ $this->_E = $value; } - - public function getF(){ return $this->_F; } - public function setF($value){ $this->_F = $value; } -} - +_ID; } + public function setID($value){ $this->_ID = $value; } + + public function getLibelle(){ return $this->_Libelle; } + public function setLibelle($value){ $this->_Libelle = $value; } + + public function getB(){ return $this->_B; } + public function setB($value){ $this->_B = $value; } + + public function getE(){ return $this->_E; } + public function setE($value){ $this->_E = $value; } + + public function getF(){ return $this->_F; } + public function setF($value){ $this->_F = $value; } +} + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/domain/Account.php b/tests/unit/SQLMap/domain/Account.php index f01726ba..9502eb85 100644 --- a/tests/unit/SQLMap/domain/Account.php +++ b/tests/unit/SQLMap/domain/Account.php @@ -1,36 +1,36 @@ -_ID; } - public function setID($value){ $this->_ID = intval($value); } - - public function getFirstName(){ return $this->_FirstName; } - public function setFirstName($value){ $this->_FirstName = $value; } - - public function getLastName(){ return $this->_LastName; } - public function setLastName($value){ $this->_LastName = $value; } - - public function getEmailAddress(){ return $this->_EmailAddress; } - public function setEmailAddress($value){ $this->_EmailAddress = $value; } - - public function getIDS(){ return $this->_IDS; } - public function setIDS($value){ $this->_IDS = $value; } - - public function getBannerOptions(){ return $this->_BannerOptions; } - public function setBannerOptions($value){ $this->_BannerOptions = $value; } - - public function getCartOptions(){ return $this->_CartOptions; } - public function setCartOptions($value){ $this->_CartOptions = $value; } - -} - +_ID; } + public function setID($value){ $this->_ID = intval($value); } + + public function getFirstName(){ return $this->_FirstName; } + public function setFirstName($value){ $this->_FirstName = $value; } + + public function getLastName(){ return $this->_LastName; } + public function setLastName($value){ $this->_LastName = $value; } + + public function getEmailAddress(){ return $this->_EmailAddress; } + public function setEmailAddress($value){ $this->_EmailAddress = $value; } + + public function getIDS(){ return $this->_IDS; } + public function setIDS($value){ $this->_IDS = $value; } + + public function getBannerOptions(){ return $this->_BannerOptions; } + public function setBannerOptions($value){ $this->_BannerOptions = $value; } + + public function getCartOptions(){ return $this->_CartOptions; } + public function setCartOptions($value){ $this->_CartOptions = $value; } + +} + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/domain/AccountBis.php b/tests/unit/SQLMap/domain/AccountBis.php index 8c96d8e4..d454f2a8 100644 --- a/tests/unit/SQLMap/domain/AccountBis.php +++ b/tests/unit/SQLMap/domain/AccountBis.php @@ -1,13 +1,13 @@ - \ No newline at end of file diff --git a/tests/unit/SQLMap/domain/AccountCollection.php b/tests/unit/SQLMap/domain/AccountCollection.php index 9fc8edb7..b14ece5e 100644 --- a/tests/unit/SQLMap/domain/AccountCollection.php +++ b/tests/unit/SQLMap/domain/AccountCollection.php @@ -1,17 +1,17 @@ -add($account); - } - - public function copyTo(TList $array) - { - $array->copyFrom($this); - } -} - +add($account); + } + + public function copyTo(TList $array) + { + $array->copyFrom($this); + } +} + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/domain/B.php b/tests/unit/SQLMap/domain/B.php index a05e21d4..788b804e 100644 --- a/tests/unit/SQLMap/domain/B.php +++ b/tests/unit/SQLMap/domain/B.php @@ -1,23 +1,23 @@ -_C; } - public function setC($value){ $this->_C = $value; } - - public function getD(){ return $this->_D; } - public function setD($value){ $this->_D = $value; } - - public function getID(){ return $this->_ID; } - public function setID($value){ $this->_ID = $value; } - - public function getLibelle(){ return $this->_Libelle; } - public function setLibelle($value){ $this->_Libelle = $value; } -} - +_C; } + public function setC($value){ $this->_C = $value; } + + public function getD(){ return $this->_D; } + public function setD($value){ $this->_D = $value; } + + public function getID(){ return $this->_ID; } + public function setID($value){ $this->_ID = $value; } + + public function getLibelle(){ return $this->_Libelle; } + public function setLibelle($value){ $this->_Libelle = $value; } +} + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/domain/Book.php b/tests/unit/SQLMap/domain/Book.php index cc12c30e..80877112 100644 --- a/tests/unit/SQLMap/domain/Book.php +++ b/tests/unit/SQLMap/domain/Book.php @@ -1,11 +1,11 @@ -_PageNumber; } - public function setPageNumber($value){ $this->_PageNumber = $value; } -} - +_PageNumber; } + public function setPageNumber($value){ $this->_PageNumber = $value; } +} + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/domain/C.php b/tests/unit/SQLMap/domain/C.php index 09fb456a..47118d44 100644 --- a/tests/unit/SQLMap/domain/C.php +++ b/tests/unit/SQLMap/domain/C.php @@ -1,15 +1,15 @@ -_ID; } - public function setID($value){ $this->_ID = $value; } - - public function getLibelle(){ return $this->_Libelle; } - public function setLibelle($value){ $this->_Libelle = $value; } -} - +_ID; } + public function setID($value){ $this->_ID = $value; } + + public function getLibelle(){ return $this->_Libelle; } + public function setLibelle($value){ $this->_Libelle = $value; } +} + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/domain/Category.php b/tests/unit/SQLMap/domain/Category.php index 83fecc7e..db76edb4 100644 --- a/tests/unit/SQLMap/domain/Category.php +++ b/tests/unit/SQLMap/domain/Category.php @@ -1,19 +1,19 @@ -_ID; } - public function setID($value){ $this->_ID = $value; } - - public function getName(){ return $this->_Name; } - public function setName($value){ $this->_Name = $value; } - - public function getGuidString(){ return $this->_Guid; } - public function setGuidString($value){ $this->_Guid = $value; } -} - +_ID; } + public function setID($value){ $this->_ID = $value; } + + public function getName(){ return $this->_Name; } + public function setName($value){ $this->_Name = $value; } + + public function getGuidString(){ return $this->_Guid; } + public function setGuidString($value){ $this->_Guid = $value; } +} + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/domain/Complex.php b/tests/unit/SQLMap/domain/Complex.php index 92b500f4..99cb04b8 100644 --- a/tests/unit/SQLMap/domain/Complex.php +++ b/tests/unit/SQLMap/domain/Complex.php @@ -1,11 +1,11 @@ -_map; } - public function setMap(TMap $map){ $this->_map = $map; } -} - +_map; } + public function setMap(TMap $map){ $this->_map = $map; } +} + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/domain/D.php b/tests/unit/SQLMap/domain/D.php index 5d1baabd..2cbd2883 100644 --- a/tests/unit/SQLMap/domain/D.php +++ b/tests/unit/SQLMap/domain/D.php @@ -1,16 +1,16 @@ -_ID; } - public function setID($value){ $this->_ID = $value; } - - public function getLibelle(){ return $this->_Libelle; } - public function setLibelle($value){ $this->_Libelle = $value; } - -} - +_ID; } + public function setID($value){ $this->_ID = $value; } + + public function getLibelle(){ return $this->_Libelle; } + public function setLibelle($value){ $this->_Libelle = $value; } + +} + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/domain/Document.php b/tests/unit/SQLMap/domain/Document.php index 63bcfd33..682f8eb3 100644 --- a/tests/unit/SQLMap/domain/Document.php +++ b/tests/unit/SQLMap/domain/Document.php @@ -1,16 +1,16 @@ -_ID; } - public function setID($value){ $this->_ID = $value; } - - public function getTitle(){ return $this->_Title; } - public function setTitle($value){ $this->_Title = $value; } - -} - +_ID; } + public function setID($value){ $this->_ID = $value; } + + public function getTitle(){ return $this->_Title; } + public function setTitle($value){ $this->_Title = $value; } + +} + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/domain/DocumentCollection.php b/tests/unit/SQLMap/domain/DocumentCollection.php index c15b6f7d..c130db56 100644 --- a/tests/unit/SQLMap/domain/DocumentCollection.php +++ b/tests/unit/SQLMap/domain/DocumentCollection.php @@ -1,8 +1,8 @@ - \ No newline at end of file diff --git a/tests/unit/SQLMap/domain/E.php b/tests/unit/SQLMap/domain/E.php index 2c80bb46..8473c156 100644 --- a/tests/unit/SQLMap/domain/E.php +++ b/tests/unit/SQLMap/domain/E.php @@ -1,16 +1,16 @@ -_ID; } - public function setID($value){ $this->_ID = $value; } - - public function getLibelle(){ return $this->_Libelle; } - public function setLibelle($value){ $this->_Libelle = $value; } - -} - +_ID; } + public function setID($value){ $this->_ID = $value; } + + public function getLibelle(){ return $this->_Libelle; } + public function setLibelle($value){ $this->_Libelle = $value; } + +} + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/domain/F.php b/tests/unit/SQLMap/domain/F.php index b1090cc6..2bbbb2fb 100644 --- a/tests/unit/SQLMap/domain/F.php +++ b/tests/unit/SQLMap/domain/F.php @@ -1,16 +1,16 @@ -_ID; } - public function setID($value){ $this->_ID = $value; } - - public function getLibelle(){ return $this->_Libelle; } - public function setLibelle($value){ $this->_Libelle = $value; } - -} - +_ID; } + public function setID($value){ $this->_ID = $value; } + + public function getLibelle(){ return $this->_Libelle; } + public function setLibelle($value){ $this->_Libelle = $value; } + +} + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/domain/LineItem.php b/tests/unit/SQLMap/domain/LineItem.php index d851da6c..f6908bbd 100644 --- a/tests/unit/SQLMap/domain/LineItem.php +++ b/tests/unit/SQLMap/domain/LineItem.php @@ -1,32 +1,32 @@ -_ID; } - public function setID($value){ $this->_ID = $value; } - - public function getOrder(){ return $this->_Order; } - public function setOrder($value){ $this->_Order = $value; } - - public function getCode(){ return $this->_Code; } - public function setCode($value){ $this->_Code = $value; } - - public function getQuantity(){ return $this->_Quantity; } - public function setQuantity($value){ $this->_Quantity = $value; } - - public function getPrice(){ return $this->_Price; } - public function setPrice($value){ $this->_Price = $value; } - - public function getPictureData(){ return $this->_PictureData; } - public function setPictureData($value){ $this->_PictureData = $value; } - -} - +_ID; } + public function setID($value){ $this->_ID = $value; } + + public function getOrder(){ return $this->_Order; } + public function setOrder($value){ $this->_Order = $value; } + + public function getCode(){ return $this->_Code; } + public function setCode($value){ $this->_Code = $value; } + + public function getQuantity(){ return $this->_Quantity; } + public function setQuantity($value){ $this->_Quantity = $value; } + + public function getPrice(){ return $this->_Price; } + public function setPrice($value){ $this->_Price = $value; } + + public function getPictureData(){ return $this->_PictureData; } + public function setPictureData($value){ $this->_PictureData = $value; } + +} + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/domain/LineItemCollection.php b/tests/unit/SQLMap/domain/LineItemCollection.php index f177487c..8bc95622 100644 --- a/tests/unit/SQLMap/domain/LineItemCollection.php +++ b/tests/unit/SQLMap/domain/LineItemCollection.php @@ -1,8 +1,8 @@ - \ No newline at end of file diff --git a/tests/unit/SQLMap/domain/Newspaper.php b/tests/unit/SQLMap/domain/Newspaper.php index 4eb56aa2..08716c6d 100644 --- a/tests/unit/SQLMap/domain/Newspaper.php +++ b/tests/unit/SQLMap/domain/Newspaper.php @@ -1,12 +1,12 @@ -_City; } - public function setCity($value){ $this->_City = $value; } - -} - +_City; } + public function setCity($value){ $this->_City = $value; } + +} + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/domain/Order.php b/tests/unit/SQLMap/domain/Order.php index 65d18b13..312626fe 100644 --- a/tests/unit/SQLMap/domain/Order.php +++ b/tests/unit/SQLMap/domain/Order.php @@ -1,71 +1,71 @@ -_LineItemsList = new TList; - $this->_LineItems = new TList; - $this->_FavouriteLineItem = new LineItem; - } - - public function getID(){ return $this->_ID; } - public function setID($value){ $this->_ID = $value; } - - public function getAccount(){ return $this->_Account; } - public function setAccount($value){ $this->_Account = $value; } - - public function getDate(){ return $this->_Date; } - public function setDate($value){ $this->_Date = $value; } - - public function getCardType(){ return $this->_CardType; } - public function setCardType($value){ $this->_CardType = $value; } - - public function getCardExpiry(){ return $this->_CardExpiry; } - public function setCardExpiry($value){ $this->_CardExpiry = $value; } - - public function getCardNumber(){ return $this->_CardNumber; } - public function setCardNumber($value){ $this->_CardNumber = $value; } - - public function getStreet(){ return $this->_Street; } - public function setStreet($value){ $this->_Street = $value; } - - public function getCity(){ return $this->_City; } - public function setCity($value){ $this->_City = $value; } - - public function getProvince(){ return $this->_Province; } - public function setProvince($value){ $this->_Province = $value; } - - public function getPostalCode(){ return $this->_PostalCode; } - public function setPostalCode($value){ $this->_PostalCode = $value; } - - public function getLineItemsList(){ return $this->_LineItemsList; } - public function setLineItemsList($value){ $this->_LineItemsList = $value; } - - public function getLineItems(){ return $this->_LineItems; } - public function setLineItems($value){ $this->_LineItems = $value; } - - public function getLineItemsArray(){ return $this->_LineItemsArray; } - public function setLineItemsArray($value){ $this->_LineItemsArray = $value; } - - public function getFavouriteLineItem(){ return $this->_FavouriteLineItem; } - public function setFavouriteLineItem($value){ $this->_FavouriteLineItem = $value; } - -} - +_LineItemsList = new TList; + $this->_LineItems = new TList; + $this->_FavouriteLineItem = new LineItem; + } + + public function getID(){ return $this->_ID; } + public function setID($value){ $this->_ID = $value; } + + public function getAccount(){ return $this->_Account; } + public function setAccount($value){ $this->_Account = $value; } + + public function getDate(){ return $this->_Date; } + public function setDate($value){ $this->_Date = $value; } + + public function getCardType(){ return $this->_CardType; } + public function setCardType($value){ $this->_CardType = $value; } + + public function getCardExpiry(){ return $this->_CardExpiry; } + public function setCardExpiry($value){ $this->_CardExpiry = $value; } + + public function getCardNumber(){ return $this->_CardNumber; } + public function setCardNumber($value){ $this->_CardNumber = $value; } + + public function getStreet(){ return $this->_Street; } + public function setStreet($value){ $this->_Street = $value; } + + public function getCity(){ return $this->_City; } + public function setCity($value){ $this->_City = $value; } + + public function getProvince(){ return $this->_Province; } + public function setProvince($value){ $this->_Province = $value; } + + public function getPostalCode(){ return $this->_PostalCode; } + public function setPostalCode($value){ $this->_PostalCode = $value; } + + public function getLineItemsList(){ return $this->_LineItemsList; } + public function setLineItemsList($value){ $this->_LineItemsList = $value; } + + public function getLineItems(){ return $this->_LineItems; } + public function setLineItems($value){ $this->_LineItems = $value; } + + public function getLineItemsArray(){ return $this->_LineItemsArray; } + public function setLineItemsArray($value){ $this->_LineItemsArray = $value; } + + public function getFavouriteLineItem(){ return $this->_FavouriteLineItem; } + public function setFavouriteLineItem($value){ $this->_FavouriteLineItem = $value; } + +} + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/domain/Other.php b/tests/unit/SQLMap/domain/Other.php index 32d85e90..9e78ab97 100644 --- a/tests/unit/SQLMap/domain/Other.php +++ b/tests/unit/SQLMap/domain/Other.php @@ -1,23 +1,23 @@ -_Bool2; } - public function setBool2($value){ $this->_Bool2 = $value; } - - public function getBool(){ return $this->_Bool; } - public function setBool($value){ $this->_Bool = $value; } - - public function getInt(){ return $this->_Int; } - public function setInt($value){ $this->_Int = $value; } - - public function getLong(){ return $this->_Long; } - public function setLong($value){ $this->_Long = $value; } -} - +_Bool2; } + public function setBool2($value){ $this->_Bool2 = $value; } + + public function getBool(){ return $this->_Bool; } + public function setBool($value){ $this->_Bool = $value; } + + public function getInt(){ return $this->_Int; } + public function setInt($value){ $this->_Int = $value; } + + public function getLong(){ return $this->_Long; } + public function setLong($value){ $this->_Long = $value; } +} + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/domain/Sample.php b/tests/unit/SQLMap/domain/Sample.php index c9a34601..e03be2df 100644 --- a/tests/unit/SQLMap/domain/Sample.php +++ b/tests/unit/SQLMap/domain/Sample.php @@ -1,55 +1,55 @@ -_FirstID; } - public function setFirstID($value){ $this->_FirstID = $value; } - - public function getSecondID(){ return $this->_SecondID; } - public function setSecondID($value){ $this->_SecondID = $value; } - - public function getThirdID(){ return $this->_ThirdID; } - public function setThirdID($value){ $this->_ThirdID = $value; } - - public function getFourthID(){ return $this->_FourthID; } - public function setFourthID($value){ $this->_FourthID = $value; } - - public function getFifthID(){ return $this->_FifthID; } - public function setFifthID($value){ $this->_FifthID = $value; } - - public function getSequenceID(){ return $this->_SequenceID; } - public function setSequenceID($value){ $this->_SequenceID = $value; } - - public function getDistributedID(){ return $this->_DistributedID; } - public function setDistributedID($value){ $this->_DistributedID = $value; } - - public function getSampleChar(){ return $this->_SampleChar; } - public function setSampleChar($value){ $this->_SampleChar = $value; } - - public function getSampleDecimal(){ return $this->_SampleDecimal; } - public function setSampleDecimal($value){ $this->_SampleDecimal = $value; } - - public function getSampleMoney(){ return $this->_SampleMoney; } - public function setSampleMoney($value){ $this->_SampleMoney = $value; } - - public function getSampleDate(){ return $this->_SampleDate; } - public function setSampleDate($value){ $this->_SampleDate = $value; } - - public function getSequenceDate(){ return $this->_SequenceDate; } - public function setSequenceDate($value){ $this->_SequenceDate = $value; } -} - +_FirstID; } + public function setFirstID($value){ $this->_FirstID = $value; } + + public function getSecondID(){ return $this->_SecondID; } + public function setSecondID($value){ $this->_SecondID = $value; } + + public function getThirdID(){ return $this->_ThirdID; } + public function setThirdID($value){ $this->_ThirdID = $value; } + + public function getFourthID(){ return $this->_FourthID; } + public function setFourthID($value){ $this->_FourthID = $value; } + + public function getFifthID(){ return $this->_FifthID; } + public function setFifthID($value){ $this->_FifthID = $value; } + + public function getSequenceID(){ return $this->_SequenceID; } + public function setSequenceID($value){ $this->_SequenceID = $value; } + + public function getDistributedID(){ return $this->_DistributedID; } + public function setDistributedID($value){ $this->_DistributedID = $value; } + + public function getSampleChar(){ return $this->_SampleChar; } + public function setSampleChar($value){ $this->_SampleChar = $value; } + + public function getSampleDecimal(){ return $this->_SampleDecimal; } + public function setSampleDecimal($value){ $this->_SampleDecimal = $value; } + + public function getSampleMoney(){ return $this->_SampleMoney; } + public function setSampleMoney($value){ $this->_SampleMoney = $value; } + + public function getSampleDate(){ return $this->_SampleDate; } + public function setSampleDate($value){ $this->_SampleDate = $value; } + + public function getSequenceDate(){ return $this->_SequenceDate; } + public function setSequenceDate($value){ $this->_SequenceDate = $value; } +} + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/domain/Search.php b/tests/unit/SQLMap/domain/Search.php index a09ca6e6..c01891a9 100644 --- a/tests/unit/SQLMap/domain/Search.php +++ b/tests/unit/SQLMap/domain/Search.php @@ -1,23 +1,23 @@ -_NumberSearch; } - public function setNumberSearch($value){ $this->_NumberSearch = $value; } - - public function getStartDate(){ return $this->_StartDate; } - public function setStartDate($value){ $this->_StartDate = $value; } - - public function getOperande(){ return $this->_Operande; } - public function setOperande($value){ $this->_Operande = $value; } - - public function getStartDateAnd(){ return $this->_StartDateAnd; } - public function setStartDateAnd($value){ $this->_StartDateAnd = $value; } -} - +_NumberSearch; } + public function setNumberSearch($value){ $this->_NumberSearch = $value; } + + public function getStartDate(){ return $this->_StartDate; } + public function setStartDate($value){ $this->_StartDate = $value; } + + public function getOperande(){ return $this->_Operande; } + public function setOperande($value){ $this->_Operande = $value; } + + public function getStartDateAnd(){ return $this->_StartDateAnd; } + public function setStartDateAnd($value){ $this->_StartDateAnd = $value; } +} + ?> \ No newline at end of file diff --git a/tests/unit/SQLMap/domain/User.php b/tests/unit/SQLMap/domain/User.php index 0c3a547f..b21712a3 100644 --- a/tests/unit/SQLMap/domain/User.php +++ b/tests/unit/SQLMap/domain/User.php @@ -1,27 +1,27 @@ -_ID; } - public function setID($value){ $this->_ID = $value; } - - public function getUserName(){ return $this->_UserName; } - public function setUserName($value){ $this->_UserName = $value; } - - public function getPassword(){ return $this->_Password; } - public function setPassword($value){ $this->_Password = $value; } - - public function getEmailAddress(){ return $this->_EmailAddress; } - public function setEmailAddress($value){ $this->_EmailAddress = $value; } - - public function getLastLogon(){ return $this->_LastLogon; } - public function setLastLogon($value){ $this->_LastLogon = $value; } -} - +_ID; } + public function setID($value){ $this->_ID = $value; } + + public function getUserName(){ return $this->_UserName; } + public function setUserName($value){ $this->_UserName = $value; } + + public function getPassword(){ return $this->_Password; } + public function setPassword($value){ $this->_Password = $value; } + + public function getEmailAddress(){ return $this->_EmailAddress; } + public function setEmailAddress($value){ $this->_EmailAddress = $value; } + + public function getLastLogon(){ return $this->_LastLogon; } + public function setLastLogon($value){ $this->_LastLogon = $value; } +} + ?> \ No newline at end of file -- cgit v1.2.3