public function testLimit()
 {
     $obj = new ListCategoryMembersOptions();
     $this->assertEquals(null, $obj->getLimit());
     $this->assertEquals($obj, $obj->setLimit(100));
     $this->assertEquals(100, $obj->getLimit());
 }
 /**
  * @since 0.3
  *
  * @param string $name
  * @param ListCategoryMembersOptions $options
  * @returns Pages
  */
 public function getPageListFromCategoryName($name, ListCategoryMembersOptions $options = null)
 {
     if (is_null($options)) {
         $options = new ListCategoryMembersOptions();
     }
     $recursive = $options->getRecursive();
     if ($recursive) {
         //TODO implement recursive behaviour
         throw new \BadMethodCallException('Not yet implemented');
     }
     $continue = '';
     $limit = $options->getLimit();
     $pages = new Pages();
     while (true) {
         $params = array('list' => 'categorymembers', 'cmtitle' => $name);
         if (!empty($continue)) {
             $params['cmcontinue'] = $continue;
         }
         if ($limit === null) {
             $params['cmlimit'] = 5000;
         } else {
             $params['cmlimit'] = $limit;
         }
         $result = $this->api->getRequest(new SimpleRequest('query', $params));
         if (!array_key_exists('query', $result)) {
             return $pages;
         }
         $limit = $limit - count($result['query']['categorymembers']);
         foreach ($result['query']['categorymembers'] as $member) {
             $pages->addPage(new Page(new PageIdentifier(new Title($member['title'], $member['ns']), $member['pageid']), new Revisions()));
         }
         if ($limit !== null && $limit <= 0) {
             return $pages;
         }
         if (empty($result['query-continue']['categorymembers']['cmcontinue'])) {
             if ($recursive) {
                 //TODO implement recursive behaviour
             }
             return $pages;
         } else {
             $continue = $result['query-continue']['categorymembers']['cmcontinue'];
         }
     }
 }