Commit | Line | Data |
---|---|---|
e19323c9 TO |
1 | <?php |
2 | ||
3 | require_once 'CiviTest/CiviUnitTestCase.php'; | |
4 | ||
aba1cd8b EM |
5 | /** |
6 | * Class CRM_Case_XMLRepositoryTest | |
7 | */ | |
e19323c9 TO |
8 | class CRM_Case_XMLRepositoryTest extends CiviUnitTestCase { |
9 | protected $fixtures = array(); | |
10 | ||
11 | protected function setUp() { | |
12 | parent::setUp(); | |
13 | $this->fixtures['CaseTypeWithSingleActivityType'] = ' | |
14 | <CaseType> | |
15 | <name>CaseTypeWithSingleActivityType</name> | |
16 | <ActivityTypes> | |
17 | <ActivityType> | |
18 | <name>Single Activity Type</name> | |
19 | <max_instances>1</max_instances> | |
20 | </ActivityType> | |
21 | </ActivityTypes> | |
22 | </CaseType> | |
23 | '; | |
24 | $this->fixtures['CaseTypeWithTwoActivityTypes'] = ' | |
25 | <CaseType> | |
26 | <name>CaseTypeWithTwoActivityTypes</name> | |
27 | <ActivityTypes> | |
28 | <ActivityType> | |
29 | <name>First Activity Type</name> | |
30 | <max_instances>1</max_instances> | |
31 | </ActivityType> | |
32 | <ActivityType> | |
33 | <name>Second Activity Type</name> | |
34 | </ActivityType> | |
35 | </ActivityTypes> | |
36 | </CaseType> | |
37 | '; | |
38 | $this->fixtures['CaseTypeWithThreeActivityTypes'] = ' | |
39 | <CaseType> | |
40 | <name>CaseTypeWithThreeActivityTypes</name> | |
41 | <ActivityTypes> | |
42 | <ActivityType> | |
43 | <name>First Activity Type</name> | |
44 | <max_instances>1</max_instances> | |
45 | </ActivityType> | |
46 | <ActivityType> | |
47 | <name>Second Activity Type</name> | |
48 | </ActivityType> | |
49 | <ActivityType> | |
50 | <name>Third Activity Type</name> | |
51 | </ActivityType> | |
52 | </ActivityTypes> | |
53 | </CaseType> | |
54 | '; | |
55 | $this->fixtures['CaseTypeWithSingleRole'] = ' | |
56 | <CaseType> | |
57 | <name>CaseTypeWithSingleRole</name> | |
58 | <CaseRoles> | |
59 | <RelationshipType> | |
60 | <name>Single Role</name> | |
61 | <creator>1</creator> | |
62 | </RelationshipType> | |
63 | </CaseRoles> | |
64 | </CaseType> | |
65 | '; | |
66 | $this->fixtures['CaseTypeWithTwoRoles'] = ' | |
67 | <CaseType> | |
68 | <name>CaseTypeWithTwoRoles</name> | |
69 | <CaseRoles> | |
70 | <RelationshipType> | |
71 | <name>First Role</name> | |
72 | <creator>1</creator> | |
73 | </RelationshipType> | |
74 | <RelationshipType> | |
75 | <name>Second Role</name> | |
76 | </RelationshipType> | |
77 | </CaseRoles> | |
78 | </CaseType> | |
79 | '; | |
80 | $this->fixtures['CaseTypeWithThreeRoles'] = ' | |
81 | <CaseType> | |
82 | <name>CaseTypeWithThreeRoles</name> | |
83 | <CaseRoles> | |
84 | <RelationshipType> | |
85 | <name>First Role</name> | |
86 | <creator>1</creator> | |
87 | </RelationshipType> | |
88 | <RelationshipType> | |
89 | <name>Second Role</name> | |
90 | </RelationshipType> | |
91 | <RelationshipType> | |
92 | <name>Third Role</name> | |
93 | </RelationshipType> | |
94 | </CaseRoles> | |
95 | </CaseType> | |
96 | '; | |
97 | ||
98 | } | |
99 | ||
00be9182 | 100 | public function testGetAllDeclaredActivityTypes() { |
7458ddd3 TO |
101 | $repo = new CRM_Case_XMLRepository( |
102 | array('CaseTypeWithTwoActivityTypes', 'CaseTypeWithThreeActivityTypes'), | |
103 | array( | |
104 | 'CaseTypeWithTwoActivityTypes' => new SimpleXMLElement($this->fixtures['CaseTypeWithTwoActivityTypes']), | |
105 | 'CaseTypeWithThreeActivityTypes' => new SimpleXMLElement($this->fixtures['CaseTypeWithThreeActivityTypes']), | |
106 | /* healthful noise: */ | |
107 | 'CaseTypeWithSingleRole' => new SimpleXMLElement($this->fixtures['CaseTypeWithSingleRole']), | |
108 | ) | |
109 | ); | |
110 | ||
111 | // omitted: 'Single Activity Type' | |
112 | $expected = array('First Activity Type', 'Second Activity Type', 'Third Activity Type'); | |
113 | $actual = $repo->getAllDeclaredActivityTypes(); | |
114 | $this->assertEquals($expected, $actual); | |
115 | } | |
116 | ||
00be9182 | 117 | public function testGetAllDeclaredRelationshipTypes() { |
7458ddd3 TO |
118 | $repo = new CRM_Case_XMLRepository( |
119 | array('CaseTypeWithTwoRoles', 'CaseTypeWithThreeRoles', 'CaseTypeWithSingleActivityType'), | |
120 | array( | |
121 | 'CaseTypeWithTwoRoles' => new SimpleXMLElement($this->fixtures['CaseTypeWithTwoRoles']), | |
122 | 'CaseTypeWithThreeRoles' => new SimpleXMLElement($this->fixtures['CaseTypeWithThreeRoles']), | |
123 | /* healthful noise: */ | |
124 | 'CaseTypeWithSingleActivityType' => new SimpleXMLElement($this->fixtures['CaseTypeWithSingleActivityType']), | |
125 | ) | |
126 | ); | |
127 | // omitted: 'Single Role' | |
128 | $expected = array('First Role', 'Second Role', 'Third Role'); | |
129 | $actual = $repo->getAllDeclaredRelationshipTypes(); | |
130 | $this->assertEquals($expected, $actual); | |
131 | } | |
132 | ||
00be9182 | 133 | public function testGetActivityReferenceCount_1() { |
e19323c9 TO |
134 | $repo = new CRM_Case_XMLRepository( |
135 | array('CaseTypeWithSingleActivityType'), | |
136 | array( | |
137 | 'CaseTypeWithSingleActivityType' => new SimpleXMLElement($this->fixtures['CaseTypeWithSingleActivityType']), | |
7458ddd3 | 138 | /* healthful noise: */ |
e19323c9 TO |
139 | 'CaseTypeWithSingleRole' => new SimpleXMLElement($this->fixtures['CaseTypeWithSingleRole']), |
140 | ) | |
141 | ); | |
142 | ||
143 | $this->assertEquals(1, $repo->getActivityReferenceCount('Single Activity Type')); | |
144 | $this->assertEquals(0, $repo->getActivityReferenceCount('First Activity Type')); | |
145 | $this->assertEquals(0, $repo->getActivityReferenceCount('Second Activity Type')); | |
146 | $this->assertEquals(0, $repo->getActivityReferenceCount('Third Activity Type')); | |
147 | } | |
148 | ||
00be9182 | 149 | public function testGetActivityReferenceCount_23() { |
e19323c9 TO |
150 | $repo = new CRM_Case_XMLRepository( |
151 | array('CaseTypeWithTwoActivityTypes', 'CaseTypeWithThreeActivityTypes'), | |
152 | array( | |
153 | 'CaseTypeWithTwoActivityTypes' => new SimpleXMLElement($this->fixtures['CaseTypeWithTwoActivityTypes']), | |
154 | 'CaseTypeWithThreeActivityTypes' => new SimpleXMLElement($this->fixtures['CaseTypeWithThreeActivityTypes']), | |
155 | /* noise: */ | |
156 | 'CaseTypeWithSingleRole' => new SimpleXMLElement($this->fixtures['CaseTypeWithSingleRole']), | |
157 | ) | |
158 | ); | |
159 | ||
160 | $this->assertEquals(0, $repo->getActivityReferenceCount('Single Activity Type')); | |
161 | $this->assertEquals(2, $repo->getActivityReferenceCount('First Activity Type')); | |
162 | $this->assertEquals(2, $repo->getActivityReferenceCount('Second Activity Type')); | |
163 | $this->assertEquals(1, $repo->getActivityReferenceCount('Third Activity Type')); | |
164 | } | |
165 | ||
00be9182 | 166 | public function testGetRoleReferenceCount_1() { |
e19323c9 TO |
167 | $repo = new CRM_Case_XMLRepository( |
168 | array('CaseTypeWithSingleRole', 'CaseTypeWithSingleActivityType'), | |
169 | array( | |
170 | 'CaseTypeWithSingleRole' => new SimpleXMLElement($this->fixtures['CaseTypeWithSingleRole']), | |
7458ddd3 | 171 | /* healthful noise: */ |
e19323c9 TO |
172 | 'CaseTypeWithSingleActivityType' => new SimpleXMLElement($this->fixtures['CaseTypeWithSingleActivityType']), |
173 | ) | |
174 | ); | |
175 | ||
176 | $this->assertEquals(1, $repo->getRelationshipReferenceCount('Single Role')); | |
177 | $this->assertEquals(0, $repo->getRelationshipReferenceCount('First Role')); | |
178 | $this->assertEquals(0, $repo->getRelationshipReferenceCount('Second Role')); | |
179 | $this->assertEquals(0, $repo->getRelationshipReferenceCount('Third Role')); | |
180 | } | |
181 | ||
00be9182 | 182 | public function testGetRoleReferenceCount_23() { |
e19323c9 TO |
183 | $repo = new CRM_Case_XMLRepository( |
184 | array('CaseTypeWithTwoRoles', 'CaseTypeWithThreeRoles', 'CaseTypeWithSingleActivityType'), | |
185 | array( | |
186 | 'CaseTypeWithTwoRoles' => new SimpleXMLElement($this->fixtures['CaseTypeWithTwoRoles']), | |
187 | 'CaseTypeWithThreeRoles' => new SimpleXMLElement($this->fixtures['CaseTypeWithThreeRoles']), | |
7458ddd3 | 188 | /* healthful noise: */ |
e19323c9 TO |
189 | 'CaseTypeWithSingleActivityType' => new SimpleXMLElement($this->fixtures['CaseTypeWithSingleActivityType']), |
190 | ) | |
191 | ); | |
192 | ||
193 | $this->assertEquals(0, $repo->getRelationshipReferenceCount('Single Role')); | |
194 | $this->assertEquals(2, $repo->getRelationshipReferenceCount('First Role')); | |
195 | $this->assertEquals(2, $repo->getRelationshipReferenceCount('Second Role')); | |
196 | $this->assertEquals(1, $repo->getRelationshipReferenceCount('Third Role')); | |
197 | } | |
96025800 | 198 | |
aba1cd8b | 199 | } |