コード例 #1
0
ファイル: EavObjectTest.php プロジェクト: saiber/livecart
 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']);
     }
 }
コード例 #2
0
 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());
 }
コード例 #3
0
ファイル: EavFieldTest.php プロジェクト: saiber/livecart
 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);
 }
コード例 #4
0
 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;
 }
コード例 #5
0
 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();
 }