public function testSetField() { $array = array(0 => 'zero', 'name' => 'Bob'); $object = (object) $array; // arrays are not modified $this->assertNotEquals($array, ArrayUtil::setField($array, 'name', 'Sam')); // Objects get modified $this->assertEquals($object, ArrayUtil::setField($object, 'name', 'Sam')); $result = ArrayUtil::setField($array, 'type', 'array'); $this->assertEquals('array', $result['type']); // Make sure the original array did not change. $this->assertNull(ArrayUtil::getField($array, 'type')); }