public function testGetters() { $subscriber = $this->backend->getSubscriber('foo'); $subscription = $subscriber->subscribe('foo'); $id = $subscription->getId(); $chan = $subscription->getChannel(); $this->assertSame($chan->getId(), $this->chan->getId()); $subscription = $subscriber->getSubscriptionFor('foo'); $this->assertSame($subscription->getId(), $id); $newChannel = $this->backend->createChannel('bar'); $newSubscription = $subscriber->subscribe($newChannel->getId()); $subscriptions = $subscriber->getSubscriptions(); $this->assertCount(2, $subscriptions); // FIXME: Test subscriptions identifiers? Order is not respected }
function testMultipleFetch() { $sub1 = $this->backend->subscribe($this->chan->getId()); $sub1->activate(); $sub2 = $this->backend->subscribe($this->chan->getId()); $msg1 = $this->chan->send(1); $sub2->activate(); $msg2 = $this->chan->send(2); $sub3 = $this->backend->subscribe($this->chan->getId()); $sub3->activate(); $msg3 = $this->chan->send(3); $messages = $sub1->fetch(); $this->assertCount(3, $messages, "Sub 1 message count is 3"); $messages = $sub2->fetch(); $this->assertCount(2, $messages, "Sub 2 message count is 3"); // We cannot assert that messages 1 and 2 does not exist anymore since // the delete behavior is not documented at the interface level, we // don't care about that anyway, at least ensure that non fully dequeued // messages are still here $messages = $sub2->fetch(array(Field::MSG_ID => $msg3->getId())); $messages = $sub3->fetch(); $this->assertCount(1, $messages, "Sub 3 message count is 1"); }
/** * Fetch thread messages for user * * @param string $userId * @param mixed[] $conditions * * @return CursorInterface|MessageInstanceInterface[] */ public function fetchMessagesFor($userId, array $conditions = []) { $conditions[Field::CHAN_ID] = $this->channel->getId(); $conditions[Field::SUBER_NAME] = $this->service->getUserSubscriberId($userId); return $this->channel->fetch($conditions); }