diff --git a/lib/ext/community_rating.rb b/lib/ext/community_rating.rb index 78e78ac..e1367d1 100644 --- a/lib/ext/community_rating.rb +++ b/lib/ext/community_rating.rb @@ -1,18 +1,19 @@ require_dependency "community_rating" CommunityRating.class_eval do - attr_accessible :institution_id belongs_to :institution + attr_accessible :institution, :institution_id + validate :verify_institution private - def verify_institution - if self.institution_id != nil - institution = Institution.find_by_id self.institution_id - self.errors.add :institution, _("not found") unless institution - end + def verify_institution + if self.institution != nil + institution = Institution.find_by_id self.institution.id + self.errors.add :institution, _("not found") unless institution end + end end diff --git a/test/unit/comment_test.rb b/test/unit/comment_test.rb deleted file mode 100644 index 8503960..0000000 --- a/test/unit/comment_test.rb +++ /dev/null @@ -1,37 +0,0 @@ -require File.dirname(__FILE__) + '/../../../../test/test_helper' -require File.dirname(__FILE__) + '/../helpers/plugin_test_helper' - -class CommentTest < ActiveSupport::TestCase - include PluginTestHelper - - should "validate institution if there an institution_id" do - private_institution = build_private_institution "huehue", "hue", "11.222.333/4444-55" - - assert_equal true, private_institution.save - - comment = Comment.new :institution_id => 123456, :body => "simple body" - comment.valid? - - assert_equal true, comment.errors[:institution].include?("not found") - - comment.institution = private_institution - comment.valid? - - assert_equal false, comment.errors[:institution].include?("not found") - end - - private - - def build_private_institution name, corporate_name, cnpj, country="AR" - community = Community.new :name => name - community.country = country - - institution = PrivateInstitution.new :name=> name - institution.corporate_name = corporate_name - institution.cnpj = cnpj - institution.community = community - - institution - end -end - diff --git a/test/unit/community_rating_test.rb b/test/unit/community_rating_test.rb new file mode 100644 index 0000000..b2b7f2b --- /dev/null +++ b/test/unit/community_rating_test.rb @@ -0,0 +1,38 @@ +require File.dirname(__FILE__) + '/../../../../test/test_helper' +require File.dirname(__FILE__) + '/../helpers/plugin_test_helper' + +class CommunityRatingTest < ActiveSupport::TestCase + include PluginTestHelper + + should "validate institution if there an institution_id" do + community = fast_create(Community) + private_institution = build_private_institution "huehue", "hue", "11.222.333/4444-55" + + community_rating = CommunityRating.new(:value => 3, :community => community, :institution => private_institution) + community_rating.valid? + + assert_equal true, community_rating.errors[:institution].include?("not found") + + private_institution.save + + community_rating.institution = private_institution + community_rating.valid? + + assert_equal false, community_rating.errors[:institution].include?("not found") + end + + private + + def build_private_institution name, corporate_name, cnpj, country="AR" + community = Community.new :name => name + community.country = country + + institution = PrivateInstitution.new :name=> name + institution.corporate_name = corporate_name + institution.cnpj = cnpj + institution.community = community + + institution + end +end + -- libgit2 0.21.2