/**
  * @param BaseEntityFilterService $entityFilter
  * @return $this
  */
 public function add(BaseEntityFilterService $entityFilter)
 {
     $this->activeFilters[] = $entityFilter;
     // Get the relationship definition for the filter
     $relatedRelationships = $entityFilter->getSqlSpec()->getRelationships();
     $relatedTable = $entityFilter->getTableName();
     if (array_key_exists($this->getBaseTable(), $relatedRelationships)) {
         $currentRelationships = $this->getRelationships();
         $currentRelationships[$relatedTable] = $relatedRelationships[$this->getBaseTable()];
         $this->setRelationships($currentRelationships);
     }
     return $this;
 }
 public function testInputFilterValidates()
 {
     $baddata = '1234';
     $gooddata = '12345';
     $tableName = 'sometable';
     $service = new AggregateEntityFilterService();
     $service->setBaseTable($tableName);
     $entityFilter = new BaseEntityFilterService();
     $entityFilter->setTableName($tableName);
     $input = new Input();
     $input->setName('name')->setAllowEmpty(FALSE)->getValidatorChain()->attach(new StringLength(5));
     $inputFilter = new InputFilter();
     $inputFilter->add($input);
     $entityFilter->setInputFilter($inputFilter);
     $entityFilter->setData(array('name' => $baddata));
     $service->add($entityFilter);
     $this->assertFalse($service->isValid(), 'Should have failed filter input validator');
     $service = new AggregateEntityFilterService();
     $service->setBaseTable($tableName);
     $entityFilter->setData(array('name' => $gooddata));
     $service->add($entityFilter);
     $this->assertTrue($service->isValid(), 'Should have passed filter input validator');
 }