diff options
author | José Valim <jose.valim@plataformatec.com.br> | 2013-12-24 10:02:07 +0100 |
---|---|---|
committer | José Valim <jose.valim@plataformatec.com.br> | 2013-12-24 10:02:07 +0100 |
commit | d2ed433b0af948da78e971bf342c506b27f6072f (patch) | |
tree | 56c97a391d79ff47ff0b03782f84cd7b9ebf5e1a /activerecord/test | |
parent | d8336cab32d0d8e8c2877cac26111cbecb5ac872 (diff) | |
download | rails-d2ed433b0af948da78e971bf342c506b27f6072f.tar.gz rails-d2ed433b0af948da78e971bf342c506b27f6072f.tar.bz2 rails-d2ed433b0af948da78e971bf342c506b27f6072f.zip |
Only build a ConnectionSpecification if required
Diffstat (limited to 'activerecord/test')
-rw-r--r-- | activerecord/test/cases/connection_specification/resolver_test.rb | 54 |
1 files changed, 26 insertions, 28 deletions
diff --git a/activerecord/test/cases/connection_specification/resolver_test.rb b/activerecord/test/cases/connection_specification/resolver_test.rb index 8d3813b47f..ba8440a16b 100644 --- a/activerecord/test/cases/connection_specification/resolver_test.rb +++ b/activerecord/test/cases/connection_specification/resolver_test.rb @@ -5,13 +5,19 @@ module ActiveRecord class ConnectionSpecification class ResolverTest < ActiveRecord::TestCase def resolve(spec, config={}) - Resolver.new(config).resolve(spec).config + Resolver.new(config).resolve(spec) + end + + def spec(spec, config={}) + Resolver.new(config).spec(spec) end def test_url_invalid_adapter - assert_raises(LoadError) do - resolve 'ridiculous://foo?encoding=utf8' + error = assert_raises(LoadError) do + spec 'ridiculous://foo?encoding=utf8' end + + assert_match "Could not load 'active_record/connection_adapters/ridiculous_adapter'", error.message end # The abstract adapter is used simply to bypass the bit of code that @@ -20,60 +26,52 @@ module ActiveRecord def test_url_from_environment spec = resolve :production, 'production' => 'abstract://foo?encoding=utf8' assert_equal({ - adapter: "abstract", - host: "foo", - encoding: "utf8" }, spec) + "adapter" => "abstract", + "host" => "foo", + "encoding" => "utf8" }, spec) end def test_url_host_no_db spec = resolve 'abstract://foo?encoding=utf8' assert_equal({ - adapter: "abstract", - host: "foo", - encoding: "utf8" }, spec) + "adapter" => "abstract", + "host" => "foo", + "encoding" => "utf8" }, spec) end def test_url_host_db spec = resolve 'abstract://foo/bar?encoding=utf8' assert_equal({ - adapter: "abstract", - database: "bar", - host: "foo", - encoding: "utf8" }, spec) + "adapter" => "abstract", + "database" => "bar", + "host" => "foo", + "encoding" => "utf8" }, spec) end def test_url_port spec = resolve 'abstract://foo:123?encoding=utf8' assert_equal({ - adapter: "abstract", - port: 123, - host: "foo", - encoding: "utf8" }, spec) + "adapter" => "abstract", + "port" => 123, + "host" => "foo", + "encoding" => "utf8" }, spec) end def test_encoded_password password = 'am@z1ng_p@ssw0rd#!' encoded_password = URI.encode_www_form_component(password) spec = resolve "abstract://foo:#{encoded_password}@localhost/bar" - assert_equal password, spec[:password] - end - - def test_descriptive_error_message_when_adapter_is_missing - error = assert_raise(LoadError) do - resolve(adapter: 'non-existing') - end - - assert_match "Could not load 'active_record/connection_adapters/non-existing_adapter'", error.message + assert_equal password, spec["password"] end def test_url_host_db_for_sqlite3 spec = resolve 'sqlite3://foo:bar@dburl:9000/foo_test' - assert_equal('/foo_test', spec[:database]) + assert_equal('/foo_test', spec["database"]) end def test_url_host_memory_db_for_sqlite3 spec = resolve 'sqlite3://foo:bar@dburl:9000/:memory:' - assert_equal(':memory:', spec[:database]) + assert_equal(':memory:', spec["database"]) end end end |