public function testIsValidWithMissingValue()
 {
     $this->_instance->setKey('mykey');
     $this->_instance->setType('param');
     $this->_instance->setName('myname');
     $this->assertFalse($this->_instance->isValid());
 }
 /**
  * Add a customization
  *
  * Supports a Customization instance or a config array, in that case a new
  * Customization instance wil be created based on the options.
  *
  * @param Solarium_Plugin_CustomizeRequest_Customization|array $customization
  * @return Solarium_Plugin_CustomizeRequest Provides fluent interface
  */
 public function addCustomization($customization)
 {
     if (is_array($customization)) {
         $customization = new Solarium_Plugin_CustomizeRequest_Customization($customization);
     }
     $key = $customization->getKey();
     // check for non-empty key
     if (0 === strlen($key)) {
         throw new Solarium_Exception('A Customization must have a key value');
     }
     // check for a unique key
     if (array_key_exists($key, $this->_customizations)) {
         //double add calls for the same customization are ignored, others cause an exception
         if ($this->_customizations[$key] !== $customization) {
             throw new Solarium_Exception('A Customization must have a unique key value');
         }
     }
     $this->_customizations[$key] = $customization;
     return $this;
 }
 /**
  * Add a customization
  *
  * Supports a Customization instance or a config array, in that case a new
  * Customization instance wil be created based on the options.
  *
  * @param Solarium_Plugin_CustomizeRequest_Customization|array $customization
  * @return Solarium_Plugin_CustomizeRequest Provides fluent interface
  */
 public function addCustomization($customization)
 {
     if (is_array($customization)) {
         $customization = new Solarium_Plugin_CustomizeRequest_Customization($customization);
     }
     $key = $customization->getKey();
     if (0 === strlen($key)) {
         throw new Solarium_Exception('A Customization must have a key value');
     }
     if (array_key_exists($key, $this->_customizations)) {
         if ($this->_customizations[$key] === $customization) {
             //double add calls for the same customization are ignored
             //@todo add trigger_error with a notice?
         } else {
             throw new Solarium_Exception('A Customization must have a unique key value');
         }
     } else {
         $this->_customizations[$key] = $customization;
     }
     return $this;
 }
 public function testSetCustomizations()
 {
     $customization1 = new Solarium_Plugin_CustomizeRequest_Customization();
     $customization1->setKey('id1')->setName('test1');
     $customization2 = new Solarium_Plugin_CustomizeRequest_Customization();
     $customization2->setKey('id2')->setName('test2');
     $customizations1 = array('id1' => $customization1, 'id2' => $customization2);
     $this->_plugin->addCustomizations($customizations1);
     $customization3 = new Solarium_Plugin_CustomizeRequest_Customization();
     $customization3->setKey('id3')->setName('test3');
     $customization4 = new Solarium_Plugin_CustomizeRequest_Customization();
     $customization4->setKey('id4')->setName('test4');
     $customizations2 = array('id3' => $customization3, 'id4' => $customization4);
     $this->_plugin->setCustomizations($customizations2);
     $this->assertEquals($customizations2, $this->_plugin->getCustomizations());
 }