public function testSubscribe() { $subscriber = new Subscriber(); $subscriber->sid = microtime(); $this->assertEquals(true, $subscriber->save(), 'Can not save subscriber'); $channel = new Channel(); $channel->name = microtime(); $this->assertEquals(true, $channel->save()); $this->assertEmpty($channel->getSubscribers()); $this->assertEquals(true, $channel->subscribe($subscriber)); $subscribers = $channel->getSubscribers(); $this->assertNotEmpty($subscribers); $this->assertCount(1, $subscribers); $this->assertEquals(true, $subscriber->id == $subscribers[$subscriber->id]->id); $secondSubscriber = new Subscriber(); $secondSubscriber->sid = 'sdf0s9duf32' . time(); $this->assertEquals(true, $secondSubscriber->save()); $this->assertEquals(true, $channel->subscribe($secondSubscriber)); $subscribers = $channel->getSubscribers(); $this->assertCount(2, $subscribers); $this->assertEquals(true, $secondSubscriber->id == $subscribers[$secondSubscriber->id]->id); // load channel $channel = Channel::model()->findByPk($channel->id); $this->assertInstanceOf('YiiNodeSocket\\Models\\Channel', $channel); /** @var Channel $channel */ $subscribers = $channel->getSubscribers(); $this->assertNotEmpty($subscribers); $this->assertCount(2, $subscribers); return $channel; }
public function testSave() { // test save subscriber $subscriber = new Subscriber(); $subscriber->user_id = 1; $this->assertEquals(true, $subscriber->save(), 'Can not save subscriber'); $channel = new Channel(); $channel->name = 'test'; $this->assertEquals(true, $channel->save(), 'Can not save channel'); }
public function createSubscriber() { if (!$this->getSubscriber()) { $this->_subscriber = new Subscriber(); $this->_subscriber->user_id = $this->_getUserId(); $this->_subscriber->role = $this->getRole(); $event = new ArEvent($this); $event->name = 'onSubscriberSave'; $event->error = !$this->_subscriber->save(); $this->triggerModelEvent($event); } }
public function testDelete() { $subscriber = new Subscriber(); $subscriber->sid = 'sd8uo329psd'; $this->assertEquals(true, $subscriber->save()); $subscriber = Subscriber::model()->findByPk($subscriber->id); $this->assertInstanceOf('YiiNodeSocket\\Models\\Subscriber', $subscriber); $this->assertEquals(true, $subscriber->delete()); $this->assertNull(Subscriber::model()->findByPk($subscriber->id), 'Subscriber need to be null because it has been deleted'); }
/** * @param Subscriber $subscriber * @param bool $refresh * * @return AModel[] */ public function getChannels(Subscriber $subscriber, $refresh = false) { if ($subscriber->getIsNewRecord()) { return array(); } if (array_key_exists($subscriber->id, self::$_subscriberChannels) && !$refresh) { return self::$_subscriberChannels[$subscriber->id]; } $links = $this->findAllByAttributes(array('subscriber_id' => $subscriber->id)); $channelId = array(); foreach ($links as $link) { $channelId[] = $link->id; } $channels = Channel::model()->findAllByPk($channelId); foreach ($channels as $channel) { self::_addToCache($channel, $subscriber); } return $channels; }