1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
<?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');
}
}
|