public function testGetSubscriptionsForContainerWithProperInput()
 {
     $container_guid = 132;
     $methods = array('apples', 'bananas');
     $queryResult = array($this->createObjectFromArray(array('guid' => '22', 'methods' => 'notifyapples')), $this->createObjectFromArray(array('guid' => '567', 'methods' => 'notifybananas,notifyapples')));
     $subscriptions = array(22 => array('apples'), 567 => array('bananas', 'apples'));
     $this->db->expects($this->once())->method('getData')->will($this->returnValue($queryResult));
     $service = new \Elgg\Notifications\SubscriptionsService($this->db);
     $service->methods = $methods;
     $this->assertEquals($subscriptions, $service->getSubscriptionsForContainer($container_guid));
 }
Esempio n. 2
0
/**
 * Get the subscriptions for the content created inside this container.
 *
 * The return array is of the form:
 *
 * array(
 *     <user guid> => array('email', 'sms', 'ajax'),
 * );
 *
 * @param int $container_guid GUID of the entity acting as a container
 * @return array User GUIDs (keys) and their subscription types (values).
 * @since 1.9
 * @todo deprecate once new subscriptions system has been added
 */
function elgg_get_subscriptions_for_container($container_guid)
{
    $methods = _elgg_services()->notifications->getMethods();
    $db = _elgg_services()->db;
    $subs = new \Elgg\Notifications\SubscriptionsService($db, $methods);
    return $subs->getSubscriptionsForContainer($container_guid);
}