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