public function testEavQueue() { // set up Manufacturer records $field = EavField::getNewInstance('Manufacturer', EavField::DATATYPE_TEXT, EavField::TYPE_TEXT_SIMPLE); $field->save(); $data = array('first', 'second', 'third'); foreach ($data as $value) { $manufacturer = Manufacturer::getNewInstance($value); $manufacturer->getSpecification()->setAttributeValueByLang($field, 'en', $value . ' test'); $manufacturer->save(); } ActiveRecordModel::clearPool(); // fetch them from database $manufacturers = ActiveRecordModel::getRecordSetArray('Manufacturer', new ARSelectFilter()); foreach ($manufacturers as &$entry) { ActiveRecordModel::addToEavQueue('Manufacturer', $entry); } // duplicate $manufacturers = array_merge($manufacturers, $manufacturers); // load EAV data ActiveRecordModel::loadEav(); foreach ($manufacturers as $man) { $this->assertEqual($man['name'] . ' test', $man['attributes'][$field->getID()]['value_en']); } }
public function testClone() { $text = EavField::getNewInstance('User', EavField::DATATYPE_TEXT, EavField::TYPE_TEXT_SIMPLE); $text->save(); $singleSel = EavField::getNewInstance('User', EavField::DATATYPE_NUMBERS, EavField::TYPE_NUMBERS_SELECTOR); $singleSel->handle->set('single.sel'); $singleSel->setValueByLang('name', 'en', 'Select one value'); $singleSel->save(); $value1 = EavValue::getNewInstance($singleSel); $value1->setValueByLang('value', 'en', $firstValue = '20'); $value1->save(); $value2 = EavValue::getNewInstance($singleSel); $value2->setValueByLang('value', 'en', $secValue = '30'); $value2->save(); $user = User::getNewInstance('*****@*****.**'); $user->save(); $spec = $user->getSpecification(); $spec->setAttributeValueByLang($text, 'en', 'text'); $spec->setAttributeValue($singleSel, $value1); $user->save(); $cloned = clone $user; $cloned->email->set('*****@*****.**'); $cloned->save(); $this->assertNotSame($cloned->getSpecification(), $user->getSpecification()); $this->assertEquals($cloned->getSpecification()->getAttribute($text)->getValueByLang('value', 'en'), 'text'); ActiveRecordModel::clearPool(); $reloaded = ActiveRecordModel::getInstanceByID('User', $cloned->getID(), true); $this->assertEquals($reloaded->getSpecification()->getAttribute($text)->getValueByLang('value', 'en'), 'text'); $this->assertEquals($reloaded->getSpecification()->getAttribute($singleSel)->getValue()->get()->getID(), $value1->getID()); }
public function testCreatingField() { $field = EavField::getNewInstance('Manufacturer'); $field->save(); $otherField = EavField::getNewInstance('User'); $otherField->save(); $fields = EavField::getFieldsByClass('Manufacturer'); $this->assertEqual($fields->size(), 1); $this->assertEqual($fields->get(0), $field); }
public function process() { static $beenHere = null; if (!$beenHere) { EavObject::defineSchema(); $schema = EavField::getSchemaInstance('EavObject'); $schema->registerField(new ARForeignKeyField("eyeExamRequestID", "EyeExamRequest", "ID", null, ARInteger::instance()), false); $eafFieldInst = EavField::getNewInstance('EavField'); $eafFieldInst->registerClass('EyeExamRequest', 8); } $beenHere = true; }
public function testIndex() { $class = 'Category'; $this->request->set('id', EavField::getClassID($class)); $response = $this->controller->index(); $this->assertIsA($response, 'ActionResponse'); // field list should be empty $this->assertEqual(0, count($response->get('specFieldsWithGroups'))); $field = EavField::getNewInstance($class); $field->save(); // one new field expected $response = $this->controller->index(); $this->assertEqual(1, count($response->get('specFieldsWithGroups'))); // the field should not show up in different category $this->request->set('id', EavField::getClassID('User')); $response = $this->controller->index(); $this->assertEqual(0, count($response->get('specFieldsWithGroups'))); // test creating a group $group = EavFieldGroup::getNewInstance($class); $group->save(); $this->request->set('id', EavField::getClassID($class)); $response = $this->controller->index(); }