Move assert_raise into behavior classes

This commit is contained in:
Nicholas Stuart 2021-08-24 12:06:53 -07:00
parent 934966a127
commit aabc27fe15
No known key found for this signature in database
GPG Key ID: 701DDAA370AA2E99
2 changed files with 54 additions and 30 deletions

@ -4,90 +4,116 @@ module FailureRaisingBehavior
def test_fetch_read_failure_raises
@cache.write("foo", "bar")
emulating_unavailability do |cache|
cache.fetch("foo")
assert_raise Redis::BaseError do
emulating_unavailability do |cache|
cache.fetch("foo")
end
end
end
def test_fetch_with_block_read_failure_raises
@cache.write("foo", "bar")
emulating_unavailability do |cache|
cache.fetch("foo") { '1' }
assert_raise Redis::BaseError do
emulating_unavailability do |cache|
cache.fetch("foo") { "1" }
end
end
assert_equal "bar", @cache.read("foo")
end
def test_read_failure_raises
@cache.write("foo", "bar")
emulating_unavailability do |cache|
cache.read("foo")
assert_raise Redis::BaseError do
emulating_unavailability do |cache|
cache.read("foo")
end
end
end
def test_read_multi_failure_raises
@cache.write_multi("foo" => "bar", "baz" => "quux")
emulating_unavailability do |cache|
cache.read_multi("foo", "baz")
assert_raise Redis::BaseError do
emulating_unavailability do |cache|
cache.read_multi("foo", "baz")
end
end
end
def test_write_failure_raises
emulating_unavailability do |cache|
cache.write("foo", "bar")
assert_raise Redis::BaseError do
emulating_unavailability do |cache|
cache.write("foo", "bar")
end
end
end
def test_write_multi_failure_raises
emulating_unavailability do |cache|
cache.write_multi("foo" => "bar", "baz" => "quux")
assert_raise Redis::BaseError do
emulating_unavailability do |cache|
cache.write_multi("foo" => "bar", "baz" => "quux")
end
end
end
def test_fetch_multi_failure_raises
@cache.write_multi("foo" => "bar", "baz" => "quux")
emulating_unavailability do |cache|
cache.fetch_multi("foo", "baz") { |k| "unavailable" }
assert_raise Redis::BaseError do
emulating_unavailability do |cache|
cache.fetch_multi("foo", "baz") { |k| "unavailable" }
end
end
end
def test_delete_failure_raises
@cache.write("foo", "bar")
emulating_unavailability do |cache|
cache.delete("foo")
assert_raise Redis::BaseError do
emulating_unavailability do |cache|
cache.delete("foo")
end
end
end
def test_exist_failure_raises
@cache.write("foo", "bar")
emulating_unavailability do |cache|
cache.exist?("foo")
assert_raise Redis::BaseError do
emulating_unavailability do |cache|
cache.exist?("foo")
end
end
end
def test_increment_failure_raises
@cache.write("foo", 1, raw: true)
emulating_unavailability do |cache|
cache.increment("foo")
assert_raise Redis::BaseError do
emulating_unavailability do |cache|
cache.increment("foo")
end
end
end
def test_decrement_failure_raises
@cache.write("foo", 1, raw: true)
emulating_unavailability do |cache|
cache.decrement("foo")
assert_raise Redis::BaseError do
emulating_unavailability do |cache|
cache.decrement("foo")
end
end
end
def test_clear_failure_returns_nil
emulating_unavailability do |cache|
assert_nil cache.clear
assert_raise Redis::BaseError do
emulating_unavailability do |cache|
cache.clear
end
end
end
end

@ -291,9 +291,8 @@ def emulating_unavailability
old_client = Redis.send(:remove_const, :Client)
Redis.const_set(:Client, UnavailableRedisClient)
assert_raise Redis::BaseConnectionError do
yield ActiveSupport::Cache::RedisCacheStore.new(namespace: @namespace, error_handler: -> (method:, returning:, exception:) { raise exception })
end
yield ActiveSupport::Cache::RedisCacheStore.new(namespace: @namespace,
error_handler: -> (method:, returning:, exception:) { raise exception })
ensure
Redis.send(:remove_const, :Client)
Redis.const_set(:Client, old_client)
@ -308,9 +307,8 @@ def emulating_unavailability
old_client = Redis.send(:remove_const, :Client)
Redis.const_set(:Client, MaxClientsReachedRedisClient)
assert_raise Redis::CommandError do
yield ActiveSupport::Cache::RedisCacheStore.new(namespace: @namespace, error_handler: -> (method:, returning:, exception:) { raise exception })
end
yield ActiveSupport::Cache::RedisCacheStore.new(namespace: @namespace,
error_handler: -> (method:, returning:, exception:) { raise exception })
ensure
Redis.send(:remove_const, :Client)
Redis.const_set(:Client, old_client)