public function testKanbanBoardMethods()
 {
     $searchModel = new AAASearchFormTestModel(new AAA());
     $kanbanBoard = new KanbanBoard(new AAA(), 'industry');
     $kanbanBoard->setGroupByAttributeVisibleValues(array('a', 'b'));
     $kanbanBoard->setSelectedTheme('someTheme');
     $searchModel->setKanbanBoard($kanbanBoard);
     $dataCollection = new SearchAttributesDataCollection($searchModel);
     $this->assertTrue($dataCollection->hasKanbanBoard());
     $this->assertEquals($kanbanBoard, $dataCollection->getKanbanBoard());
     $this->assertFalse($dataCollection->shouldClearStickyForKanbanBoard());
     $this->assertEquals(array('a', 'b'), $dataCollection->getKanbanBoardGroupByAttributeVisibleValuesFromModel());
     $this->assertEquals('someTheme', $dataCollection->getKanbanBoardSelectedThemeFromModel());
 }
 public function testSetGetClearStickySearchByKey()
 {
     StickySearchUtil::clearDataByKey('abc');
     $value = StickySearchUtil::getDataByKey('abc');
     $this->assertNull($value);
     $savedSearch = new SavedSearch();
     $savedSearch->name = 'something';
     $savedSearch->viewClassName = 'view';
     $savedSearch->serializedData = 'someString';
     $saved = $savedSearch->save();
     $this->assertTrue($saved);
     $this->assertTrue($savedSearch->id > 0);
     $searchModel = new AAASavedDynamicSearchFormTestModel(new AAA(false));
     $listAttributesSelector = new ListAttributesSelector('AListView', 'TestModule');
     $searchModel->setListAttributesSelector($listAttributesSelector);
     $searchModel->dynamicStructure = '1 and 5';
     $searchModel->dynamicClauses = array('a', 'b');
     $searchModel->anyMixedAttributes = 'abcdef';
     $searchModel->savedSearchId = $savedSearch->id;
     $searchModel->setAnyMixedAttributesScope('xyz');
     $kanbanBoard = new KanbanBoard(new AAA(), 'industry');
     $kanbanBoard->setIsActive();
     $kanbanBoard->setGroupByAttributeVisibleValues(array('c', 'd'));
     $kanbanBoard->setSelectedTheme('red');
     $searchModel->setKanbanBoard($kanbanBoard);
     $searchModel->getListAttributesSelector()->setSelected(array('aaaMember', 'aaaMember2'));
     $dataCollection = new SavedSearchAttributesDataCollection($searchModel);
     SavedSearchUtil::setDataByKeyAndDataCollection('abc', $dataCollection, array());
     $stickyData = StickySearchUtil::getDataByKey('abc');
     $compareData = array('dynamicClauses' => array('a', 'b'), 'dynamicStructure' => '1 and 5', 'anyMixedAttributes' => 'abcdef', 'anyMixedAttributesScope' => 'xyz', 'savedSearchId' => $savedSearch->id, SearchForm::SELECTED_LIST_ATTRIBUTES => array('aaaMember', 'aaaMember2'), 'groupByAttributeVisibleValues' => array('c', 'd'), 'selectedTheme' => 'red');
     $this->assertEquals($compareData, $stickyData);
     $searchModel = new AAASavedDynamicSearchFormTestModel(new AAA(false));
     $kanbanBoard = new KanbanBoard(new AAA(), 'industry');
     $searchModel->setKanbanBoard($kanbanBoard);
     $listAttributesSelector = new ListAttributesSelector('AListView', 'TestModule');
     $searchModel->setListAttributesSelector($listAttributesSelector);
     SavedSearchUtil::resolveSearchFormByStickyDataAndModel($stickyData, $searchModel);
     $this->assertEquals('something', $searchModel->savedSearchName);
     $this->assertEquals($savedSearch->id, $searchModel->savedSearchId);
     $this->assertEquals('abcdef', $searchModel->anyMixedAttributes);
     $this->assertEquals('xyz', $searchModel->getAnyMixedAttributesScope());
     $this->assertEquals('1 and 5', $searchModel->dynamicStructure);
     $this->assertEquals(array('a', 'b'), $searchModel->dynamicClauses);
     $this->assertEquals(array('aaaMember', 'aaaMember2'), $searchModel->getListAttributesSelector()->getSelected());
     $this->assertEquals(array('c', 'd'), $searchModel->getKanbanBoard()->getGroupByAttributeVisibleValues());
     $this->assertEquals('red', $searchModel->getKanbanBoard()->getSelectedTheme());
 }
 public function testResolveVisibleValuesForAdaptedMetadata()
 {
     $metadata = array('clauses' => array(), 'structure' => '');
     $kanbanBoard = new KanbanBoard(new AAA(), 'industry');
     $kanbanBoard->resolveVisibleValuesForAdaptedMetadata($metadata);
     $compareData = array();
     $compareData['structure'] = '(1 or 2 or 3 or 4)';
     $compareData['clauses'][1] = array('attributeName' => 'industry', 'relatedAttributeName' => 'value', 'operatorType' => 'equals', 'value' => 'Automotive');
     $compareData['clauses'][2] = array('attributeName' => 'industry', 'relatedAttributeName' => 'value', 'operatorType' => 'equals', 'value' => 'Adult Entertainment');
     $compareData['clauses'][3] = array('attributeName' => 'industry', 'relatedAttributeName' => 'value', 'operatorType' => 'equals', 'value' => 'Financial Services');
     $compareData['clauses'][4] = array('attributeName' => 'industry', 'relatedAttributeName' => 'value', 'operatorType' => 'equals', 'value' => 'Mercenaries & Armaments');
     $this->assertEquals($compareData, $metadata);
     //Now resolve with pre-existing metadata
     $metadata = array('clauses' => array(1 => 'firstClause'), 'structure' => '1');
     $kanbanBoard = new KanbanBoard(new AAA(), 'industry');
     $kanbanBoard->resolveVisibleValuesForAdaptedMetadata($metadata);
     $compareData['structure'] = '(1) and (2 or 3 or 4 or 5)';
     $compareData['clauses'][1] = 'firstClause';
     $compareData['clauses'][2] = array('attributeName' => 'industry', 'relatedAttributeName' => 'value', 'operatorType' => 'equals', 'value' => 'Automotive');
     $compareData['clauses'][3] = array('attributeName' => 'industry', 'relatedAttributeName' => 'value', 'operatorType' => 'equals', 'value' => 'Adult Entertainment');
     $compareData['clauses'][4] = array('attributeName' => 'industry', 'relatedAttributeName' => 'value', 'operatorType' => 'equals', 'value' => 'Financial Services');
     $compareData['clauses'][5] = array('attributeName' => 'industry', 'relatedAttributeName' => 'value', 'operatorType' => 'equals', 'value' => 'Mercenaries & Armaments');
     $this->assertEquals($compareData, $metadata);
 }
 public function resolveKanbanBoardOptionsForSearchModelFromSourceData()
 {
     return KanbanBoard::resolveKanbanBoardOptionsForSearchModelFromArray($this->model, get_class($this->model), $this->getSourceData());
 }