Merge pull request #15773 from civicrm/5.20
[civicrm-core.git] / tests / phpunit / CRM / Core / BAO / PrevNextCacheTest.php
index 2c532d33ea83a0993bb1609920dcd9c05bf2d6f3..033991b9cbb2b2c665d1cc33d16e67882fcfd235 100644 (file)
@@ -3,7 +3,7 @@
  +--------------------------------------------------------------------+
  | CiviCRM version 5                                                  |
  +--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2019                                |
+ | Copyright CiviCRM LLC (c) 2004-2020                                |
  +--------------------------------------------------------------------+
  | This file is a part of CiviCRM.                                    |
  |                                                                    |
@@ -35,31 +35,49 @@ class CRM_Core_BAO_PrevNextCacheTest extends CiviUnitTestCase {
     $dao = new CRM_Core_BAO_PrevNextCache();
     $dao->entity_id1 = 1;
     $dao->entity_id2 = 2;
-    $dao->data = serialize(array(
+    $dao->data = serialize([
       'srcID' => 1,
       'srcName' => 'Ms. Meliissa Mouse II',
       'dstID' => 2,
       'dstName' => 'Mr. Maurice Mouse II',
       'weight' => 20,
       'canMerge' => TRUE,
-    ));
+    ]);
     $dao->save();
     $dao = new CRM_Core_BAO_PrevNextCache();
     $dao->id = 1;
-    CRM_Core_BAO_PrevNextCache::flipPair(array(1), 0);
+    CRM_Core_BAO_PrevNextCache::flipPair([1], 0);
     $dao->find(TRUE);
     $this->assertEquals(1, $dao->entity_id1);
     $this->assertEquals(2, $dao->entity_id2);
-    $this->assertEquals(serialize(array(
+    $this->assertEquals(serialize([
       'srcName' => 'Mr. Maurice Mouse II',
       'dstID' => 1,
       'dstName' => 'Ms. Meliissa Mouse II',
       'weight' => 20,
       'canMerge' => TRUE,
       'srcID' => 2,
-    )), $dao->data);
+    ]), $dao->data);
 
-    $this->quickCleanup(array('civicrm_prevnext_cache'));
+    $this->quickCleanup(['civicrm_prevnext_cache']);
+  }
+
+  public function testSetItem() {
+    $cacheKeyString = 'TestCacheKeyString';
+    $data = '1234afgbghh';
+    $values = [];
+    $values[] = " ( 'civicrm_contact', 0, 0, '{$cacheKeyString}_stats', '$data' ) ";
+    $valueArray = CRM_Core_BAO_PrevNextCache::convertSetItemValues($values[0]);
+    // verify as SetItem would do that it converts the original values style into a sensible array format
+    $this->assertEquals(['civicrm_contact', 0, 0, 'TestCacheKeyString_stats', '1234afgbghh'], $valueArray);
+    CRM_Core_BAO_PrevNextCache::setItem($valueArray[0], $valueArray[1], $valueArray[2], $valueArray[3], $valueArray[4]);
+    $dao = new CRM_Core_BAO_PrevNextCache();
+    $dao->cacheKey = 'TestCacheKeyString_stats';
+    $dao->find(TRUE);
+    $this->assertEquals('1234afgbghh', $dao->data);
+    $this->assertEquals(0, $dao->entity_id1);
+    $this->assertEquals(0, $dao->entity_id2);
+    $this->assertEquals('civicrm_contact', $dao->entity_table);
   }
 
 }