diff options
Diffstat (limited to 'tests/simple_unit/SqlMap/SelectKeyTest.php')
| -rw-r--r-- | tests/simple_unit/SqlMap/SelectKeyTest.php | 120 | 
1 files changed, 120 insertions, 0 deletions
diff --git a/tests/simple_unit/SqlMap/SelectKeyTest.php b/tests/simple_unit/SqlMap/SelectKeyTest.php new file mode 100644 index 00000000..dd1d58df --- /dev/null +++ b/tests/simple_unit/SqlMap/SelectKeyTest.php @@ -0,0 +1,120 @@ +<?php
 +
 +require_once(dirname(__FILE__).'/BaseCase.php');
 +
 +/**
 + * @package System.DataAccess.SQLMap
 + */
 +class SelectKeyTest extends BaseCase
 +{
 +	function __construct()
 +	{
 +		parent::__construct();
 +		$this->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->assertIdentical(99, $key);
 +		$this->assertIdentical(99, $item->getId());
 +
 +		$param["Order_ID"] = 9;
 +		$param["LineItem_ID"] =10;
 +		$testItem = $this->sqlmap->QueryForObject("GetSpecificLineItem", $param);
 +
 +		$this->assertNotNull($testItem);
 +		$this->assertIdentical(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->assertIdentical(99, $key);
 +		$this->assertIdentical(99, $item->getId());
 +
 +		$param["Order_ID"] = 9;
 +		$param["LineItem_ID"] = 99;
 +
 +		$testItem = $this->sqlmap->QueryForObject("GetSpecificLineItem", $param);
 +
 +		$this->assertNotNull($testItem);
 +		$this->assertIdentical(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->assertIdentical(100, $item->getId());
 +
 +		$param["Order_ID"] = 9;
 +		$param["LineItem_ID"] = 100;
 +
 +		$testItem = $this->sqlmap->QueryForObject("GetSpecificLineItem", $param);
 +
 +		$this->assertNotNull($testItem);
 +		$this->assertIdentical(100, $testItem->getId());
 +
 +		$this->initScript('line-item-init.sql');
 +	}
 +}
 +
 +?>
\ No newline at end of file  | 
