/** * 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); }
/** * 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(); }