Commit | Line | Data |
---|---|---|
6a488035 | 1 | <?php |
aba1cd8b EM |
2 | |
3 | /** | |
4 | * Class CRM_Contact_BAO_ContactType_ContactTypeTest | |
5 | */ | |
6a488035 | 6 | class CRM_Contact_BAO_ContactType_ContactTypeTest extends CiviUnitTestCase { |
6a488035 | 7 | |
00be9182 | 8 | public function setUp() { |
6a488035 | 9 | parent::setUp(); |
92fcb95f | 10 | $labelsub1 = 'sub1_individual' . substr(sha1(rand()), 0, 7); |
6a488035 TO |
11 | $params = array( |
12 | 'label' => $labelsub1, | |
13 | 'name' => $labelsub1, | |
14 | // Individual | |
15 | 'parent_id' => 1, | |
16 | 'is_active' => 1, | |
17 | ); | |
18 | $result = CRM_Contact_BAO_ContactType::add($params); | |
19 | $this->subTypesIndividual[] = $params['name']; | |
20 | ||
92fcb95f | 21 | $labelsub2 = 'sub2_individual' . substr(sha1(rand()), 0, 7); |
6a488035 TO |
22 | $params = array( |
23 | 'label' => $labelsub2, | |
24 | 'name' => $labelsub2, | |
25 | // Individual | |
26 | 'parent_id' => 1, | |
27 | 'is_active' => 1, | |
28 | ); | |
29 | $result = CRM_Contact_BAO_ContactType::add($params); | |
30 | $this->subTypesIndividual[] = $params['name']; | |
31 | ||
92fcb95f | 32 | $labelsub = 'sub_organization' . substr(sha1(rand()), 0, 7); |
6a488035 TO |
33 | $params = array( |
34 | 'label' => $labelsub, | |
35 | 'name' => $labelsub, | |
36 | // Organization | |
37 | 'parent_id' => 3, | |
38 | 'is_active' => 1, | |
39 | ); | |
40 | $result = CRM_Contact_BAO_ContactType::add($params); | |
41 | $this->subTypesOrganization[] = $params['name']; | |
42 | ||
92fcb95f | 43 | $labelhousehold = 'sub_household' . substr(sha1(rand()), 0, 7); |
6a488035 TO |
44 | $params = array( |
45 | 'label' => $labelhousehold, | |
46 | 'name' => $labelhousehold, | |
47 | // Household | |
48 | 'parent_id' => 2, | |
49 | 'is_active' => 1, | |
50 | ); | |
51 | $result = CRM_Contact_BAO_ContactType::add($params); | |
52 | $this->subTypesHousehold[] = $params['name']; | |
53 | } | |
54 | ||
c490a46a | 55 | /** |
100fef9d | 56 | * Test contactTypes() and subTypes() methods with valid data |
c490a46a CW |
57 | * success expected |
58 | */ | |
00be9182 | 59 | public function testGetMethods() { |
6a488035 TO |
60 | |
61 | // check all contact types | |
62 | $contactTypes = array('Individual', 'Organization', 'Household'); | |
63 | $result = CRM_Contact_BAO_ContactType::contactTypes('Individual'); | |
64 | foreach ($contactTypes as $type) { | |
a15773db | 65 | $this->assertEquals(in_array($type, $result), TRUE); |
6a488035 TO |
66 | } |
67 | ||
68 | // check for type:Individual | |
69 | $result = CRM_Contact_BAO_ContactType::subTypes('Individual'); | |
70 | foreach ($result as $subtype) { | |
71 | $subTypeName = in_array($subtype, $this->subTypesIndividual); | |
72 | if (!empty($subTypeName)) { | |
a15773db | 73 | $this->assertEquals($subTypeName, TRUE); |
6a488035 | 74 | } |
a15773db TM |
75 | $this->assertEquals(in_array($subtype, $this->subTypesOrganization), FALSE); |
76 | $this->assertEquals(in_array($subtype, $this->subTypesHousehold), FALSE); | |
6a488035 TO |
77 | } |
78 | ||
79 | // check for type:Organization | |
80 | $result = CRM_Contact_BAO_ContactType::subTypes('Organization'); | |
81 | foreach ($result as $subtype) { | |
a15773db | 82 | $this->assertEquals(in_array($subtype, $this->subTypesIndividual), FALSE); |
6a488035 TO |
83 | $subTypeName = in_array($subtype, $this->subTypesOrganization); |
84 | if (!empty($subTypeName)) { | |
a15773db | 85 | $this->assertEquals($subTypeName, TRUE); |
6a488035 TO |
86 | } |
87 | $subTypeName = in_array($subTypeName, $this->subTypesHousehold); | |
88 | if (empty($subTypeName)) { | |
a15773db | 89 | $this->assertEquals($subTypeName, FALSE); |
6a488035 TO |
90 | } |
91 | } | |
92 | ||
93 | // check for type:Household | |
94 | $result = CRM_Contact_BAO_ContactType::subTypes('Household'); | |
95 | foreach ($result as $subtype) { | |
a15773db TM |
96 | $this->assertEquals(in_array($subtype, $this->subTypesIndividual), FALSE); |
97 | $this->assertEquals(in_array($subtype, $this->subTypesOrganization), FALSE); | |
98 | $this->assertEquals(in_array($subtype, $this->subTypesHousehold), TRUE); | |
6a488035 TO |
99 | } |
100 | ||
101 | // check for all conatct types | |
102 | $result = CRM_Contact_BAO_ContactType::subTypes(); | |
103 | foreach ($this->subTypesIndividual as $subtype) { | |
a15773db | 104 | $this->assertEquals(in_array($subtype, $result), TRUE); |
6a488035 TO |
105 | } |
106 | foreach ($this->subTypesOrganization as $subtype) { | |
a15773db | 107 | $this->assertEquals(in_array($subtype, $result), TRUE); |
6a488035 TO |
108 | } |
109 | foreach ($this->subTypesHousehold as $subtype) { | |
a15773db | 110 | $this->assertEquals(in_array($subtype, $result), TRUE); |
6a488035 TO |
111 | } |
112 | } | |
113 | ||
c490a46a | 114 | /** |
100fef9d | 115 | * Test subTypes() methods with invalid data |
c490a46a | 116 | */ |
00be9182 | 117 | public function testGetMethodsInvalid() { |
6a488035 TO |
118 | |
119 | $params = 'invalid'; | |
120 | $result = CRM_Contact_BAO_ContactType::subTypes($params); | |
a15773db | 121 | $this->assertEquals(empty($result), TRUE); |
6a488035 TO |
122 | |
123 | $params = array('invalid'); | |
124 | $result = CRM_Contact_BAO_ContactType::subTypes($params); | |
a15773db | 125 | $this->assertEquals(empty($result), TRUE); |
6a488035 TO |
126 | } |
127 | ||
c490a46a | 128 | /** |
100fef9d | 129 | * Test add() methods with valid data |
c490a46a CW |
130 | * success expected |
131 | */ | |
00be9182 | 132 | public function testAdd() { |
6a488035 TO |
133 | |
134 | $params = array( | |
135 | 'label' => 'indiviSubType', | |
136 | 'name' => 'indiviSubType', | |
137 | 'parent_id' => 1, | |
138 | 'is_active' => 1, | |
139 | ); | |
140 | $result = CRM_Contact_BAO_ContactType::add($params); | |
ba4a1892 TM |
141 | $this->assertEquals($result->label, $params['label']); |
142 | $this->assertEquals($result->name, $params['name']); | |
143 | $this->assertEquals($result->parent_id, $params['parent_id']); | |
144 | $this->assertEquals($result->is_active, $params['is_active']); | |
6a488035 TO |
145 | CRM_Contact_BAO_ContactType::del($result->id); |
146 | ||
147 | $params = array( | |
148 | 'label' => 'householdSubType', | |
149 | 'name' => 'householdSubType', | |
150 | 'parent_id' => 2, | |
151 | 'is_active' => 0, | |
152 | ); | |
153 | $result = CRM_Contact_BAO_ContactType::add($params); | |
ba4a1892 TM |
154 | $this->assertEquals($result->label, $params['label']); |
155 | $this->assertEquals($result->name, $params['name']); | |
156 | $this->assertEquals($result->parent_id, $params['parent_id']); | |
157 | $this->assertEquals($result->is_active, $params['is_active']); | |
6a488035 TO |
158 | CRM_Contact_BAO_ContactType::del($result->id); |
159 | } | |
160 | ||
c490a46a | 161 | /** |
100fef9d | 162 | * Test add() with invalid data |
c490a46a | 163 | */ |
00be9182 | 164 | public function testAddInvalid1() { |
6a488035 TO |
165 | |
166 | // parent id does not exist in db | |
167 | $params = array( | |
168 | 'label' => 'subType', | |
169 | 'name' => 'subType', | |
e4f46be0 | 170 | // non existent |
6a488035 TO |
171 | 'parent_id' => 100, |
172 | 'is_active' => 1, | |
173 | ); | |
174 | $result = CRM_Contact_BAO_ContactType::add($params); | |
a15773db | 175 | $this->assertEquals($result, NULL); |
6a488035 TO |
176 | } |
177 | ||
00be9182 | 178 | public function testAddInvalid2() { |
6a488035 TO |
179 | |
180 | // params does not have name and label keys | |
181 | $params = array( | |
182 | 'parent_id' => 1, | |
183 | 'is_active' => 1, | |
184 | ); | |
185 | $result = CRM_Contact_BAO_ContactType::add($params); | |
a15773db | 186 | $this->assertEquals($result, NULL); |
6a488035 TO |
187 | } |
188 | ||
00be9182 | 189 | public function testAddInvalid3() { |
6a488035 TO |
190 | |
191 | // params does not have parent_id | |
192 | $params = array( | |
193 | 'label' => 'subType', | |
194 | 'name' => 'subType', | |
195 | 'is_active' => 1, | |
196 | ); | |
197 | $result = CRM_Contact_BAO_ContactType::add($params); | |
198 | $this->assertEquals($result, NULL, 'In line' . __LINE__); | |
199 | } | |
200 | ||
c490a46a | 201 | /** |
100fef9d | 202 | * Test del() with valid data |
c490a46a CW |
203 | * success expected |
204 | */ | |
00be9182 | 205 | public function testDel() { |
6a488035 TO |
206 | |
207 | $params = array( | |
208 | 'label' => 'indiviSubType', | |
209 | 'name' => 'indiviSubType', | |
210 | 'parent_id' => 1, | |
211 | 'is_active' => 1, | |
212 | ); | |
213 | $subtype = CRM_Contact_BAO_ContactType::add($params); | |
214 | ||
215 | $del = CRM_Contact_BAO_ContactType::del($subtype->id); | |
216 | $result = CRM_Contact_BAO_ContactType::subTypes(); | |
a15773db TM |
217 | $this->assertEquals($del, TRUE); |
218 | $this->assertEquals(in_array($subtype->name, $result), TRUE); | |
6a488035 TO |
219 | } |
220 | ||
c490a46a | 221 | /** |
100fef9d | 222 | * Test del() with invalid data |
c490a46a | 223 | */ |
00be9182 | 224 | public function testDelInvalid() { |
6a488035 TO |
225 | |
226 | $del = CRM_Contact_BAO_ContactType::del(NULL); | |
a15773db | 227 | $this->assertEquals($del, FALSE); |
6a488035 | 228 | } |
96025800 | 229 | |
6a488035 | 230 | } |