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); }
/** * @param DisplayAttributeForReportForm $displayAttribute * @param RedBeanModel $model * @return mixed $value */ protected function resolveRawValueByModel(DisplayAttributeForReportForm $displayAttribute, RedBeanModel $model) { $type = $displayAttribute->getDisplayElementType(); $attribute = $displayAttribute->getResolvedAttribute(); if ($type == 'CurrencyValue') { return $model->{$attribute}->value; } elseif ($type == 'User') { $realAttributeName = $displayAttribute->getResolvedAttributeRealAttributeName(); return $model->{$realAttributeName}->id; } elseif ($type == 'DropDown') { return $model->{$attribute}->value; } elseif (null != ($rawValueRelatedAttribute = $displayAttribute->getRawValueRelatedAttribute())) { return $model->{$attribute}->{$rawValueRelatedAttribute}; } else { return $this->resolveModelAttributeValueForPenultimateRelation($model, $attribute, $displayAttribute); } }