1<?php 2use Codeception\Util\Stub; 3 4require(__DIR__ . '/../../helpers/TbArray.php'); 5 6class TbArrayTest extends TbTestCase 7{ 8 /** 9 * @var \CodeGuy 10 */ 11 protected $codeGuy; 12 13 public function testGetValue() 14 { 15 $array = array('key' => 'value'); 16 $this->assertEquals('value', TbArray::getValue('key', $array)); 17 $nullValueArray = array('key' => null); 18 $this->assertNull(TbArray::getValue('key', $nullValueArray)); 19 $this->assertNull(TbArray::getValue('key', $nullValueArray, 'not null'), 'Null value has to be found'); 20 } 21 22 public function testPopValue() 23 { 24 $array = array('key' => 'value'); 25 $this->assertEquals('value', TbArray::popValue('key', $array)); 26 $this->assertArrayNotHasKey('key', $array); 27 $nullValueArray = array('key' => null); 28 $this->assertNull(TbArray::popValue('key', $nullValueArray, 'not null'), 'Null value has to be found'); 29 $this->assertArrayNotHasKey('key', $nullValueArray); 30 } 31 32 public function testDefaultValue() 33 { 34 $array = array(); 35 TbArray::defaultValue('key', 'default', $array); 36 $this->assertEquals('default', TbArray::getValue('key', $array)); 37 TbArray::defaultValue('key', 'value', $array); 38 $this->assertEquals('default', TbArray::getValue('key', $array)); 39 } 40 41 public function testDefaultValues() 42 { 43 $array = array('my' => 'value'); 44 TbArray::defaultValues(array('these' => 'are', 'my' => 'defaults'), $array); 45 $this->assertEquals('are', TbArray::getValue('these', $array)); 46 $this->assertEquals('value', TbArray::getValue('my', $array)); 47 } 48 49 public function testRemoveValue() 50 { 51 $array = array('key' => 'value'); 52 TbArray::removeValue('key', $array); 53 $this->assertArrayNotHasKey('key', $array); 54 } 55 56 public function testRemoveValues() 57 { 58 $array = array('these' => 'are', 'my' => 'values'); 59 TbArray::removeValues(array('these', 'my'), $array); 60 $this->assertArrayNotHasKey('these', $array); 61 $this->assertArrayNotHasKey('my', $array); 62 } 63 64 public function testCopyValues() 65 { 66 $a = array('key' => 'value'); 67 $b = array(); 68 $array = TbArray::copyValues(array('key'), $a, $b); 69 $this->assertEquals($a, $array); 70 $a = array('key' => 'value'); 71 $b = array('key' => 'other'); 72 $array = TbArray::copyValues(array('key'), $a, $b, true); 73 $this->assertEquals($a, $array); 74 } 75 76 public function testMoveValues() 77 { 78 $a = array('key' => 'value'); 79 $b = array(); 80 $array = TbArray::moveValues(array('key'), $a, $b); 81 $this->assertArrayNotHasKey('key', $a); 82 $this->assertEquals('value', TbArray::getValue('key', $array)); 83 $a = array('key' => 'value'); 84 $b = array('key' => 'other'); 85 $array = TbArray::moveValues(array('key'), $a, $b, true); 86 $this->assertEquals('value', TbArray::getValue('key', $array)); 87 } 88 89 public function testMerge() 90 { 91 $a = array('this' => 'is', 'array' => 'a'); 92 $b = array('is' => 'this', 'b' => 'array'); 93 $array = TbArray::merge($a, $b); 94 $this->assertEquals('is', TbArray::getValue('this', $array)); 95 $this->assertEquals('a', TbArray::getValue('array', $array)); 96 $this->assertEquals('this', TbArray::getValue('is', $array)); 97 $this->assertEquals('array', TbArray::getValue('b', $array)); 98 } 99}