/** * launch common object creation and assertion * * @param mixed $first * @param mixed $data * @param string $type */ protected function _dataPreparationCommon($first, $data, $type) { $object = new Object(); $dataPreparation = ['#^data_first$#' => function () { return self::IM_CHANGED; }]; $object->putPreparationCallback($dataPreparation); switch ($type) { case 'json': $object->appendJson($data); break; case 'std': $object->appendStdClass($data); break; case 'serialized_array': $object->appendSerialized($data); break; case 'xml': $object->appendXml($data); break; case 'simple_xml': $object->appendSimpleXml($data); break; } $this->assertEquals(self::IM_CHANGED, $object->getDataFirst()); $this->assertNotEquals($first, $object->getDataFirst()); }