/**
  * Similar to the testGetSubredditsNotNeedingEpisodeGeneration() test above,
  * this tests whether we can grab the inevrse: all of the Subreddits that
  * *don't* have future Episodes beyond one interval of the creation
  * interval.
  */
 public function testGetSubredditsNeedingEpisodeGeneration()
 {
     // Create Test Subreddit
     $subreddit = new Subreddit();
     $subreddit->setName('test2');
     $subreddit->setDomain('test2');
     $subreddit->setCreateNewEpisodesCronFormatted('0 0 1 * *');
     $subreddit->setEpisodeScheduleCronFormatted('0 0 1 * *');
     $subreddit->setCreationInterval('0');
     $subreddit->save();
     // Test against all Subreddits
     $subreddits = SubredditTable::getInstance()->getSubredditsNeedingEpisodeGeneration();
     $this->assertTrue(!empty($subreddits));
     $this->assertTrue($subreddits[0] instanceof Subreddit);
     // Test against Test Subreddit
     $subreddits = SubredditTable::getInstance()->getSubredditsNeedingEpisodeGeneration($subreddit->getName());
     $this->assertTrue(!empty($subreddits));
     $this->assertTrue($subreddits[0] instanceof Subreddit);
     $this->assertTrue($subreddits[0] == $subreddit);
     $subreddit->delete();
 }
 /**
  * Since a User can only have one membership in a Subreddit, this tests that
  * the first returned sfGuardUserSubredditMembership is the exact same as
  * the only one made.  The limitation on sfGuardUserSubredditMemberships is
  * in place using Unique indexes in the database, so we depend upon that to
  * prevent multiple Subreddit Memberships.
  */
 public function testGetFirstByUserSubredditAndMemberships()
 {
     $user = new sfGuardUser();
     $user->setEmailAddress(rand(0, 1000));
     $user->setUsername(rand(0, 1000));
     $user->setIsValidated(1);
     $user->save();
     $subreddit = new Subreddit();
     $subreddit->setName(rand(0, 1000));
     $subreddit->setDomain(rand(0, 1000));
     $subreddit->save();
     $membership = MembershipTable::getInstance()->findOneByType('user');
     $second_membership = MembershipTable::getInstance()->findOneByType('admin');
     $user_subreddit_membership = new sfGuardUserSubredditMembership();
     $user_subreddit_membership->setSfGuardUserId($user->getIncremented());
     $user_subreddit_membership->setSubredditId($subreddit->getIncremented());
     $user_subreddit_membership->setMembership($membership);
     $user_subreddit_membership->save();
     $second_user_subreddit_membership = new sfGuardUserSubredditMembership();
     $second_user_subreddit_membership->setSfGuardUserId($user->getIncremented());
     $second_user_subreddit_membership->setSubredditId($subreddit->getIncremented());
     $second_user_subreddit_membership->setMembership($second_membership);
     $exception_thrown = false;
     try {
         $second_user_subreddit_membership->save();
     } catch (Exception $exception) {
         unset($exception);
         $exception_thrown = true;
     }
     $retrieved_object = sfGuardUserSubredditMembershipTable::getInstance()->getFirstByUserSubredditAndMemberships($user->getIncremented(), $subreddit->getIncremented(), array($membership->getType()));
     $this->assertEquals($retrieved_object->getIncremented(), $user_subreddit_membership->getIncremented());
     $user_subreddit_membership->delete();
     $subreddit->delete();
     $user->delete();
     $this->assertTrue($exception_thrown);
 }
Пример #3
0
 /**
  * Tests whether we can generate a collection of Episodes to be saved.
  * These Episodes are produced using the creation and episode schedules of
  * the Subreddit.
  */
 public function testCollectGeneratedEpisodes()
 {
     /* @todo: Test iteration lengths, not just creation of episodes. */
     $subreddit = new Subreddit();
     $subreddit->setName(rand(0, 1000));
     $subreddit->setDomain(rand(0, 1000));
     $subreddit->setEpisodeScheduleCronFormatted('0 0 * * *');
     $subreddit->setCreateNewEpisodesCronFormatted('0 0 1 * *');
     $subreddit->save();
     $episodes = $subreddit->collectGeneratedEpisodes();
     $this->assertTrue(!empty($episodes));
     $this->assertTrue($episodes[0] instanceof Episode);
     $subreddit->delete();
 }