aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@plataformatec.com.br>2013-12-24 10:02:07 +0100
committerJosé Valim <jose.valim@plataformatec.com.br>2013-12-24 10:02:07 +0100
commitd2ed433b0af948da78e971bf342c506b27f6072f (patch)
tree56c97a391d79ff47ff0b03782f84cd7b9ebf5e1a /activerecord/test/cases
parentd8336cab32d0d8e8c2877cac26111cbecb5ac872 (diff)
downloadrails-d2ed433b0af948da78e971bf342c506b27f6072f.tar.gz
rails-d2ed433b0af948da78e971bf342c506b27f6072f.tar.bz2
rails-d2ed433b0af948da78e971bf342c506b27f6072f.zip
Only build a ConnectionSpecification if required
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r--activerecord/test/cases/connection_specification/resolver_test.rb54
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