function Test_of_composeCombinedAttribute() { $User = new AkTestUser(); $User->addCombinedAttributeConfiguration('name', "%s %s", 'first_name', 'last_name'); $User->addCombinedAttributeConfiguration('reversed_name', "%s, %s", 'last_name', 'first_name'); $User->addCombinedAttributeConfiguration('reversed_name', array("%s, %s", "%[^,], %s"), 'last_name', 'first_name'); $User->addCombinedAttributeConfiguration('email_link', array("callBackFunctionCompose", "callBackFunctionDecompose"), 'email', 'name'); $User->addCombinedAttributeConfiguration('email_header_from', "<%s>%s", 'email', 'name'); $User->first_name = 'Bermi'; $User->last_name = 'Ferrer'; $User->composeCombinedAttribute('name'); $User->composeCombinedAttribute('reversed_name'); $this->assertEqual($User->name, 'Bermi Ferrer'); $this->assertEqual($User->reversed_name, 'Ferrer, Bermi'); $User->setAttribute('last_name', 'Ferrer'); $User->first_name = 'Bermi'; $this->assertEqual($User->getAttribute('name'), 'Bermi Ferrer'); $User->first_name = 'Hilario'; $User->set('last_name', 'Hervas'); $this->assertEqual($User->get('reversed_name'), 'Hervas, Hilario'); $User = new AkTestUser(); $User->addCombinedAttributeConfiguration(array('name', "%s %s", 'first_name', 'last_name')); // This is how combined attributes are added when they are set trhough a model variable $User->first_name = 'Bermi'; $User->last_name = 'Ferrer'; $User->composeCombinedAttribute('name'); $this->assertEqual($User->name, 'Bermi Ferrer'); }