test/test_stockpile_base.rb in stockpile-1.1 vs test/test_stockpile_base.rb in stockpile-2.0
- old
+ new
@@ -1,5 +1,6 @@
+# frozen_string_literal: true
require 'minitest_config'
describe Stockpile::Base do
def assert_clients expected_clients, connector
actual_clients = connector.instance_variable_get(:@clients).keys
@@ -18,226 +19,230 @@
let(:mem_narrow) {
stub_env({}) { Stockpile::Memory.new(narrow: true) }
}
describe 'constructor' do
- it "uses the default connection width by default" do
+ it 'uses the default connection width by default' do
stub ::Stockpile, :narrow?, lambda { false } do
- refute Stockpile::Base.new.narrow?,
- "should be narrow, but is not"
+ refute Stockpile::Base.new.narrow?, 'should be narrow, but is not'
end
stub ::Stockpile, :narrow?, lambda { true } do
- assert Stockpile::Base.new.narrow?,
- "is not narrow, but should be"
+ assert Stockpile::Base.new.narrow?, 'is not narrow, but should be'
end
end
- it "can be told which connection width to use explicitly" do
+ it 'can be told which connection width to use explicitly' do
stub ::Stockpile, :narrow?, lambda { false } do
assert mem_narrow.narrow?
end
stub ::Stockpile, :narrow?, lambda { true } do
refute mem_wide.narrow?
end
end
- it "passes settings through to the client" do
+ it 'passes settings through to the client' do
options = {
url: 'test://xyz/'
}
mem = ::Stockpile::Memory.new(options)
assert_equal 'test://xyz/', mem.connect.options[:url]
end
- it "has no clients by default" do
+ it 'has no clients by default' do
assert_clients [], ::Stockpile::Memory.new
end
+
+ it 'works with an OpenStruct provided as options' do
+ require 'ostruct'
+ mem = ::Stockpile::Memory.new(OpenStruct.new(url: 'test://xyz/'))
+ assert_equal 'test://xyz/', mem.connect.options[:url]
+ end
end
- describe "#connect" do
- it "raises NotImplementedError unless #client_connect is implemented" do
+ describe '#connect' do
+ it 'raises NotImplementedError unless #client_connect is implemented' do
assert_raises NotImplementedError do
::Stockpile::Base.new.connect
end
end
- it "creates a connection to the client" do
+ it 'creates a connection to the client' do
assert_nil mem.connection
refute_nil mem.connect
end
- it "creates a namespaced connection to the client" do
+ it 'creates a namespaced connection to the client' do
assert_nil mem_namespace.connection
refute_nil mem_namespace.connect
end
- describe "with a wide connection width" do
+ describe 'with a wide connection width' do
before do
- mem_wide.connect(:hoge, { quux: {} })
+ mem_wide.connect(:hoge, quux: {})
end
- it "connects multiple clients" do
+ it 'connects multiple clients' do
assert_clients [ :hoge, :quux ], mem_wide
end
- it "connects *different* clients" do
+ it 'connects *different* clients' do
refute_same mem_wide.connection, mem_wide.connection_for(:hoge)
refute_same mem_wide.connection, mem_wide.connection_for(:quux)
refute_same mem_wide.connection_for(:hoge), mem_wide.connection_for(:quux)
end
end
- describe "with a narrow connection width" do
+ describe 'with a narrow connection width' do
before do
mem_narrow.connect(:hoge, :quux)
end
- it "appears to connect multiple clients" do
+ it 'appears to connect multiple clients' do
assert_clients [ :hoge, :quux ], mem_narrow
end
- it "returns identical clients" do
+ it 'returns identical clients' do
assert_same mem_narrow.connection, mem_narrow.connection_for(:hoge)
assert_same mem_narrow.connection, mem_narrow.connection_for(:quux)
assert_same mem_narrow.connection_for(:hoge), mem_narrow.connection_for(:quux)
end
end
end
- describe "#connection_for" do
- it "raises NotImplementedError unless #client_connect is implemented" do
+ describe '#connection_for' do
+ it 'raises NotImplementedError unless #client_connect is implemented' do
assert_raises NotImplementedError do
instance_stub ::Stockpile::Base, :connection, -> { true } do
::Stockpile::Base.new.connection_for(:foo)
end
end
end
- describe "with a wide connection width" do
- it "connects the main client" do
+ describe 'with a wide connection width' do
+ it 'connects the main client' do
mem_wide.connection_for(:global)
assert mem_wide.connection
refute_same mem_wide.connection, mem_wide.connection_for(:global)
end
end
- describe "with a narrow connection width" do
- it "connects the main client" do
+ describe 'with a narrow connection width' do
+ it 'connects the main client' do
mem_narrow.connection_for(:global)
assert mem_narrow.connection
assert_same mem_narrow.connection, mem_narrow.connection_for(:global)
end
end
end
let(:connection) { Stockpile::Memory::Data }
- describe "#disconnect" do
- it "raises NotImplementedError unless #client_disconnect is implemented" do
+ describe '#disconnect' do
+ it 'raises NotImplementedError unless #client_disconnect is implemented' do
base = ::Stockpile::Base.new
assert_raises NotImplementedError do
instance_stub ::Stockpile::Base, :connect do
instance_stub ::Stockpile::Base, :connection, -> { true } do
base.disconnect
end
end
end
end
- describe "with a wide connection width" do
+ describe 'with a wide connection width' do
let(:global) { mem_wide.connection }
let(:hoge) { mem_wide.connection_for(:hoge) }
before do
mem_wide.connect(:hoge)
assert hoge.connected? && global.connected?
end
- it "disconnects the global client" do
+ it 'disconnects the global client' do
mem_wide.disconnect
assert hoge.connected? && !global.connected?
end
- it "disconnects the redis and global clients" do
+ it 'disconnects the redis and global clients' do
mem_wide.disconnect(:hoge)
refute hoge.connected? || global.connected?
end
end
- describe "with a narrow connection width" do
+ describe 'with a narrow connection width' do
let(:global) { mem_narrow.connection }
let(:hoge) { mem_narrow.connection_for(:hoge) }
before do
mem_narrow.connect(:hoge)
assert hoge.connected? && global.connected?
end
- it "#disconnect disconnects all clients" do
+ it '#disconnect disconnects all clients' do
mem_narrow.disconnect
refute hoge.connected? || global.connected?
end
- it "#disconnect(:hoge) disconnects all clients" do
+ it '#disconnect(:hoge) disconnects all clients' do
mem_narrow.disconnect(:hoge)
refute hoge.connected? || global.connected?
end
end
end
- describe "#reconnect" do
- it "raises NotImplementedError unless #client_reconnect is implemented" do
+ describe '#reconnect' do
+ it 'raises NotImplementedError unless #client_reconnect is implemented' do
base = ::Stockpile::Base.new
assert_raises NotImplementedError do
instance_stub ::Stockpile::Base, :connect do
instance_stub ::Stockpile::Base, :connection, -> { true } do
base.reconnect
end
end
end
end
- describe "with a wide connection width" do
+ describe 'with a wide connection width' do
let(:global) { mem_wide.connection }
let(:hoge) { mem_wide.connection_for(:hoge) }
before do
mem_wide.connect(:hoge)
assert hoge.connected? && global.connected?
mem_wide.disconnect(:all)
refute hoge.connected? || global.connected?
end
- it "reconnects the global client" do
+ it 'reconnects the global client' do
mem_wide.reconnect
assert !hoge.connected? && global.connected?
end
- it "reconnects the redis and global clients" do
+ it 'reconnects the redis and global clients' do
mem_wide.reconnect(:hoge)
assert hoge.connected? && global.connected?
end
end
- describe "with a narrow connection width" do
+ describe 'with a narrow connection width' do
let(:global) { mem_narrow.connection }
let(:hoge) { mem_narrow.connection_for(:hoge) }
def force_connection
mem_narrow.connect(:hoge)
assert hoge.connected? && global.connected?
mem_wide.disconnect(:all)
refute hoge.connected? || global.connected?
end
- it "#reconnect reconnects the all clients" do
+ it '#reconnect reconnects the all clients' do
mem_narrow.reconnect
assert hoge.connected? && global.connected?
end
- it "#reconnect(:hoge:) reconnects all clients" do
+ it '#reconnect(:hoge:) reconnects all clients' do
mem_narrow.reconnect(:hoge)
assert hoge.connected? && global.connected?
end
end
end