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;
 }