diff --git a/app/models/service_user.rb b/app/models/service_user.rb index fc9b8455c..369a91382 100644 --- a/app/models/service_user.rb +++ b/app/models/service_user.rb @@ -44,7 +44,11 @@ class FakeServiceUser < HashWithIndifferentAccess ServiceUser.reflect_on_all_associations.each do |assoc| define_method assoc.name do - assoc.klass.find(self[assoc.primary_key_name]) + if associated_id = self[assoc.primary_key_name] + assoc.klass.find(associated_id) + else + nil + end end end end diff --git a/spec/models/service_user_spec.rb b/spec/models/service_user_spec.rb index 2a03343a6..b93e7f855 100644 --- a/spec/models/service_user_spec.rb +++ b/spec/models/service_user_spec.rb @@ -137,5 +137,10 @@ describe FakeServiceUser do Person.should_receive(:find).with(@data[5]).and_return person @fake.person.should == person end + + it 'does not error on an association with no id' do + @fake[:person_id] = nil + lambda{ @fake.person }.should_not raise_error + end end end