public function testAppendRequiredFields() { //get the validator $requiredFields = new RequiredFields('Title', 'Content', 'Image', 'AnotherField'); //create another validator with other fields $otherRequiredFields = new RequiredFields(array('ExtraField1', 'ExtraField2')); //append the new fields $requiredFields->appendRequiredFields($otherRequiredFields); //check they were added correctly $this->assertEquals(array('Title', 'Content', 'Image', 'AnotherField', 'ExtraField1', 'ExtraField2'), $requiredFields->getRequired(), "Merging of required fields failed to behave as expected"); // create the standard validator so we can check duplicates are ignored $otherRequiredFields = new RequiredFields('Title', 'Content', 'Image', 'AnotherField'); //add the new validator $requiredFields->appendRequiredFields($otherRequiredFields); //check nothing was changed $this->assertEquals(array('Title', 'Content', 'Image', 'AnotherField', 'ExtraField1', 'ExtraField2'), $requiredFields->getRequired(), "Merging of required fields with duplicates failed to behave as expected"); //add some new fields and some old ones in a strange order $otherRequiredFields = new RequiredFields('ExtraField3', 'Title', 'ExtraField4', 'Image', 'Content'); //add the new validator $requiredFields->appendRequiredFields($otherRequiredFields); //check that only the new fields were added $this->assertEquals(array('Title', 'Content', 'Image', 'AnotherField', 'ExtraField1', 'ExtraField2', 'ExtraField3', 'ExtraField4'), $requiredFields->getRequired(), "Merging of required fields with some duplicates in a muddled order failed to behave as expected"); }
/** * Add {@link RequiredField} objects together * * @param RequiredFields $requiredFields * @return RequiredFields */ public function appendRequiredFields($requiredFields) { $this->required = $this->required + ArrayLib::valuekey($requiredFields->getRequired()); return $this; }