diff options
Diffstat (limited to 'tests/unit/SQLMap/ResultMapTest.php')
| -rw-r--r-- | tests/unit/SQLMap/ResultMapTest.php | 558 | 
1 files changed, 279 insertions, 279 deletions
| 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 @@ -<?php
 -
 -require_once(dirname(__FILE__).'/BaseTest.php');
 -
 -/**
 - * @package System.DataAccess.SQLMap
 - */
 -class ResultMapTest extends BaseTest
 -{
 -	function __construct()
 -	{
 -		parent::__construct();
 -		$this->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());
 -	}
 -*/
 -
 -}
 -
 +<?php + +require_once(dirname(__FILE__).'/BaseTest.php'); + +/** + * @package System.DataAccess.SQLMap + */ +class ResultMapTest extends BaseTest +{ +	function __construct() +	{ +		parent::__construct(); +		$this->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 | 
