diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2014-01-30 12:14:38 -0800 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2014-01-30 12:14:38 -0800 |
commit | 27aedeeb0bb9350d653f40d7023dd095be5eb24e (patch) | |
tree | 87c636c76f9fbe532d83eede20c55546729b34e4 /activerecord/test/cases | |
parent | 32bdbdd16f68a5011e80b33a5385aee00d701e25 (diff) | |
parent | b7fcad8ff04411a8d00f85094b172b6b99402190 (diff) | |
download | rails-27aedeeb0bb9350d653f40d7023dd095be5eb24e.tar.gz rails-27aedeeb0bb9350d653f40d7023dd095be5eb24e.tar.bz2 rails-27aedeeb0bb9350d653f40d7023dd095be5eb24e.zip |
Merge pull request #13886 from arthurnn/fix_relation_arel
Fix regression on .select method
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r-- | activerecord/test/cases/adapter_test.rb | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/activerecord/test/cases/adapter_test.rb b/activerecord/test/cases/adapter_test.rb index b67e70ec7e..0eb1231c79 100644 --- a/activerecord/test/cases/adapter_test.rb +++ b/activerecord/test/cases/adapter_test.rb @@ -1,5 +1,7 @@ require "cases/helper" require "models/book" +require "models/post" +require "models/author" module ActiveRecord class AdapterTest < ActiveRecord::TestCase @@ -179,6 +181,27 @@ module ActiveRecord assert result.is_a?(ActiveRecord::Result) end + def test_select_methods_passing_a_association_relation + author = Author.create!(name: 'john') + Post.create!(author: author, title: 'foo', body: 'bar') + query = author.posts.select(:title) + assert_equal({"title" => "foo"}, @connection.select_one(query.arel, nil, query.bind_values)) + assert_equal({"title" => "foo"}, @connection.select_one(query)) + assert @connection.select_all(query).is_a?(ActiveRecord::Result) + assert_equal "foo", @connection.select_value(query) + assert_equal ["foo"], @connection.select_values(query) + end + + def test_select_methods_passing_a_relation + Post.create!(title: 'foo', body: 'bar') + query = Post.where(title: 'foo').select(:title) + assert_equal({"title" => "foo"}, @connection.select_one(query.arel, nil, query.bind_values)) + assert_equal({"title" => "foo"}, @connection.select_one(query)) + assert @connection.select_all(query).is_a?(ActiveRecord::Result) + assert_equal "foo", @connection.select_value(query) + assert_equal ["foo"], @connection.select_values(query) + end + test "type_to_sql returns a String for unmapped types" do assert_equal "special_db_type", @connection.type_to_sql(:special_db_type) end |