From c794d82e73402d0c1542592e10d3d54cb240bef2 Mon Sep 17 00:00:00 2001 From: Tim Otten Date: Thu, 21 Aug 2014 22:59:22 -0700 Subject: [PATCH] SequenceListenerTest - Fix PHP 5.3 syntax error The old syntax works in 5.4 but not 5.3. The new syntax works in both. --- .../Civi/CCase/SequenceListenerTest.php | 70 +++++++++++-------- 1 file changed, 41 insertions(+), 29 deletions(-) diff --git a/tests/phpunit/Civi/CCase/SequenceListenerTest.php b/tests/phpunit/Civi/CCase/SequenceListenerTest.php index bfb6df2a31..157759bf9e 100644 --- a/tests/phpunit/Civi/CCase/SequenceListenerTest.php +++ b/tests/phpunit/Civi/CCase/SequenceListenerTest.php @@ -23,69 +23,70 @@ class SequenceListenerTest extends \CiviCaseTestCase { $case = $this->callAPISuccess('case', 'create', $this->_params); $analyzer = new \Civi\CCase\Analyzer($case['id']); - $this->assertEquals($caseStatuses['Open'], $analyzer->getCase()['status_id']); - $this->assertApproxTime('2013-11-30 01:00:00', $analyzer->getSingleActivity('Medical evaluation')['activity_date_time']); - $this->assertEquals($actStatuses['Scheduled'], $analyzer->getSingleActivity('Medical evaluation')['status_id']); + $this->assertEquals($caseStatuses['Open'], self::ag($analyzer->getCase(), 'status_id')); + $this->assertApproxTime('2013-11-30 01:00:00', self::ag($analyzer->getSingleActivity('Medical evaluation'), 'activity_date_time')); + $this->assertEquals($actStatuses['Scheduled'], self::ag($analyzer->getSingleActivity('Medical evaluation'), 'status_id')); $this->assertFalse($analyzer->hasActivity('Mental health evaluation')); $this->assertFalse($analyzer->hasActivity('Secure temporary housing')); // Edit details of first activity -- but don't finish it yet! \CRM_Utils_Time::setTime('2013-11-30 01:30:00'); $this->callApiSuccess('Activity', 'create', array( - 'id' => $analyzer->getSingleActivity('Medical evaluation')['id'], + 'id' => self::ag($analyzer->getSingleActivity('Medical evaluation'), 'id'), 'subject' => 'This is the new subject', )); $analyzer = new \Civi\CCase\Analyzer($case['id']); - $this->assertEquals($caseStatuses['Open'], $analyzer->getCase()['status_id']); - $this->assertApproxTime('2013-11-30 01:00:00', $analyzer->getSingleActivity('Medical evaluation')['activity_date_time']); - $this->assertEquals($actStatuses['Scheduled'], $analyzer->getSingleActivity('Medical evaluation')['status_id']); + $this->assertEquals($caseStatuses['Open'], self::ag($analyzer->getCase(), 'status_id')); + $this->assertApproxTime('2013-11-30 01:00:00', self::ag($analyzer->getSingleActivity('Medical evaluation'), 'activity_date_time')); + $this->assertEquals($actStatuses['Scheduled'], self::ag($analyzer->getSingleActivity('Medical evaluation'), 'status_id')); $this->assertFalse($analyzer->hasActivity('Mental health evaluation')); $this->assertFalse($analyzer->hasActivity('Secure temporary housing')); // Complete first activity; schedule second \CRM_Utils_Time::setTime('2013-11-30 02:00:00'); $this->callApiSuccess('Activity', 'create', array( - 'id' => $analyzer->getSingleActivity('Medical evaluation')['id'], + 'id' => self::ag($analyzer->getSingleActivity('Medical evaluation'), 'id'), 'status_id' => $actStatuses['Completed'], )); $analyzer->flush(); - $this->assertEquals($caseStatuses['Open'], $analyzer->getCase()['status_id']); - $this->assertApproxTime('2013-11-30 01:00:00', $analyzer->getSingleActivity('Medical evaluation')['activity_date_time']); - $this->assertEquals($actStatuses['Completed'], $analyzer->getSingleActivity('Medical evaluation')['status_id']); - $this->assertApproxTime('2013-11-30 02:00:00', $analyzer->getSingleActivity('Mental health evaluation')['activity_date_time']); - $this->assertEquals($actStatuses['Scheduled'], $analyzer->getSingleActivity('Mental health evaluation')['status_id']); + $this->assertEquals($caseStatuses['Open'], self::ag($analyzer->getCase(), 'status_id')); + $this->assertApproxTime('2013-11-30 01:00:00', self::ag($analyzer->getSingleActivity('Medical evaluation'), 'activity_date_time')); + $this->assertEquals($actStatuses['Completed'], self::ag($analyzer->getSingleActivity('Medical evaluation'), 'status_id')); + $this->assertApproxTime('2013-11-30 02:00:00', self::ag($analyzer->getSingleActivity('Mental health evaluation'), 'activity_date_time')); + $this->assertEquals($actStatuses['Scheduled'], self::ag($analyzer->getSingleActivity('Mental health evaluation'), 'status_id')); $this->assertFalse($analyzer->hasActivity('Secure temporary housing')); // Complete second activity; schedule third \CRM_Utils_Time::setTime('2013-11-30 03:00:00'); $this->callApiSuccess('Activity', 'create', array( - 'id' => $analyzer->getSingleActivity('Mental health evaluation')['id'], + 'id' => self::ag($analyzer->getSingleActivity('Mental health evaluation'), 'id'), 'status_id' => $actStatuses['Completed'], )); $analyzer->flush(); - $this->assertEquals($caseStatuses['Open'], $analyzer->getCase()['status_id']); - $this->assertApproxTime('2013-11-30 01:00:00', $analyzer->getSingleActivity('Medical evaluation')['activity_date_time']); - $this->assertEquals($actStatuses['Completed'], $analyzer->getSingleActivity('Medical evaluation')['status_id']); - $this->assertApproxTime('2013-11-30 02:00:00', $analyzer->getSingleActivity('Mental health evaluation')['activity_date_time']); - $this->assertEquals($actStatuses['Completed'], $analyzer->getSingleActivity('Mental health evaluation')['status_id']); - $this->assertApproxTime('2013-11-30 03:00:00', $analyzer->getSingleActivity('Secure temporary housing')['activity_date_time']); - $this->assertEquals($actStatuses['Scheduled'], $analyzer->getSingleActivity('Secure temporary housing')['status_id']); + $this->assertEquals($caseStatuses['Open'], self::ag($analyzer->getCase(), 'status_id')); + $this->assertApproxTime('2013-11-30 01:00:00', self::ag($analyzer->getSingleActivity('Medical evaluation'), 'activity_date_time')); + $this->assertEquals($actStatuses['Completed'], self::ag($analyzer->getSingleActivity('Medical evaluation'), 'status_id')); + $this->assertApproxTime('2013-11-30 02:00:00', self::ag($analyzer->getSingleActivity('Mental health evaluation'), 'activity_date_time')); + $this->assertEquals($actStatuses['Completed'], self::ag($analyzer->getSingleActivity('Mental health evaluation'), 'status_id')); + $this->assertApproxTime('2013-11-30 03:00:00', self::ag($analyzer->getSingleActivity('Secure temporary housing'), 'activity_date_time')); + $this->assertEquals($actStatuses['Scheduled'], self::ag($analyzer->getSingleActivity('Secure temporary housing'), 'status_id')); // Complete third activity; close case \CRM_Utils_Time::setTime('2013-11-30 04:00:00'); $this->callApiSuccess('Activity', 'create', array( - 'id' => $analyzer->getSingleActivity('Secure temporary housing')['id'], + 'id' => self::ag($analyzer->getSingleActivity('Secure temporary housing'), 'id'), 'status_id' => $actStatuses['Completed'], )); $analyzer->flush(); - $this->assertApproxTime('2013-11-30 01:00:00', $analyzer->getSingleActivity('Medical evaluation')['activity_date_time']); - $this->assertEquals($actStatuses['Completed'], $analyzer->getSingleActivity('Medical evaluation')['status_id']); - $this->assertApproxTime('2013-11-30 02:00:00', $analyzer->getSingleActivity('Mental health evaluation')['activity_date_time']); - $this->assertEquals($actStatuses['Completed'], $analyzer->getSingleActivity('Mental health evaluation')['status_id']); - $this->assertApproxTime('2013-11-30 03:00:00', $analyzer->getSingleActivity('Secure temporary housing')['activity_date_time']); - $this->assertEquals($actStatuses['Completed'], $analyzer->getSingleActivity('Secure temporary housing')['status_id']); - $this->assertEquals($caseStatuses['Closed'], $analyzer->getCase()['status_id']); + $this->assertApproxTime('2013-11-30 01:00:00', self::ag($analyzer->getSingleActivity('Medical evaluation'), 'activity_date_time')); + $this->assertEquals($actStatuses['Completed'], self::ag($analyzer->getSingleActivity('Medical evaluation'), 'status_id')); + $this->assertApproxTime('2013-11-30 02:00:00', self::ag($analyzer->getSingleActivity('Mental health evaluation'), 'activity_date_time')); + $this->assertEquals($actStatuses['Completed'], self::ag($analyzer->getSingleActivity('Mental health evaluation'), 'status_id')); + $this->assertApproxTime('2013-11-30 03:00:00', self::ag($analyzer->getSingleActivity('Secure temporary housing'), 'activity_date_time')); + $this->assertEquals($actStatuses['Completed'], self::ag($analyzer->getSingleActivity('Secure temporary housing'), 'status_id')); + $this->assertEquals($caseStatuses['Closed'], self::ag($analyzer->getCase(), 'status_id')); + // */ } /** @@ -106,4 +107,15 @@ class SequenceListenerTest extends \CiviCaseTestCase { $expected, $actual, $tolerance )); } + + /** + * Get a value from an array. This is syntactic-sugar to work-around PHP 5.3's limited syntax. + * + * @param $array + * @param $key + * @return mixed + */ + static function ag($array, $key) { + return $array[$key]; + } } \ No newline at end of file -- 2.25.1