public function testSearchFormDynamicAttributesForRelatedManyManyDateTimeAttributes() { $super = User::getByUsername('super'); Yii::app()->user->userModel = $super; $searchAttributes = array('dateDateTimeADate__Date' => array('type' => MixedDateTypesSearchFormAttributeMappingRules::TYPE_AFTER, 'firstDate' => '1993-04-04'), 'dateDateTimeADateTime__DateTime' => array('type' => MixedDateTypesSearchFormAttributeMappingRules::TYPE_TODAY)); $searchForm = new ASearchFormTestModel(new MixedRelationsModel()); $this->assertTrue($searchForm->isAttributeOnForm('dateDateTimeADate__Date')); $metadataAdapter = new SearchDataProviderMetadataAdapter($searchForm, $super->id, $searchAttributes); $todayDateTime = new DateTime(null, new DateTimeZone(Yii::app()->timeZoneHelper->getForCurrentUser())); $today = Yii::app()->dateFormatter->format(DatabaseCompatibilityUtil::getDateFormat(), $todayDateTime->getTimeStamp()); $todayPlus7Days = MixedDateTypesSearchFormAttributeMappingRules::calculateNewDateByDaysFromNow(7); $metadata = $metadataAdapter->getAdaptedMetadata(); $compareClauses = array(1 => array('attributeName' => 'manyMany', 'relatedAttributeName' => 'aDate', 'operatorType' => 'greaterThanOrEqualTo', 'value' => '1993-04-04'), 2 => array('attributeName' => 'manyMany', 'relatedAttributeName' => 'aDateTime', 'operatorType' => 'greaterThanOrEqualTo', 'value' => DateTimeUtil::convertDateIntoTimeZoneAdjustedDateTimeBeginningOfDay($today)), 3 => array('attributeName' => 'manyMany', 'relatedAttributeName' => 'aDateTime', 'operatorType' => 'lessThanOrEqualTo', 'value' => DateTimeUtil::convertDateIntoTimeZoneAdjustedDateTimeEndOfDay($today))); $compareStructure = '(1) and (2 and 3)'; $this->assertEquals($compareClauses, $metadata['clauses']); $this->assertEquals($compareStructure, $metadata['structure']); }
public function testResolveSelectedListAttributesForSearchModelFromGetArray() { $searchModel = new ASearchFormTestModel(new A()); $listAttributesSelector = new ListAttributesSelector('AListView', 'TestModule'); $searchModel->setListAttributesSelector($listAttributesSelector); $getArrayName = 'someArray'; SearchUtil::resolveSelectedListAttributesForSearchModelFromArray($searchModel, $getArrayName, $_GET); $this->assertEquals(array('name'), $searchModel->getListAttributesSelector()->getSelected()); //Test passing a value in the GET $_GET['someArray'][SearchForm::SELECTED_LIST_ATTRIBUTES] = array(); SearchUtil::resolveSelectedListAttributesForSearchModelFromArray($searchModel, $getArrayName, $_GET); $this->assertEquals(array('name'), $searchModel->getListAttributesSelector()->getSelected()); $_GET['someArray'][SearchForm::SELECTED_LIST_ATTRIBUTES] = array('name', 'a'); SearchUtil::resolveSelectedListAttributesForSearchModelFromArray($searchModel, $getArrayName, $_GET); $this->assertEquals(array('name', 'a'), $searchModel->getListAttributesSelector()->getSelected()); }
public function testResolveMixedSearchAttributeMappedToRealAttributesMetadata() { $realAttributesMetadata = array('something' => 'somethingElse'); $searchModel = new ASearchFormTestModel(new A()); $searchModel->resolveMixedSearchAttributeMappedToRealAttributesMetadata($realAttributesMetadata); $compareData = array('anyMixedAttributes' => array(array('a'), array('name')), 'something' => 'somethingElse'); $this->assertEquals($compareData, $realAttributesMetadata); //Add scoping. $searchModel = new ASearchFormTestModel(new A()); $searchModel->setAnyMixedAttributesScope(array('name')); $searchModel->resolveMixedSearchAttributeMappedToRealAttributesMetadata($realAttributesMetadata); $compareData = array('anyMixedAttributes' => array(array('name')), 'something' => 'somethingElse'); $this->assertEquals($compareData, $realAttributesMetadata); }
/** * Test validating agains a MixedRelationsModel */ public function testValidateDynamicClauses() { $super = User::getByUsername('super'); Yii::app()->user->userModel = $super; $searchForm = new ASearchFormTestModel(new MixedRelationsModel()); $searchForm->dynamicClauses = array(array('structurePosition' => '1', 'attributeIndexOrDerivedType' => 'primaryA', 'primaryA' => array('name' => 'xtz'))); $searchForm->dynamicStructure = '1'; $searchForm->validateDynamicClauses('dynamicClauses', array()); $this->assertFalse($searchForm->hasErrors()); $searchForm->clearErrors(); }
public function attributeLabels() { return array_merge(parent::attributeLabels(), array('filteredBy' => Zurmo::t('Core', 'Filtered By'))); }