|
@@ -178,6 +178,12 @@ def test_should_modify_an_existing_record_if_there_is_a_matching_id |
|
|
assert_equal 'Davy Jones Gold Dagger', @pirate.ship.name
|
|
|
end
|
|
|
|
|
|
+ def test_should_raise_RecordNotFound_if_an_id_is_given_but_doesnt_return_a_record
|
|
|
+ assert_raise_with_message ActiveRecord::RecordNotFound, "Couldn't find Ship with ID=1234567890 for Pirate with ID=#{@pirate.id}" do
|
|
|
+ @pirate.ship_attributes = { :id => 1234567890 }
|
|
|
+ end
|
|
|
+ end
|
|
|
+
|
|
|
def test_should_take_a_hash_with_string_keys_and_update_the_associated_model
|
|
|
@pirate.reload.ship_attributes = { 'id' => @ship.id, 'name' => 'Davy Jones Gold Dagger' }
|
|
|
|
|
@@ -349,13 +355,10 @@ def test_should_modify_an_existing_record_if_there_is_a_matching_id |
|
|
assert_equal 'Arr', @ship.pirate.catchphrase
|
|
|
end
|
|
|
|
|
|
- def test_should_associate_with_record_if_parent_record_is_not_saved
|
|
|
- @ship.destroy
|
|
|
- @pirate = Pirate.create(:catchphrase => 'Arr')
|
|
|
- @ship = Ship.new(:name => 'Nights Dirty Lightning', :pirate_attributes => { :id => @pirate.id, :catchphrase => @pirate.catchphrase})
|
|
|
-
|
|
|
- assert_equal @ship.name, 'Nights Dirty Lightning'
|
|
|
- assert_equal @pirate, @ship.pirate
|
|
|
+ def test_should_raise_RecordNotFound_if_an_id_is_given_but_doesnt_return_a_record
|
|
|
+ assert_raise_with_message ActiveRecord::RecordNotFound, "Couldn't find Pirate with ID=1234567890 for Ship with ID=#{@ship.id}" do
|
|
|
+ @ship.pirate_attributes = { :id => 1234567890 }
|
|
|
+ end
|
|
|
end
|
|
|
|
|
|
def test_should_take_a_hash_with_string_keys_and_update_the_associated_model
|
|
@@ -486,11 +489,6 @@ def test_should_take_an_array_and_assign_the_attributes_to_the_associated_models |
|
|
assert_equal ['Grace OMalley', 'Privateers Greed'], [@child_1.reload.name, @child_2.reload.name]
|
|
|
end
|
|
|
|
|
|
- def test_should_assign_existing_children_if_parent_is_new
|
|
|
- @pirate = Pirate.new({:catchphrase => "Don' botharr talkin' like one, savvy?"}.merge(@alternate_params))
|
|
|
- assert_equal ['Grace OMalley', 'Privateers Greed'], [@pirate.send(@association_name)[0].name, @pirate.send(@association_name)[1].name]
|
|
|
- end
|
|
|
-
|
|
|
def test_should_also_work_with_a_HashWithIndifferentAccess
|
|
|
@pirate.send(association_setter, HashWithIndifferentAccess.new('foo' => HashWithIndifferentAccess.new(:id => @child_1.id, :name => 'Grace OMalley')))
|
|
|
@pirate.save
|
|
@@ -554,8 +552,8 @@ def test_should_take_a_hash_with_composite_id_keys_and_assign_the_attributes_to_ |
|
|
assert_equal ['Grace OMalley', 'Privateers Greed'], [@child_1.name, @child_2.name]
|
|
|
end
|
|
|
|
|
|
- def test_should_not_raise_RecordNotFound_if_an_id_is_given_but_doesnt_return_a_record
|
|
|
- assert_nothing_raised ActiveRecord::RecordNotFound do
|
|
|
+ def test_should_raise_RecordNotFound_if_an_id_is_given_but_doesnt_return_a_record
|
|
|
+ assert_raise_with_message ActiveRecord::RecordNotFound, "Couldn't find #{@child_1.class.name} with ID=1234567890 for Pirate with ID=#{@pirate.id}" do
|
|
|
@pirate.attributes = { association_getter => [{ :id => 1234567890 }] }
|
|
|
end
|
|
|
end
|
|
|
0 comments on commit
2d96bcc