/** * @depends testGetAllByModelClassName */ public function testGetFormula() { $metadata = new CalculatedDerivedAttributeMetadata(); $metadata->setScenario('nonAutoBuild'); $metadata->name = 'someName3'; $metadata->modelClassName = 'Whatever3'; $metadata->serializedMetadata = serialize(array('stuff', 1, 'attributeLabels' => array(), 'formula' => 'test')); $saved = $metadata->save(); $this->assertTrue($saved); $models = CalculatedDerivedAttributeMetadata::getAllByModelClassName('Whatever3'); $this->assertEquals(1, count($models)); $this->assertEquals('someName3', $models[0]->name); $this->assertEquals('test', $models[0]->getFormula()); }
/** * @param CalculatedNumberAttributeForm $attributeForm * @throws NotSupportedException */ public function setAttributeMetadataFromForm(AttributeForm $attributeForm) { assert('$attributeForm instanceof CalculatedNumberAttributeForm'); $modelClassName = get_class($this->model); $attributeName = $attributeForm->attributeName; $attributeLabels = $attributeForm->attributeLabels; $elementType = $attributeForm->getAttributeTypeName(); $formula = $attributeForm->formula; $id = $attributeForm->id; if ($id != null) { $metadata = CalculatedDerivedAttributeMetadata::getById($id); $metadata->setScenario('nonAutoBuild'); } else { $metadata = new CalculatedDerivedAttributeMetadata(); $metadata->setScenario('nonAutoBuild'); } $metadata->name = $attributeName; $metadata->modelClassName = $modelClassName; $metadata->serializedMetadata = serialize(array('formula' => $formula, 'attributeLabels' => $attributeLabels)); $saved = $metadata->save(); if (!$saved) { throw new NotSupportedException(); } }