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 | 10 | |
| 11 | 11 | has_many :project_ownerships |
| 12 | 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 | 18 | end | ... | ... |
spec/models/project_ownership_spec.rb
| ... | ... | @@ -4,4 +4,19 @@ describe ProjectOwnership do |
| 4 | 4 | describe 'associations' do |
| 5 | 5 | it { should belong_to(:user) } |
| 6 | 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 | 22 | end | ... | ... |
spec/models/user_spec.rb
| ... | ... | @@ -12,4 +12,21 @@ describe User do |
| 12 | 12 | describe 'associations' do |
| 13 | 13 | it { should have_many(:project_ownerships) } |
| 14 | 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 | 32 | end | ... | ... |