Beispiel #1
0
 public function testDynamicDateAttributeOnForm()
 {
     $searchForm = new ASearchFormTestModel(new MixedRelationsModel());
     //Test get and set.
     $this->assertEquals(null, $searchForm->date__Date);
     $searchForm->date__Date = 'aTest';
     $this->assertEquals('aTest', $searchForm->date__Date);
     //Test getting attribute names collection
     $compareData = array('anyA', 'ABName', 'differentOperatorA', 'differentOperatorB', 'dateDateTimeADate__Date', 'dateDateTimeADateTime__DateTime', 'dynamicStructure', 'dynamicClauses', 'anyMixedAttributes', 'date__Date', 'date2__Date', 'dateTime__DateTime', 'dateTime2__DateTime');
     $this->assertEquals($compareData, $searchForm->attributeNames());
     //Check some other methods to make sure they work ok.
     $this->assertFalse($searchForm->isRelation('date__Date'));
     $this->assertTrue($searchForm->isAttribute('date__Date'));
     $this->assertFalse($searchForm->isAttributeRequired('date__Date'));
     //Test attributeRules and attributeLabels
     $attributeLabels = $searchForm->attributeLabels();
     $this->assertEquals('Date', $attributeLabels['date__Date']);
     $this->assertEquals('Date 2', $attributeLabels['date2__Date']);
     $compareData = array(array('date__Date', 'safe'), array('date2__Date', 'safe'), array('dateTime__DateTime', 'safe'), array('dateTime2__DateTime', 'safe'), array('dynamicStructure', 'safe'), array('dynamicStructure', 'validateDynamicStructure', 'on' => 'validateDynamic, validateSaveSearch'), array('dynamicClauses', 'safe'), array('dynamicClauses', 'validateDynamicClauses', 'on' => 'validateDynamic, validateSaveSearch'), array('anyA', 'safe'), array('ABName', 'safe'), array('differentOperatorA', 'safe'), array('differentOperatorB', 'boolean'), array('dateDateTimeADate__Date', 'safe'), array('dateDateTimeADateTime__DateTime', 'safe'));
     $this->assertEquals($compareData, $searchForm->rules());
     //Test additional methods.
     $mappedData = $searchForm->getAttributesMappedToRealAttributesMetadata();
     $this->assertEquals('resolveEntireMappingByRules', $mappedData['date__Date']);
     $mappingRulesType = $searchForm->getSearchFormAttributeMappingRulesTypeByAttribute('date__Date');
     $this->assertEquals('MixedDateTypes', $mappingRulesType);
     //Test that the correct elements are used for the dynamic date attribute.
     $elementType = ModelAttributeToMixedTypeUtil::getType($searchForm, 'date__Date');
     $this->assertEquals('MixedDateTypesForSearch', $elementType);
 }
 public function rules()
 {
     return array_merge(parent::rules(), array(array('filteredBy', 'string')));
 }