@@ -418,10 +418,13 class User < Principal | |||||
418 | def projects_by_role |
|
418 | def projects_by_role | |
419 | return @projects_by_role if @projects_by_role |
|
419 | return @projects_by_role if @projects_by_role | |
420 |
|
420 | |||
421 |
@projects_by_role = Hash.new |
|
421 | @projects_by_role = Hash.new([]) | |
422 | memberships.each do |membership| |
|
422 | memberships.each do |membership| | |
|
423 | if membership.project | |||
423 | membership.roles.each do |role| |
|
424 | membership.roles.each do |role| | |
424 |
@projects_by_role[role] |
|
425 | @projects_by_role[role] = [] unless @projects_by_role.key?(role) | |
|
426 | @projects_by_role[role] << membership.project | |||
|
427 | end | |||
425 | end |
|
428 | end | |
426 | end |
|
429 | end | |
427 | @projects_by_role.each do |role, projects| |
|
430 | @projects_by_role.each do |role, projects| |
@@ -744,6 +744,13 class UserTest < ActiveSupport::TestCase | |||||
744 | assert_equal [2], user.projects_by_role[Role.find(2)].collect(&:id).sort |
|
744 | assert_equal [2], user.projects_by_role[Role.find(2)].collect(&:id).sort | |
745 | end |
|
745 | end | |
746 |
|
746 | |||
|
747 | def test_accessing_projects_by_role_with_no_projects_should_return_an_empty_array | |||
|
748 | user = User.find(2) | |||
|
749 | assert_equal [], user.projects_by_role[Role.find(3)] | |||
|
750 | # should not update the hash | |||
|
751 | assert_nil user.projects_by_role.values.detect(&:blank?) | |||
|
752 | end | |||
|
753 | ||||
747 | def test_projects_by_role_for_user_with_no_role |
|
754 | def test_projects_by_role_for_user_with_no_role | |
748 | user = User.generate! |
|
755 | user = User.generate! | |
749 | assert_equal({}, user.projects_by_role) |
|
756 | assert_equal({}, user.projects_by_role) |
General Comments 0
You need to be logged in to leave comments.
Login now