/** * @depends testCustomField */ public function testSetAttributesWithPostForCustomField() { $values = array('Automotive', 'Adult Entertainment', 'Financial Services', 'Mercenaries & Armaments'); $industryFieldData = CustomFieldData::getByName('Industries'); $industryFieldData->defaultValue = $values[1]; $industryFieldData->serializedData = serialize($values); $this->assertTrue($industryFieldData->save()); $model = new TestCustomFieldsModel(); $this->assertEquals($values[1], $model->industry->value); $this->assertTrue($model->validate()); $_FAKEPOST = array('industry' => array('value' => $values[2])); $model->setAttributes($_FAKEPOST); $this->assertEquals($values[2], $model->industry->value); }
/** * @depends testMultipleValuesCustomField */ public function testSetAttributesWithPostForMultipleValuesCustomField() { $values = array('Automotive', 'Adult Entertainment', 'Financial Services', 'Mercenaries & Armaments'); $industryFieldData = CustomFieldData::getByName('MultipleIndustries'); $industryFieldData->defaultValue = $values[1]; $industryFieldData->serializedData = serialize($values); $this->assertTrue($industryFieldData->save()); $model = new TestCustomFieldsModel(); $this->assertEquals(1, $model->multipleIndustries->values->count()); $this->assertEquals($values[1], $model->multipleIndustries->values[0]->value); $this->assertTrue($model->validate()); //Test populating with a single value $_FAKEPOST = array('multipleIndustries' => array('values' => array($values[2]))); $model->setAttributes($_FAKEPOST); $this->assertEquals(1, $model->multipleIndustries->values->count()); $this->assertEquals($values[2], $model->multipleIndustries->values[0]->value); $this->assertEquals('Financial Services', strval($model->multipleIndustries)); //Now test populating more than one value $_FAKEPOST = array('multipleIndustries' => array('values' => array($values[1], $values[3]))); $model->setAttributes($_FAKEPOST); $this->assertEquals(2, $model->multipleIndustries->values->count()); $this->assertEquals($values[1], $model->multipleIndustries->values[0]->value); $this->assertEquals($values[3], $model->multipleIndustries->values[1]->value); $this->assertEquals('Adult Entertainment, Mercenaries & Armaments', strval($model->multipleIndustries)); //Test clearing out the values $_FAKEPOST = array('multipleIndustries' => array('values' => array())); $model->setAttributes($_FAKEPOST); $this->assertEquals(0, $model->multipleIndustries->values->count()); $this->assertEquals('(None)', strval($model->multipleIndustries)); }