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; }