public function testGetFilterRulesByAttribute()
 {
     $model = new ReportModelTestItem();
     $rules = new ReportsTestReportRules();
     $adapter = new ModelRelationsAndAttributesToReportAdapter($model, $rules, Report::TYPE_ROWS_AND_COLUMNS);
     $exptected = ModelAttributeRulesToDefaultValueMappingRuleUtil::getApplicableRulesByModelClassNameAndAttributeName(get_class($model), 'string', 'value', false, true, false);
     $this->assertEquals($exptected, $adapter->getFilterRulesByAttribute('string', 'value'));
     $exptected = ModelAttributeRulesToDefaultValueMappingRuleUtil::getApplicableRulesByModelClassNameAndAttributeName(get_class($model), 'boolean', 'value', false, true, false);
     $this->assertEquals($exptected, $adapter->getFilterRulesByAttribute('boolean', 'value'));
     $exptected = array(array('value', 'type', 'type' => 'float'));
     $this->assertEquals($exptected, $adapter->getFilterRulesByAttribute('currencyValue', 'value'));
     $exptected = ModelAttributeRulesToDefaultValueMappingRuleUtil::getApplicableRulesByModelClassNameAndAttributeName(get_class($model), 'date', 'value', false, true, false);
     $this->assertEquals($exptected, $adapter->getFilterRulesByAttribute('date', 'value'));
     $exptected = ModelAttributeRulesToDefaultValueMappingRuleUtil::getApplicableRulesByModelClassNameAndAttributeName(get_class($model), 'dateTime', 'value', false, true, false);
     $this->assertEquals($exptected, $adapter->getFilterRulesByAttribute('dateTime', 'value'));
     $exptected = ModelAttributeRulesToDefaultValueMappingRuleUtil::getApplicableRulesByModelClassNameAndAttributeName(get_class($model), 'dropDown', 'value', false, true, false);
     $this->assertEquals($exptected, $adapter->getFilterRulesByAttribute('dropDown', 'value'));
     $exptected = ModelAttributeRulesToDefaultValueMappingRuleUtil::getApplicableRulesByModelClassNameAndAttributeName(get_class($model), 'float', 'value', false, true, false);
     $this->assertEquals($exptected, $adapter->getFilterRulesByAttribute('float', 'value'));
     $exptected = ModelAttributeRulesToDefaultValueMappingRuleUtil::getApplicableRulesByModelClassNameAndAttributeName(get_class($model), 'integer', 'value', false, true, false);
     $this->assertEquals($exptected, $adapter->getFilterRulesByAttribute('integer', 'value'));
     $exptected = ModelAttributeRulesToDefaultValueMappingRuleUtil::getApplicableRulesByModelClassNameAndAttributeName(get_class($model), 'multiDropDown', 'value', false, true, false);
     $this->assertEquals($exptected, $adapter->getFilterRulesByAttribute('multiDropDown', 'value'));
     $exptected = ModelAttributeRulesToDefaultValueMappingRuleUtil::getApplicableRulesByModelClassNameAndAttributeName(get_class($model), 'owner', 'value', false, true, false);
     $this->assertEquals($exptected, $adapter->getFilterRulesByAttribute('owner', 'value'));
     $exptected = ModelAttributeRulesToDefaultValueMappingRuleUtil::getApplicableRulesByModelClassNameAndAttributeName(get_class($model), 'phone', 'value', false, true, false);
     $this->assertEquals($exptected, $adapter->getFilterRulesByAttribute('phone', 'value'));
     $exptected = ModelAttributeRulesToDefaultValueMappingRuleUtil::getApplicableRulesByModelClassNameAndAttributeName(get_class($model), 'radioDropDown', 'value', false, true, false);
     $this->assertEquals($exptected, $adapter->getFilterRulesByAttribute('radioDropDown', 'value'));
     $exptected = ModelAttributeRulesToDefaultValueMappingRuleUtil::getApplicableRulesByModelClassNameAndAttributeName(get_class($model), 'tagCloud', 'value', false, true, false);
     $this->assertEquals($exptected, $adapter->getFilterRulesByAttribute('tagCloud', 'value'));
     $exptected = ModelAttributeRulesToDefaultValueMappingRuleUtil::getApplicableRulesByModelClassNameAndAttributeName(get_class($model), 'textArea', 'value', false, true, false);
     $this->assertEquals($exptected, $adapter->getFilterRulesByAttribute('textArea', 'value'));
     $exptected = ModelAttributeRulesToDefaultValueMappingRuleUtil::getApplicableRulesByModelClassNameAndAttributeName(get_class($model), 'url', 'value', false, true, false);
     $this->assertEquals($exptected, $adapter->getFilterRulesByAttribute('url', 'value'));
     $exptected = ModelAttributeRulesToDefaultValueMappingRuleUtil::getApplicableRulesByModelClassNameAndAttributeName(get_class($model), 'likeContactState', 'value', false, true, false);
     $this->assertEquals($exptected, $adapter->getFilterRulesByAttribute('likeContactState', 'value'));
     $model = new ReportModelTestItem12();
     $rules = new ReportsTestReportRules();
     $adapter = new ModelRelationsAndAttributesToReportAdapter($model, $rules, Report::TYPE_ROWS_AND_COLUMNS);
     $exptected = array(array('value', 'type', 'type' => 'string'));
     $this->assertEquals($exptected, $adapter->getFilterRulesByAttribute('emailAddress', 'value'));
 }