From 802fc44cfa10cf46bc02a7304a77013ac9add25e Mon Sep 17 00:00:00 2001 From: Daniela Soares Feitosa Date: Thu, 4 Jun 2009 15:31:59 -0300 Subject: [PATCH] ActionItem298: not adding a friend twice --- app/models/person.rb | 4 +++- test/unit/person_test.rb | 8 ++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/models/person.rb b/app/models/person.rb index 4a1b199..7ca25ad 100644 --- a/app/models/person.rb +++ b/app/models/person.rb @@ -30,7 +30,9 @@ class Person < Profile end def add_friend(friend, group = nil) - self.friendships.build(:friend => friend, :group => group).save! + unless self.is_a_friend?(friend) + self.friendships.build(:friend => friend, :group => group).save! + end end def already_request_friendship?(person) diff --git a/test/unit/person_test.rb b/test/unit/person_test.rb index 1591d45..af58f8c 100644 --- a/test/unit/person_test.rb +++ b/test/unit/person_test.rb @@ -555,4 +555,12 @@ class PersonTest < Test::Unit::TestCase assert_equal 'http://website.with.http', p.organization_website end + should 'not add a friend if already is a friend' do + p1 = create_user('testuser1').person + p2 = create_user('testuser2').person + assert p1.add_friend(p2) + assert Profile['testuser1'].is_a_friend?(p2) + assert !Profile['testuser1'].add_friend(p2) + end + end -- libgit2 0.21.2