public function testSetAndGetFilter()
 {
     $filter = new FilterForReportForm('ReportsTestModule', 'ReportModelTestItem', Report::TYPE_ROWS_AND_COLUMNS);
     $filter->attributeIndexOrDerivedType = 'string';
     $filter->operator = OperatorRules::TYPE_EQUALS;
     $filter->value = 'Zurmo';
     $this->assertEquals('string', $filter->attributeAndRelationData);
     $this->assertEquals('string', $filter->attributeIndexOrDerivedType);
     $this->assertEquals('string', $filter->getResolvedAttribute());
     $this->assertEquals('String', $filter->getDisplayLabel());
     $filter = new FilterForReportForm('ReportsTestModule', 'ReportModelTestItem', Report::TYPE_ROWS_AND_COLUMNS);
     $filter->attributeIndexOrDerivedType = 'hasOne___name';
     $filter->operator = OperatorRules::TYPE_EQUALS;
     $filter->value = 'Jason';
     $this->assertEquals(array('hasOne', 'name'), $filter->getAttributeAndRelationData());
     $this->assertEquals('hasOne___name', $filter->attributeIndexOrDerivedType);
     $this->assertEquals('ReportModelTestItem', $filter->getPenultimateModelClassName());
     $this->assertEquals('hasOne', $filter->getPenultimateRelation());
     $this->assertEquals('ReportModelTestItem2', $filter->getResolvedAttributeModelClassName());
     $this->assertEquals('ReportModelTestItem2 >> Name', $filter->getDisplayLabel());
     //2 levels deeps
     $filter = new FilterForReportForm('ReportsTestModule', 'ReportModelTestItem', Report::TYPE_ROWS_AND_COLUMNS);
     $filter->attributeIndexOrDerivedType = 'hasOne___hasMany3___name';
     $filter->operator = OperatorRules::TYPE_EQUALS;
     $filter->value = 'Jason';
     $this->assertEquals(array('hasOne', 'hasMany3', 'name'), $filter->getAttributeAndRelationData());
     $this->assertEquals('hasOne___hasMany3___name', $filter->attributeIndexOrDerivedType);
     $this->assertEquals('ReportModelTestItem2', $filter->getPenultimateModelClassName());
     $this->assertEquals('hasMany3', $filter->getPenultimateRelation());
     $this->assertEquals('ReportModelTestItem3', $filter->getResolvedAttributeModelClassName());
     $this->assertEquals('ReportModelTestItem2 >> ReportModelTestItem3s >> Name', $filter->getDisplayLabel());
 }
 /**
  * @return string
  */
 protected function getRealAttributeName()
 {
     return $this->modelRelationsAndAttributesToReportAdapter->resolveRealAttributeName($this->filter->getResolvedAttribute());
 }