4 * Class CRM_Case_XMLRepositoryTest
6 class CRM_Case_XMLRepositoryTest
extends CiviUnitTestCase
{
7 protected $fixtures = array();
9 protected function setUp() {
11 $this->fixtures
['CaseTypeWithSingleActivityType'] = '
13 <name>CaseTypeWithSingleActivityType</name>
16 <name>Single Activity Type</name>
17 <max_instances>1</max_instances>
22 $this->fixtures
['CaseTypeWithTwoActivityTypes'] = '
24 <name>CaseTypeWithTwoActivityTypes</name>
27 <name>First Activity Type</name>
28 <max_instances>1</max_instances>
31 <name>Second Activity Type</name>
36 $this->fixtures
['CaseTypeWithThreeActivityTypes'] = '
38 <name>CaseTypeWithThreeActivityTypes</name>
41 <name>First Activity Type</name>
42 <max_instances>1</max_instances>
45 <name>Second Activity Type</name>
48 <name>Third Activity Type</name>
53 $this->fixtures
['CaseTypeWithSingleRole'] = '
55 <name>CaseTypeWithSingleRole</name>
58 <name>Single Role</name>
64 $this->fixtures
['CaseTypeWithTwoRoles'] = '
66 <name>CaseTypeWithTwoRoles</name>
69 <name>First Role</name>
73 <name>Second Role</name>
78 $this->fixtures
['CaseTypeWithThreeRoles'] = '
80 <name>CaseTypeWithThreeRoles</name>
83 <name>First Role</name>
87 <name>Second Role</name>
90 <name>Third Role</name>
98 public function testGetAllDeclaredActivityTypes() {
99 $repo = new CRM_Case_XMLRepository(
100 array('CaseTypeWithTwoActivityTypes', 'CaseTypeWithThreeActivityTypes'),
102 'CaseTypeWithTwoActivityTypes' => new SimpleXMLElement($this->fixtures
['CaseTypeWithTwoActivityTypes']),
103 'CaseTypeWithThreeActivityTypes' => new SimpleXMLElement($this->fixtures
['CaseTypeWithThreeActivityTypes']),
104 /* healthful noise: */
105 'CaseTypeWithSingleRole' => new SimpleXMLElement($this->fixtures
['CaseTypeWithSingleRole']),
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);
115 public function testGetAllDeclaredRelationshipTypes() {
116 $repo = new CRM_Case_XMLRepository(
117 array('CaseTypeWithTwoRoles', 'CaseTypeWithThreeRoles', 'CaseTypeWithSingleActivityType'),
119 'CaseTypeWithTwoRoles' => new SimpleXMLElement($this->fixtures
['CaseTypeWithTwoRoles']),
120 'CaseTypeWithThreeRoles' => new SimpleXMLElement($this->fixtures
['CaseTypeWithThreeRoles']),
121 /* healthful noise: */
122 'CaseTypeWithSingleActivityType' => new SimpleXMLElement($this->fixtures
['CaseTypeWithSingleActivityType']),
125 // omitted: 'Single Role'
126 $expected = array('First Role', 'Second Role', 'Third Role');
127 $actual = $repo->getAllDeclaredRelationshipTypes();
128 $this->assertEquals($expected, $actual);
131 public function testGetActivityReferenceCount_1() {
132 $repo = new CRM_Case_XMLRepository(
133 array('CaseTypeWithSingleActivityType'),
135 'CaseTypeWithSingleActivityType' => new SimpleXMLElement($this->fixtures
['CaseTypeWithSingleActivityType']),
136 /* healthful noise: */
137 'CaseTypeWithSingleRole' => new SimpleXMLElement($this->fixtures
['CaseTypeWithSingleRole']),
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'));
147 public function testGetActivityReferenceCount_23() {
148 $repo = new CRM_Case_XMLRepository(
149 array('CaseTypeWithTwoActivityTypes', 'CaseTypeWithThreeActivityTypes'),
151 'CaseTypeWithTwoActivityTypes' => new SimpleXMLElement($this->fixtures
['CaseTypeWithTwoActivityTypes']),
152 'CaseTypeWithThreeActivityTypes' => new SimpleXMLElement($this->fixtures
['CaseTypeWithThreeActivityTypes']),
154 'CaseTypeWithSingleRole' => new SimpleXMLElement($this->fixtures
['CaseTypeWithSingleRole']),
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'));
164 public function testGetRoleReferenceCount_1() {
165 $repo = new CRM_Case_XMLRepository(
166 array('CaseTypeWithSingleRole', 'CaseTypeWithSingleActivityType'),
168 'CaseTypeWithSingleRole' => new SimpleXMLElement($this->fixtures
['CaseTypeWithSingleRole']),
169 /* healthful noise: */
170 'CaseTypeWithSingleActivityType' => new SimpleXMLElement($this->fixtures
['CaseTypeWithSingleActivityType']),
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'));
180 public function testGetRoleReferenceCount_23() {
181 $repo = new CRM_Case_XMLRepository(
182 array('CaseTypeWithTwoRoles', 'CaseTypeWithThreeRoles', 'CaseTypeWithSingleActivityType'),
184 'CaseTypeWithTwoRoles' => new SimpleXMLElement($this->fixtures
['CaseTypeWithTwoRoles']),
185 'CaseTypeWithThreeRoles' => new SimpleXMLElement($this->fixtures
['CaseTypeWithThreeRoles']),
186 /* healthful noise: */
187 'CaseTypeWithSingleActivityType' => new SimpleXMLElement($this->fixtures
['CaseTypeWithSingleActivityType']),
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'));