aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/test/locking_test.rb56
1 files changed, 35 insertions, 21 deletions
diff --git a/activerecord/test/locking_test.rb b/activerecord/test/locking_test.rb
index 1923ff590d..35c557e19d 100644
--- a/activerecord/test/locking_test.rb
+++ b/activerecord/test/locking_test.rb
@@ -8,39 +8,53 @@ class OptimisticLockingTest < Test::Unit::TestCase
def test_lock_existing
p1 = Person.find(1)
p2 = Person.find(1)
+ assert_equal 0, p1.lock_version
+ assert_equal 0, p2.lock_version
- p1.first_name = "Michael"
- p1.save
+ p1.save!
+ assert_equal 1, p1.lock_version
+ assert_equal 0, p2.lock_version
- assert_raises(ActiveRecord::StaleObjectError) {
- p2.first_name = "should fail"
- p2.save
- }
+ assert_raises(ActiveRecord::StaleObjectError) { p2.save! }
end
def test_lock_new
- p1 = Person.create({ "first_name"=>"anika"})
+ p1 = Person.new(:first_name => 'anika')
+ assert_equal 0, p1.lock_version
+
+ p1.save!
p2 = Person.find(p1.id)
- assert_equal p1.id, p2.id
- p1.first_name = "Anika"
- p1.save
-
- assert_raises(ActiveRecord::StaleObjectError) {
- p2.first_name = "should fail"
- p2.save
- }
+ assert_equal 0, p1.lock_version
+ assert_equal 0, p2.lock_version
+
+ p1.save!
+ assert_equal 1, p1.lock_version
+ assert_equal 0, p2.lock_version
+
+ assert_raises(ActiveRecord::StaleObjectError) { p2.save! }
end
def test_lock_column_name_existing
t1 = LegacyThing.find(1)
t2 = LegacyThing.find(1)
- t1.tps_report_number = 400
- t1.save
+ assert_equal 0, t1.version
+ assert_equal 0, t2.version
+
+ t1.save!
+ assert_equal 1, t1.version
+ assert_equal 0, t2.version
+
+ assert_raises(ActiveRecord::StaleObjectError) { t2.save! }
+ end
+
+ def test_lock_column_is_mass_assignable
+ p1 = Person.create(:first_name => 'bianca')
+ assert_equal 0, p1.lock_version
+ assert_equal p1.lock_version, Person.new(p1.attributes).lock_version
- assert_raises(ActiveRecord::StaleObjectError) {
- t2.tps_report_number = 300
- t2.save
- }
+ p1.save!
+ assert_equal 1, p1.lock_version
+ assert_equal p1.lock_version, Person.new(p1.attributes).lock_version
end
end