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());
 }
Exemple #3
0
 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')));
 }