コード例 #1
0
 /**
  * @param array $data
  * @param Report $report
  */
 protected static function resolveDisplayAttributes($data, Report $report)
 {
     $report->removeAllDisplayAttributes();
     DisplayAttributeForReportForm::resetCount();
     $moduleClassName = $report->getModuleClassName();
     if (count($displayAttributesData = ArrayUtil::getArrayValue($data, ComponentForReportForm::TYPE_DISPLAY_ATTRIBUTES)) > 0) {
         foreach ($displayAttributesData as $key => $displayAttributeData) {
             $displayAttribute = new DisplayAttributeForReportForm($moduleClassName, $moduleClassName::getPrimaryModelName(), $report->getType(), $key);
             $displayAttribute->setAttributes($displayAttributeData);
             $report->addDisplayAttribute($displayAttribute);
         }
     } else {
         $report->removeAllDisplayAttributes();
     }
 }
コード例 #2
0
 public function testSetAndGetDisplayAttribute()
 {
     $displayAttribute = new DisplayAttributeForReportForm('ReportsTestModule', 'ReportModelTestItem', Report::TYPE_SUMMATION);
     $this->assertNull($displayAttribute->label);
     $displayAttribute->attributeIndexOrDerivedType = 'string';
     $this->assertEquals('String', $displayAttribute->label);
     $displayAttribute->label = 'someLabel';
     $this->assertEquals('string', $displayAttribute->attributeAndRelationData);
     $this->assertEquals('string', $displayAttribute->attributeIndexOrDerivedType);
     $this->assertEquals('string', $displayAttribute->getResolvedAttribute());
     $this->assertEquals('String', $displayAttribute->getDisplayLabel());
     $this->assertEquals('someLabel', $displayAttribute->label);
     $validated = $displayAttribute->validate();
     $this->assertTrue($validated);
     $displayAttribute = new DisplayAttributeForReportForm('ReportsTestModule', 'ReportModelTestItem', Report::TYPE_SUMMATION);
     $displayAttribute->label = null;
     $validated = $displayAttribute->validate();
     $this->assertFalse($validated);
     $errors = $displayAttribute->getErrors();
     $compareErrors = array('label' => array('Label cannot be blank.'));
     $this->assertEquals($compareErrors, $errors);
     $displayAttribute->label = '';
     $validated = $displayAttribute->validate();
     $this->assertFalse($validated);
     $errors = $displayAttribute->getErrors();
     $compareErrors = array('label' => array('Label cannot be blank.'));
     $this->assertEquals($compareErrors, $errors);
     $displayAttribute->label = 'test';
     $displayAttribute->setAttributes(array('label' => ''));
     $validated = $displayAttribute->validate();
     $this->assertFalse($validated);
     $errors = $displayAttribute->getErrors();
     $compareErrors = array('label' => array('Label cannot be blank.'));
     $this->assertEquals($compareErrors, $errors);
 }