0
@@ -29,10 +29,12 @@ class OptimisticLockingTest < ActiveRecord::TestCase
0
assert_equal 0, p1.lock_version
0
assert_equal 0, p2.lock_version
0
assert_equal 1, p1.lock_version
0
assert_equal 0, p2.lock_version
0
assert_raises(ActiveRecord::StaleObjectError) { p2.save! }
0
@@ -42,11 +44,14 @@ class OptimisticLockingTest < ActiveRecord::TestCase
0
assert_equal 0, p1.lock_version
0
assert_equal 0, p2.lock_version
0
assert_equal 1, p1.lock_version
0
assert_equal 0, p2.lock_version
0
assert_raises(ActiveRecord::StaleObjectError) { p2.save! }
0
+ p2.first_name = 'sue2'
0
assert_raises(ActiveRecord::StaleObjectError) { p2.save! }
0
@@ -54,15 +59,18 @@ class OptimisticLockingTest < ActiveRecord::TestCase
0
p1 = Person.new(:first_name => 'anika')
0
assert_equal 0, p1.lock_version
0
+ p1.first_name = 'anika2'
0
p2 = Person.find(p1.id)
0
assert_equal 0, p1.lock_version
0
assert_equal 0, p2.lock_version
0
+ p1.first_name = 'anika3'
0
assert_equal 1, p1.lock_version
0
assert_equal 0, p2.lock_version
0
assert_raises(ActiveRecord::StaleObjectError) { p2.save! }
0
@@ -81,10 +89,12 @@ class OptimisticLockingTest < ActiveRecord::TestCase
0
assert_equal 0, t1.version
0
assert_equal 0, t2.version
0
+ t1.tps_report_number = 700
0
assert_equal 1, t1.version
0
assert_equal 0, t2.version
0
+ t2.tps_report_number = 800
0
assert_raises(ActiveRecord::StaleObjectError) { t2.save! }
0
@@ -93,6 +103,7 @@ class OptimisticLockingTest < ActiveRecord::TestCase
0
assert_equal 0, p1.lock_version
0
assert_equal p1.lock_version, Person.new(p1.attributes).lock_version
0
+ p1.first_name = 'bianca2'
0
assert_equal 1, p1.lock_version
0
assert_equal p1.lock_version, Person.new(p1.attributes).lock_version
0
@@ -146,6 +157,15 @@ class OptimisticLockingTest < ActiveRecord::TestCase
0
+ # Useful for partial updates, don't only update the lock_version if there
0
+ # is nothing else being updated.
0
+ def test_update_without_attributes_does_not_only_update_lock_version
0
+ assert_nothing_raised do
0
+ p1 = Person.new(:first_name => 'anika')
0
+ p1.send(:update_with_lock, [])
0
def add_counter_column_to(model)