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