class TestDefaultAutosaveAssociationOnAHasOneAssociation
Public Instance Methods
test_assignment_before_either_saved()
click to toggle source
# File activerecord/test/cases/autosave_association_test.rb, line 167 def test_assignment_before_either_saved firm = Firm.new("name" => "GlobalMegaCorp") firm.account = a = Account.new("credit_limit" => 1000) assert !firm.persisted? assert !a.persisted? assert_equal a, firm.account assert firm.save assert firm.persisted? assert a.persisted? assert_equal a, firm.account firm.association(:account).reload assert_equal a, firm.account end
test_assignment_before_parent_saved()
click to toggle source
# File activerecord/test/cases/autosave_association_test.rb, line 156 def test_assignment_before_parent_saved firm = Firm.new("name" => "GlobalMegaCorp") firm.account = a = Account.find(1) assert !firm.persisted? assert_equal a, firm.account assert firm.save assert_equal a, firm.account firm.association(:account).reload assert_equal a, firm.account end
test_build_before_child_saved()
click to toggle source
# File activerecord/test/cases/autosave_association_test.rb, line 134 def test_build_before_child_saved firm = Firm.find(1) account = firm.build_account("credit_limit" => 1000) assert_equal account, firm.account assert !account.persisted? assert firm.save assert_equal account, firm.account assert account.persisted? end
test_build_before_either_saved()
click to toggle source
# File activerecord/test/cases/autosave_association_test.rb, line 145 def test_build_before_either_saved firm = Firm.new("name" => "GlobalMegaCorp") firm.account = account = Account.new("credit_limit" => 1000) assert_equal account, firm.account assert !account.persisted? assert firm.save assert_equal account, firm.account assert account.persisted? end
test_callbacks_firing_order_on_create()
click to toggle source
# File activerecord/test/cases/autosave_association_test.rb, line 199 def test_callbacks_firing_order_on_create eye = Eye.create(iris_attributes: { color: "honey" }) assert_equal [true, false], eye.after_create_callbacks_stack end
test_callbacks_firing_order_on_save()
click to toggle source
# File activerecord/test/cases/autosave_association_test.rb, line 210 def test_callbacks_firing_order_on_save eye = Eye.create(iris_attributes: { color: "honey" }) assert_equal [false, false], eye.after_save_callbacks_stack eye.update(iris_attributes: { color: "blue" }) assert_equal [false, false, false, false], eye.after_save_callbacks_stack end
test_callbacks_firing_order_on_update()
click to toggle source
# File activerecord/test/cases/autosave_association_test.rb, line 204 def test_callbacks_firing_order_on_update eye = Eye.create(iris_attributes: { color: "honey" }) eye.update(iris_attributes: { color: "green" }) assert_equal [true, false], eye.after_update_callbacks_stack end
test_not_resaved_when_unchanged()
click to toggle source
# File activerecord/test/cases/autosave_association_test.rb, line 181 def test_not_resaved_when_unchanged firm = Firm.all.merge!(includes: :account).first firm.name += "-changed" assert_queries(1) { firm.save! } firm = Firm.first firm.account = Account.first assert_queries(Firm.partial_writes? ? 0 : 1) { firm.save! } firm = Firm.first.dup firm.account = Account.first assert_queries(2) { firm.save! } firm = Firm.first.dup firm.account = Account.first.dup assert_queries(2) { firm.save! } end
test_save_fails_for_invalid_has_one()
click to toggle source
# File activerecord/test/cases/autosave_association_test.rb, line 111 def test_save_fails_for_invalid_has_one firm = Firm.first assert firm.valid? firm.build_account assert !firm.account.valid? assert !firm.valid? assert !firm.save assert_equal ["is invalid"], firm.errors["account"] end
test_save_succeeds_for_invalid_has_one_with_validate_false()
click to toggle source
# File activerecord/test/cases/autosave_association_test.rb, line 123 def test_save_succeeds_for_invalid_has_one_with_validate_false firm = Firm.first assert firm.valid? firm.build_unvalidated_account assert !firm.unvalidated_account.valid? assert firm.valid? assert firm.save end
test_should_save_parent_but_not_invalid_child()
click to toggle source
# File activerecord/test/cases/autosave_association_test.rb, line 100 def test_should_save_parent_but_not_invalid_child firm = Firm.new(name: "GlobalMegaCorp") assert firm.valid? firm.build_account_using_primary_key assert !firm.build_account_using_primary_key.valid? assert firm.save assert !firm.account_using_primary_key.persisted? end