Commit 6dca9da8b03d2f4871469a49503a6ee542901f8c
1 parent
f80c1659
Exists in
colab
and in
4 other branches
Methods to help on listing user projects
Showing
4 changed files
with
41 additions
and
0 deletions
Show diff stats
app/models/project_ownership.rb
app/models/user.rb
@@ -10,4 +10,9 @@ class User < ActiveRecord::Base | @@ -10,4 +10,9 @@ class User < ActiveRecord::Base | ||
10 | 10 | ||
11 | has_many :project_ownerships | 11 | has_many :project_ownerships |
12 | # Alert: when adding new parameters to this model, they should also be added to registrations_controller | 12 | # Alert: when adding new parameters to this model, they should also be added to registrations_controller |
13 | + | ||
14 | + def projects | ||
15 | + #raise project_ownerships.inspect | ||
16 | + project_ownerships.map { |project_ownership| project_ownership.project } | ||
17 | + end | ||
13 | end | 18 | end |
spec/models/project_ownership_spec.rb
@@ -4,4 +4,19 @@ describe ProjectOwnership do | @@ -4,4 +4,19 @@ describe ProjectOwnership do | ||
4 | describe 'associations' do | 4 | describe 'associations' do |
5 | it { should belong_to(:user) } | 5 | it { should belong_to(:user) } |
6 | end | 6 | end |
7 | + | ||
8 | + describe 'methods' do | ||
9 | + describe 'project' do | ||
10 | + subject {FactoryGirl.build(:project_ownership)} | ||
11 | + let(:project) {FactoryGirl.build(:project)} | ||
12 | + | ||
13 | + before :each do | ||
14 | + Project.expects(:find).with(subject.project_id).returns(project) | ||
15 | + end | ||
16 | + | ||
17 | + it 'should return the project' do | ||
18 | + subject.project.should eq(project) | ||
19 | + end | ||
20 | + end | ||
21 | + end | ||
7 | end | 22 | end |
spec/models/user_spec.rb
@@ -12,4 +12,21 @@ describe User do | @@ -12,4 +12,21 @@ describe User do | ||
12 | describe 'associations' do | 12 | describe 'associations' do |
13 | it { should have_many(:project_ownerships) } | 13 | it { should have_many(:project_ownerships) } |
14 | end | 14 | end |
15 | + | ||
16 | + describe 'methods' do | ||
17 | + describe 'projects' do | ||
18 | + subject { FactoryGirl.build(:user) } | ||
19 | + let(:project) {FactoryGirl.build(:project)} | ||
20 | + let(:project_ownership) {FactoryGirl.build(:project_ownership)} | ||
21 | + | ||
22 | + before :each do | ||
23 | + project_ownership.expects(:project).returns(project) | ||
24 | + subject.expects(:project_ownerships).returns([project_ownership]) | ||
25 | + end | ||
26 | + | ||
27 | + it 'should return a list of projects owned by the user' do | ||
28 | + subject.projects.should eq([project]) | ||
29 | + end | ||
30 | + end | ||
31 | + end | ||
15 | end | 32 | end |