diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/versioned_test.rb | 25 | 
1 files changed, 25 insertions, 0 deletions
diff --git a/test/versioned_test.rb b/test/versioned_test.rb index c0c8e514d..9c4f2c91f 100644 --- a/test/versioned_test.rb +++ b/test/versioned_test.rb @@ -342,4 +342,29 @@ class VersionedTest < Test::Unit::TestCase      assert landmarks(:washington).changed?      assert !landmarks(:washington).altered?    end + +  def test_without_locking_temporarily_disables_optimistic_locking +    enabled1 = false +    block_called = false +     +    ActiveRecord::Base.lock_optimistically = true +    LockedPage.without_locking do +      enabled1 = ActiveRecord::Base.lock_optimistically +      block_called = true +    end +    enabled2 = ActiveRecord::Base.lock_optimistically +     +    assert block_called +    assert !enabled1 +    assert enabled2 +  end +   +  def test_without_locking_reverts_optimistic_locking_settings_if_block_raises_exception +    assert_raises(RuntimeError) do +      LockedPage.without_locking do +        raise RuntimeError, "oh noes" +      end +    end +    assert ActiveRecord::Base.lock_optimistically +  end  end
\ No newline at end of file  | 
