/** * 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 the * SubredditTabel::getSubredditsNotNeedingEpisodeGeneration() function is * returning Subreddit correctly. It's supposed to grab all Subreddits that * *have* Episodes with a release date after one interval of the creation * interval. */ public function testGetSubredditsNotNeedingEpisodeGeneration() { // Create Test Subreddit $subreddit = new Subreddit(); $subreddit->setName('test1'); $subreddit->setDomain('test1'); $subreddit->setCreateNewEpisodesCronFormatted('0 0 1 * *'); $subreddit->setEpisodeScheduleCronFormatted('0 0 1 * *'); $subreddit->setCreationInterval('0'); $subreddit->save(); // We know that a new subreddit with no episodes will NOT be in this list $subreddit_not_found = true; $subreddits = SubredditTable::getInstance()->getSubredditsNotNeedingEpisodeGeneration(); $this->assertTrue(is_array($subreddits)); foreach ($subreddits as $found) { if ($subreddit->getIncremented() == $found) { $subreddit_not_found = false; } } $subreddit->delete(); $this->assertTrue($subreddit_not_found); }