if (count(array_diff($randomFriendIds, $currentIds)) > 0) { $isRandom = true; break; } } $t->is($isRandom, true, 'getFriends() returns random in limitation'); } else { $t->skip('getFriends() returns random in limitation (too few friends)'); } //------------------------------------------------------------ $t->diag('MemberRelationshipTable::friendConfirmList()'); $event = new sfEvent('subject', 'name', array('member' => Doctrine::getTable('Member')->find(1))); MemberRelationshipTable::friendConfirmList($event); $t->is(count($event->getReturnValue()), 1); //------------------------------------------------------------ $t->diag('MemberRelationshipTable::processFriendConfirm()'); $memberRelationship1 = new MemberRelationship(); $memberRelationship1->setMemberIdTo(1); $memberRelationship1->setMemberIdFrom(3); $memberRelationship1->setFriendPre(); $t->ok($memberRelationship1->isFriendPre()); $event = new sfEvent('subject', 'name', array('member' => Doctrine::getTable('Member')->find(1), 'id' => 3, 'is_accepted' => false)); MemberRelationshipTable::processFriendConfirm($event); $t->ok(!$memberRelationship1->isFriendPre()); $memberRelationship2 = $table->retrieveByFromAndTo(4, 1); $t->ok($memberRelationship2->isFriendPre()); $event = new sfEvent('subject', 'name', array('member' => Doctrine::getTable('Member')->find(1), 'id' => 4, 'is_accepted' => true)); MemberRelationshipTable::processFriendConfirm($event); $t->ok($memberRelationship2->isFriend()); $event = new sfEvent('subject', 'name', array('member' => Doctrine::getTable('Member')->find(3), 'id' => 1, 'is_accepted' => true)); $t->ok(!MemberRelationshipTable::processFriendConfirm($event));
public function executeFriendRequest(sfWebRequest $request) { $memberId = $this->getUser()->getMemberId(); if (isset($request['member_id'])) { $targetMemberId = $request['member_id']; } elseif (isset($request['id'])) { $targetMemberId = $request['id']; } else { $this->forward400('member_id parameter not specified.'); } if ($memberId === $targetMemberId) { $this->forward400('Friend request to myself is not allowed.'); } $relation = Doctrine::getTable('MemberRelationship')->retrieveByFromAndTo($memberId, $targetMemberId); if (!$relation) { $relation = new MemberRelationship(); $relation->setMemberIdFrom($memberId); $relation->setMemberIdTo($targetMemberId); } if (isset($request['unlink'])) { if (!$relation->isFriend()) { $this->forward400('This member is not your friend.'); } $relation->removeFriend(); } else { if ($relation->isAccessBlocked()) { $this->forward403('Friend request is blocked.'); } if ($relation->isFriend()) { $this->forward400('This member already belongs to your friend.'); } if ($relation->isFriendPreFrom()) { $this->forward400('Friend request is already sent.'); } $relation->setFriendPre(); } $relation->free(true); return $this->renderJSON(array('status' => 'success')); }
$t->ok(!$relation1->isFriendPre()); $t->ok(!$relation2->isFriendPre()); $t->ok($relation3->isFriendPre()); $t->ok($dummyRelation1->isFriendPre()); //------------------------------------------------------------ $t->diag('MemberRelationship::isSelf()'); $t->ok(!$dummyRelation1->isSelf()); $t->ok($dummyRelation2->isSelf()); //------------------------------------------------------------ $t->diag('MemberRelationship::isAccessBlocked()'); $t->ok(!$relation4->isAccessBlocked()); $t->ok($dummyRelation3->isAccessBlocked()); //------------------------------------------------------------ $t->diag('MemberRelationship::setFriendPre()'); $t->ok(!$newRelation1->isFriendPre()); $newRelation1->setFriendPre(); $t->ok($newRelation1->isFriendPre()); //------------------------------------------------------------ $t->diag('MemberRelationship::setFriend()'); $t->ok(!$newRelation1->isFriend()); $newRelation1->setFriend(); $t->ok($newRelation1->isFriend()); //------------------------------------------------------------ $t->diag('MemberRelationship::removeFriend()'); $t->ok($newRelation1->isFriend()); $newRelation1->removeFriend(); $t->ok(!$newRelation1->isFriend()); //------------------------------------------------------------ $t->diag('MemberRelationship::removeFriendPre()'); $newRelation1->setFriendPre(); $t->ok($newRelation1->isFriendPre());