Exemplo n.º 1
0
 /**
  * {@inheritdoc}
  */
 public function next(ResultSetInterface $resultSet)
 {
     if (!$resultSet->hasNextResultSet()) {
         return;
     }
     return $this->get($resultSet->getRequestParameters() + $resultSet->getNextPaginationToken()->getParameters());
 }
Exemplo n.º 2
0
 /**
  * it_should_iterate_over_source_result_sets
  *
  * @param Lns\SocialFeed\Provider\ProviderInterface $provider
  * @param Lns\SocialFeed\Model\ResultSetInterface $resultSet1
  * @param \Iterator $resultSet1Iterator
  * @param \Iterator $resultSet2Iterator
  * @param Lns\SocialFeed\Model\ResultSetInterface $resultSet2
  * @param Lns\SocialFeed\Model\PostInterface $post1
  * @param Lns\SocialFeed\Model\PostInterface $post2
  * @param Lns\SocialFeed\Model\PostInterface $post3
  */
 function it_should_iterate_over_source_result_sets($provider, $resultSet1, $resultSet1Iterator, $resultSet2Iterator, $resultSet2, $post1, $post2, $post3)
 {
     // first set contains $post1 and has a next set ($resultSet2)
     $resultSet1->hasNextResultSet()->willReturn(true);
     $resultSet1Iterator->valid()->willReturn(true);
     $resultSet1Iterator->current()->willReturn($post1);
     $resultSet1Iterator->next()->will(function () use($resultSet1Iterator) {
         $resultSet1Iterator->valid()->willReturn(false);
         $resultSet1Iterator->current()->willReturn(null);
     });
     $resultSet1->getIterator()->willReturn($resultSet1Iterator);
     // second set contains $post2 and $post3
     $resultSet2Iterator->valid()->willReturn(true);
     $resultSet2Iterator->current()->willReturn($post2);
     $resultSet2Iterator->next()->will(function () use($resultSet2Iterator, $post3) {
         $resultSet2Iterator->valid()->willReturn(true);
         $resultSet2Iterator->current()->willReturn($post3);
         $resultSet2Iterator->next()->will(function () use($resultSet2Iterator) {
             $resultSet2Iterator->valid()->willReturn(false);
             $resultSet2Iterator->current()->willReturn(null);
         });
     });
     $resultSet2->hasNextResultSet()->willReturn(false);
     $resultSet2->getIterator()->willReturn($resultSet2Iterator);
     $provider->get(array('foo' => 'bar'))->willReturn($resultSet1);
     $provider->next($resultSet1)->willReturn($resultSet2);
     $provider->next($resultSet2)->willReturn(false);
     $this->source->getProvider()->willReturn($provider);
     $this->source->getOptions()->willReturn(array('foo' => 'bar'));
     $this->rewind();
     $this->current()->shouldReturn($post1);
     $this->valid()->shouldReturn(true);
     $this->next();
     $this->current()->shouldReturn($post2);
     $this->valid()->shouldReturn(true);
     $this->next();
     $this->current()->shouldReturn($post3);
     $this->valid()->shouldReturn(true);
     $this->next();
     $this->valid()->shouldReturn(false);
 }