3 require_once 'CiviTest/CiviUnitTestCase.php';
6 * Class CRM_Case_XMLRepositoryTest
8 class CRM_Case_XMLRepositoryTest
extends CiviUnitTestCase
{
9 protected $fixtures = array();
11 protected function setUp() {
13 $this->fixtures
['CaseTypeWithSingleActivityType'] = '
15 <name>CaseTypeWithSingleActivityType</name>
18 <name>Single Activity Type</name>
19 <max_instances>1</max_instances>
24 $this->fixtures
['CaseTypeWithTwoActivityTypes'] = '
26 <name>CaseTypeWithTwoActivityTypes</name>
29 <name>First Activity Type</name>
30 <max_instances>1</max_instances>
33 <name>Second Activity Type</name>
38 $this->fixtures
['CaseTypeWithThreeActivityTypes'] = '
40 <name>CaseTypeWithThreeActivityTypes</name>
43 <name>First Activity Type</name>
44 <max_instances>1</max_instances>
47 <name>Second Activity Type</name>
50 <name>Third Activity Type</name>
55 $this->fixtures
['CaseTypeWithSingleRole'] = '
57 <name>CaseTypeWithSingleRole</name>
60 <name>Single Role</name>
66 $this->fixtures
['CaseTypeWithTwoRoles'] = '
68 <name>CaseTypeWithTwoRoles</name>
71 <name>First Role</name>
75 <name>Second Role</name>
80 $this->fixtures
['CaseTypeWithThreeRoles'] = '
82 <name>CaseTypeWithThreeRoles</name>
85 <name>First Role</name>
89 <name>Second Role</name>
92 <name>Third Role</name>
100 function testGetAllDeclaredActivityTypes() {
101 $repo = new CRM_Case_XMLRepository(
102 array('CaseTypeWithTwoActivityTypes', 'CaseTypeWithThreeActivityTypes'),
104 'CaseTypeWithTwoActivityTypes' => new SimpleXMLElement($this->fixtures
['CaseTypeWithTwoActivityTypes']),
105 'CaseTypeWithThreeActivityTypes' => new SimpleXMLElement($this->fixtures
['CaseTypeWithThreeActivityTypes']),
106 /* healthful noise: */
107 'CaseTypeWithSingleRole' => new SimpleXMLElement($this->fixtures
['CaseTypeWithSingleRole']),
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);
117 function testGetAllDeclaredRelationshipTypes() {
118 $repo = new CRM_Case_XMLRepository(
119 array('CaseTypeWithTwoRoles', 'CaseTypeWithThreeRoles', 'CaseTypeWithSingleActivityType'),
121 'CaseTypeWithTwoRoles' => new SimpleXMLElement($this->fixtures
['CaseTypeWithTwoRoles']),
122 'CaseTypeWithThreeRoles' => new SimpleXMLElement($this->fixtures
['CaseTypeWithThreeRoles']),
123 /* healthful noise: */
124 'CaseTypeWithSingleActivityType' => new SimpleXMLElement($this->fixtures
['CaseTypeWithSingleActivityType']),
127 // omitted: 'Single Role'
128 $expected = array('First Role', 'Second Role', 'Third Role');
129 $actual = $repo->getAllDeclaredRelationshipTypes();
130 $this->assertEquals($expected, $actual);
133 function testGetActivityReferenceCount_1() {
134 $repo = new CRM_Case_XMLRepository(
135 array('CaseTypeWithSingleActivityType'),
137 'CaseTypeWithSingleActivityType' => new SimpleXMLElement($this->fixtures
['CaseTypeWithSingleActivityType']),
138 /* healthful noise: */
139 'CaseTypeWithSingleRole' => new SimpleXMLElement($this->fixtures
['CaseTypeWithSingleRole']),
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'));
149 function testGetActivityReferenceCount_23() {
150 $repo = new CRM_Case_XMLRepository(
151 array('CaseTypeWithTwoActivityTypes', 'CaseTypeWithThreeActivityTypes'),
153 'CaseTypeWithTwoActivityTypes' => new SimpleXMLElement($this->fixtures
['CaseTypeWithTwoActivityTypes']),
154 'CaseTypeWithThreeActivityTypes' => new SimpleXMLElement($this->fixtures
['CaseTypeWithThreeActivityTypes']),
156 'CaseTypeWithSingleRole' => new SimpleXMLElement($this->fixtures
['CaseTypeWithSingleRole']),
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'));
166 function testGetRoleReferenceCount_1() {
167 $repo = new CRM_Case_XMLRepository(
168 array('CaseTypeWithSingleRole', 'CaseTypeWithSingleActivityType'),
170 'CaseTypeWithSingleRole' => new SimpleXMLElement($this->fixtures
['CaseTypeWithSingleRole']),
171 /* healthful noise: */
172 'CaseTypeWithSingleActivityType' => new SimpleXMLElement($this->fixtures
['CaseTypeWithSingleActivityType']),
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'));
182 function testGetRoleReferenceCount_23() {
183 $repo = new CRM_Case_XMLRepository(
184 array('CaseTypeWithTwoRoles', 'CaseTypeWithThreeRoles', 'CaseTypeWithSingleActivityType'),
186 'CaseTypeWithTwoRoles' => new SimpleXMLElement($this->fixtures
['CaseTypeWithTwoRoles']),
187 'CaseTypeWithThreeRoles' => new SimpleXMLElement($this->fixtures
['CaseTypeWithThreeRoles']),
188 /* healthful noise: */
189 'CaseTypeWithSingleActivityType' => new SimpleXMLElement($this->fixtures
['CaseTypeWithSingleActivityType']),
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'));