public function testGetSetState()
 {
     $group = new WikiMessageGroup('testgroup', 'wewgweg');
     $ok = ApiGroupReview::changeState($group, 'fi', 'newstate', FuzzyBot::getUser());
     $this->assertTrue($ok, 'state was changed');
     $state = ApiGroupReview::getState($group, 'fi');
     $this->assertEquals('newstate', $state, 'state was changed to expected value');
     $ok = ApiGroupReview::changeState($group, 'fi', 'newstate', FuzzyBot::getUser());
     $this->assertFalse($ok, 'state was not changed again');
 }
 public function run()
 {
     $title = $this->title;
     $handle = new MessageHandle($title);
     $code = $handle->getCode();
     if (!$handle->isValid() && !$code) {
         return true;
     }
     $groups = self::getGroupsWithTransitions($handle);
     foreach ($groups as $id => $transitions) {
         $group = MessageGroups::getGroup($id);
         $stats = MessageGroupStats::forItem($id, $code);
         $state = self::getNewState($stats, $transitions);
         if ($state) {
             ApiGroupReview::changeState($group, $code, $state, FuzzyBot::getUser());
         }
     }
     return true;
 }