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