public function getMetadataFilteredByOption($option) { if ($option == null) { $option = ConversationsSearchDataProviderMetadataAdapter::LIST_TYPE_CREATED; } $conversation = new Conversation(false); $metadataAdapter = new ConversationsSearchDataProviderMetadataAdapter($conversation, Yii::app()->user->userModel->id, array(), $option); return $metadataAdapter->getAdaptedMetadata(); }
public function testSearchByType() { $super = User::getByUsername('super'); $steven = User::getByUsername('steven'); Yii::app()->user->userModel = $super; $conversationModel = new Conversation(false); $searchAttributes = array(); $conversation = new Conversation(); $conversation->owner = $steven; $conversation->subject = 'My test subject'; $conversation->description = 'My test description'; $this->assertTrue($conversation->save()); $conversationId = $conversation->id; //Super dont have created conversations $metadataAdapter = new ConversationsSearchDataProviderMetadataAdapter($conversationModel, $super->id, $searchAttributes, ConversationsSearchDataProviderMetadataAdapter::LIST_TYPE_CREATED); $searchAttributeData = $metadataAdapter->getAdaptedMetadata(); $dataProvider = new RedBeanModelDataProvider('Conversation', null, false, $searchAttributeData); $data = $dataProvider->getData(); $this->assertEquals(0, count($data)); //Super dont participate in any conversations $metadataAdapter = new ConversationsSearchDataProviderMetadataAdapter($conversationModel, $super->id, $searchAttributes, ConversationsSearchDataProviderMetadataAdapter::LIST_TYPE_PARTICIPANT); $searchAttributeData = $metadataAdapter->getAdaptedMetadata(); $dataProvider = new RedBeanModelDataProvider('Conversation', null, false, $searchAttributeData); $data = $dataProvider->getData(); $this->assertEquals(0, count($data)); //Super dont participate in any closed conversations $metadataAdapter = new ConversationsSearchDataProviderMetadataAdapter($conversationModel, $super->id, $searchAttributes, ConversationsSearchDataProviderMetadataAdapter::LIST_TYPE_CLOSED); $searchAttributeData = $metadataAdapter->getAdaptedMetadata(); $dataProvider = new RedBeanModelDataProvider('Conversation', null, false, $searchAttributeData); $data = $dataProvider->getData(); $this->assertEquals(0, count($data)); //Super participate in one conversation $conversation = Conversation::getById($conversationId); $conversationParticipant = new ConversationParticipant(); $conversationParticipant->person = $super; $conversation->conversationParticipants->add($conversationParticipant); $this->assertTrue($conversation->save()); $metadataAdapter = new ConversationsSearchDataProviderMetadataAdapter($conversationModel, $super->id, $searchAttributes, ConversationsSearchDataProviderMetadataAdapter::LIST_TYPE_PARTICIPANT); $searchAttributeData = $metadataAdapter->getAdaptedMetadata(); $dataProvider = new RedBeanModelDataProvider('Conversation', null, false, $searchAttributeData); $data = $dataProvider->getData(); $this->assertEquals(1, count($data)); //Super participate in a closed conversation $conversation = Conversation::getById($conversationId); $conversation->isClosed = true; $this->assertTrue($conversation->save()); $metadataAdapter = new ConversationsSearchDataProviderMetadataAdapter($conversationModel, $super->id, $searchAttributes, ConversationsSearchDataProviderMetadataAdapter::LIST_TYPE_CLOSED); $searchAttributeData = $metadataAdapter->getAdaptedMetadata(); $dataProvider = new RedBeanModelDataProvider('Conversation', null, false, $searchAttributeData); $data = $dataProvider->getData(); $this->assertEquals(1, count($data)); }