Namespace
Methods
- B
- S
- T
-
- test_all,
- test_all_with_params,
- test_bind_arity,
- test_bind_chars,
- test_bind_empty_enumerable,
- test_bind_empty_string,
- test_bind_enumerable,
- test_bind_record,
- test_bind_variables,
- test_bind_variables_with_quotes,
- test_condition_array_interpolation,
- test_condition_hash_interpolation,
- test_condition_interpolation,
- test_condition_local_time_interpolation_with_default_timezone_utc,
- test_condition_utc_time_interpolation_with_default_timezone_local,
- test_count,
- test_count_by_sql,
- test_dynamic_finder_on_one_attribute_with_conditions_returns_same_results_after_caching,
- test_dynamic_finder_with_invalid_params,
- test_exists,
- test_exists_does_not_instantiate_records,
- test_exists_does_not_select_columns_without_alias,
- test_exists_returns_true_with_one_record_and_no_args,
- test_exists_with_aggregate_having_three_mappings,
- test_exists_with_aggregate_having_three_mappings_with_one_difference,
- test_exists_with_distinct_association_includes_and_limit,
- test_exists_with_distinct_association_includes_limit_and_order,
- test_exists_with_empty_table_and_no_args_given,
- test_exists_with_includes_limit_and_empty_result,
- test_exists_with_nil_arg,
- test_exists_with_order,
- test_exists_with_scoped_include,
- test_find,
- test_find_all,
- test_find_all_by_array_attribute,
- test_find_all_by_boolean_attribute,
- test_find_all_by_from,
- test_find_all_by_from_with_options,
- test_find_all_by_nil_and_not_nil_attributes,
- test_find_all_by_nil_attribute,
- test_find_all_by_one_attribute,
- test_find_all_by_one_attribute_that_is_an_aggregate,
- test_find_all_by_one_attribute_which_is_a_symbol,
- test_find_all_by_one_attribute_with_options,
- test_find_all_by_symbol_from,
- test_find_all_by_two_attributes_that_are_both_aggregates,
- test_find_all_by_two_attributes_with_one_being_an_aggregate,
- test_find_all_sub_objects,
- test_find_all_sub_objects_not_found,
- test_find_all_with_join,
- test_find_all_with_limit,
- test_find_all_with_limit_and_offset_and_multiple_order_clauses,
- test_find_all_with_prepared_limit_and_offset,
- test_find_an_empty_array,
- test_find_by_array_of_one_id,
- test_find_by_empty_ids,
- test_find_by_empty_in_condition,
- test_find_by_id,
- test_find_by_id_not_found,
- test_find_by_id_with_conditions_with_or,
- test_find_by_id_with_custom_prefix,
- test_find_by_id_with_hash,
- test_find_by_ids,
- test_find_by_ids_missing_one,
- test_find_by_ids_with_limit_and_offset,
- test_find_by_invalid_method_syntax,
- test_find_by_nil_and_not_nil_attributes,
- test_find_by_nil_attribute,
- test_find_by_one_attribute,
- test_find_by_one_attribute_bang,
- test_find_by_one_attribute_bang_with_blank_defined,
- test_find_by_one_attribute_that_is_an_aggregate,
- test_find_by_one_attribute_that_is_an_aggregate_with_one_attribute_difference,
- test_find_by_one_attribute_with_conditions,
- test_find_by_one_attribute_with_order_option,
- test_find_by_one_attribute_with_several_options,
- test_find_by_one_missing_attribute,
- test_find_by_records,
- test_find_by_sql_with_sti_on_joined_table,
- test_find_by_title_and_id_with_hash,
- test_find_by_two_attributes,
- test_find_by_two_attributes_but_passing_only_one,
- test_find_by_two_attributes_that_are_both_aggregates,
- test_find_by_two_attributes_with_one_being_an_aggregate,
- test_find_first,
- test_find_first_failing,
- test_find_ignores_previously_inserted_record,
- test_find_last,
- test_find_last_by_invalid_method_syntax,
- test_find_last_by_one_attribute,
- test_find_last_by_one_attribute_with_several_options,
- test_find_last_by_one_missing_attribute,
- test_find_last_by_two_attributes,
- test_find_last_with_limit_and_offset_gives_same_result_when_loaded_and_unloaded,
- test_find_last_with_limit_gives_same_result_when_loaded_and_unloaded,
- test_find_last_with_offset_gives_same_result_when_loaded_and_unloaded,
- test_find_on_array_conditions,
- test_find_on_association_proxy_conditions,
- test_find_on_blank_bind_conditions,
- test_find_on_blank_conditions,
- test_find_on_hash_conditions,
- test_find_on_hash_conditions_with_array_of_integers_and_ranges,
- test_find_on_hash_conditions_with_end_exclusive_range,
- test_find_on_hash_conditions_with_explicit_table_name,
- test_find_on_hash_conditions_with_explicit_table_name_and_aggregate,
- test_find_on_hash_conditions_with_hashed_table_name,
- test_find_on_hash_conditions_with_multiple_ranges,
- test_find_on_hash_conditions_with_range,
- test_find_on_multiple_hash_conditions,
- test_find_one_message_with_custom_primary_key,
- test_find_only_some_columns,
- test_find_or_create_from_one_aggregate_attribute,
- test_find_or_create_from_one_aggregate_attribute_and_hash,
- test_find_or_create_from_one_attribute,
- test_find_or_create_from_one_attribute_and_hash,
- test_find_or_create_from_one_attribute_bang,
- test_find_or_create_from_one_attribute_should_not_set_attribute_even_when_protected,
- test_find_or_create_from_one_attribute_should_set_attribute_even_when_protected,
- test_find_or_create_from_one_attribute_should_set_attribute_even_when_protected_and_also_set_the_hash,
- test_find_or_create_from_two_attributes,
- test_find_or_create_from_two_attributes_and_hash,
- test_find_or_create_from_two_attributes_bang,
- test_find_or_create_from_two_attributes_with_one_being_an_aggregate,
- test_find_or_create_should_set_protected_attributes_if_given_as_block,
- test_find_or_create_should_work_with_block_on_first_call,
- test_find_or_initialize_from_one_aggregate_attribute,
- test_find_or_initialize_from_one_aggregate_attribute_and_hash,
- test_find_or_initialize_from_one_aggregate_attribute_and_one_not,
- test_find_or_initialize_from_one_attribute,
- test_find_or_initialize_from_one_attribute_and_hash,
- test_find_or_initialize_from_one_attribute_should_not_set_attribute_even_when_protected,
- test_find_or_initialize_from_one_attribute_should_set_attribute_even_when_protected,
- test_find_or_initialize_from_one_attribute_should_set_attribute_even_when_protected_and_also_set_the_hash,
- test_find_or_initialize_from_two_attributes,
- test_find_or_initialize_from_two_attributes_but_passing_only_one,
- test_find_or_initialize_should_set_protected_attributes_if_given_as_block,
- test_find_single_by_from,
- test_find_single_by_symbol_from,
- test_find_with_bad_sql,
- test_find_with_entire_select_statement,
- test_find_with_group,
- test_find_with_group_and_having,
- test_find_with_group_and_sanitized_having,
- test_find_with_group_and_sanitized_having_method,
- test_find_with_hash_conditions_on_joined_table,
- test_find_with_hash_conditions_on_joined_table_and_with_range,
- test_find_with_invalid_params,
- test_find_with_nil_inside_set_passed_for_attribute,
- test_find_with_nil_inside_set_passed_for_one_attribute,
- test_find_with_order_on_included_associations_with_construct_finder_sql_for_association_limiting_and_is_distinct,
- test_find_with_prepared_select_statement,
- test_find_with_string,
- test_finder_with_offset_string,
- test_finder_with_scoped_from,
- test_first,
- test_first_and_last_with_integer_should_return_an_array,
- test_first_and_last_with_integer_should_use_sql_limit,
- test_first_bang_missing,
- test_first_bang_present,
- test_first_failing,
- test_first_with_params,
- test_hash_condition_find_malformed,
- test_hash_condition_find_with_aggregate_attribute_having_same_name_as_field_and_key_value_being_aggregate,
- test_hash_condition_find_with_aggregate_attribute_having_same_name_as_field_and_key_value_being_attribute_value,
- test_hash_condition_find_with_aggregate_having_one_mapping,
- test_hash_condition_find_with_aggregate_having_one_mapping_and_key_value_being_attribute_value,
- test_hash_condition_find_with_aggregate_having_three_mappings,
- test_hash_condition_find_with_array,
- test_hash_condition_find_with_escaped_characters,
- test_hash_condition_find_with_nil,
- test_hash_condition_find_with_one_condition_being_aggregate_and_another_not,
- test_hash_condition_local_time_interpolation_with_default_timezone_utc,
- test_hash_condition_utc_time_interpolation_with_default_timezone_local,
- test_joins_dont_clobber_id,
- test_joins_with_string_array,
- test_last,
- test_last_bang_missing,
- test_last_bang_present,
- test_last_should_use_default_order,
- test_last_with_integer_and_order_should_keep_the_order,
- test_last_with_integer_and_order_should_not_use_sql_limit,
- test_last_with_integer_and_reorder_should_not_use_sql_limit,
- test_last_with_integer_should_use_default_order,
- test_last_with_integer_should_work_with_joins,
- test_last_with_params,
- test_model_class_responds_to_first_bang,
- test_model_class_responds_to_last_bang,
- test_named_bind_variables,
- test_named_bind_variables_with_quotes,
- test_named_bind_with_postgresql_type_casts,
- test_select_rows,
- test_select_value,
- test_select_values,
- test_string_sanitation,
- test_symbols_table_ref,
- test_unexisting_record_exception_handling,
- test_with_limiting_with_custom_select
- W
Instance Public methods
setup()
Link
test_all()
Link
test_all_with_params()
Link
test_bind_arity()
Link
# File activerecord/test/cases/finder_test.rb, line 589 def test_bind_arity assert_nothing_raised { bind '' } assert_raise(ActiveRecord::PreparedStatementInvalid) { bind '', 1 } assert_raise(ActiveRecord::PreparedStatementInvalid) { bind '?' } assert_nothing_raised { bind '?', 1 } assert_raise(ActiveRecord::PreparedStatementInvalid) { bind '?', 1, 1 } end
test_bind_chars()
Link
# File activerecord/test/cases/finder_test.rb, line 650 def test_bind_chars quoted_bambi = ActiveRecord::Base.connection.quote("Bambi") quoted_bambi_and_thumper = ActiveRecord::Base.connection.quote("Bambi\nand\nThumper") assert_equal "name=#{quoted_bambi}", bind('name=?', "Bambi") assert_equal "name=#{quoted_bambi_and_thumper}", bind('name=?', "Bambi\nand\nThumper") assert_equal "name=#{quoted_bambi}", bind('name=?', "Bambi".mb_chars) assert_equal "name=#{quoted_bambi_and_thumper}", bind('name=?', "Bambi\nand\nThumper".mb_chars) end
test_bind_empty_enumerable()
Link
# File activerecord/test/cases/finder_test.rb, line 638 def test_bind_empty_enumerable quoted_nil = ActiveRecord::Base.connection.quote(nil) assert_equal quoted_nil, bind('?', []) assert_equal " in (#{quoted_nil})", bind(' in (?)', []) assert_equal "foo in (#{quoted_nil})", bind('foo in (?)', []) end
test_bind_empty_string()
Link
test_bind_enumerable()
Link
# File activerecord/test/cases/finder_test.rb, line 622 def test_bind_enumerable quoted_abc = %Q(#{ActiveRecord::Base.connection.quote('a')},#{ActiveRecord::Base.connection.quote('b')},#{ActiveRecord::Base.connection.quote('c')}) assert_equal '1,2,3', bind('?', [1, 2, 3]) assert_equal quoted_abc, bind('?', %w(a b c)) assert_equal '1,2,3', bind(':a', :a => [1, 2, 3]) assert_equal quoted_abc, bind(':a', :a => %w(a b c)) # ' assert_equal '1,2,3', bind('?', SimpleEnumerable.new([1, 2, 3])) assert_equal quoted_abc, bind('?', SimpleEnumerable.new(%w(a b c))) assert_equal '1,2,3', bind(':a', :a => SimpleEnumerable.new([1, 2, 3])) assert_equal quoted_abc, bind(':a', :a => SimpleEnumerable.new(%w(a b c))) # ' end
test_bind_record()
Link
test_bind_variables()
Link
# File activerecord/test/cases/finder_test.rb, line 566 def test_bind_variables assert_kind_of Firm, Company.find(:first, :conditions => ["name = ?", "37signals"]) assert_nil Company.find(:first, :conditions => ["name = ?", "37signals!"]) assert_nil Company.find(:first, :conditions => ["name = ?", "37signals!' OR 1=1"]) assert_kind_of Time, Topic.find(:first, :conditions => ["id = ?", 1]).written_on assert_raise(ActiveRecord::PreparedStatementInvalid) { Company.find(:first, :conditions => ["id=? AND name = ?", 2]) } assert_raise(ActiveRecord::PreparedStatementInvalid) { Company.find(:first, :conditions => ["id=?", 2, 3, 4]) } end
test_bind_variables_with_quotes()
Link
test_condition_array_interpolation()
Link
# File activerecord/test/cases/finder_test.rb, line 452 def test_condition_array_interpolation assert_kind_of Firm, Company.find(:first, :conditions => ["name = '%s'", "37signals"]) assert_nil Company.find(:first, :conditions => ["name = '%s'", "37signals!"]) assert_nil Company.find(:first, :conditions => ["name = '%s'", "37signals!' OR 1=1"]) assert_kind_of Time, Topic.find(:first, :conditions => ["id = %d", 1]).written_on end
test_condition_hash_interpolation()
Link
# File activerecord/test/cases/finder_test.rb, line 459 def test_condition_hash_interpolation assert_kind_of Firm, Company.find(:first, :conditions => { :name => "37signals"}) assert_nil Company.find(:first, :conditions => { :name => "37signals!"}) assert_kind_of Time, Topic.find(:first, :conditions => {:id => 1}).written_on end
test_condition_interpolation()
Link
# File activerecord/test/cases/finder_test.rb, line 445 def test_condition_interpolation assert_kind_of Firm, Company.find(:first, :conditions => ["name = '%s'", "37signals"]) assert_nil Company.find(:first, :conditions => ["name = '%s'", "37signals!"]) assert_nil Company.find(:first, :conditions => ["name = '%s'", "37signals!' OR 1=1"]) assert_kind_of Time, Topic.find(:first, :conditions => ["id = %d", 1]).written_on end
test_condition_local_time_interpolation_with_default_timezone_utc()
Link
# File activerecord/test/cases/finder_test.rb, line 548 def test_condition_local_time_interpolation_with_default_timezone_utc with_env_tz 'America/New_York' do with_active_record_default_timezone :utc do topic = Topic.first assert_equal topic, Topic.find(:first, :conditions => ['written_on = ?', topic.written_on.getlocal]) end end end
test_condition_utc_time_interpolation_with_default_timezone_local()
Link
# File activerecord/test/cases/finder_test.rb, line 530 def test_condition_utc_time_interpolation_with_default_timezone_local with_env_tz 'America/New_York' do with_active_record_default_timezone :local do topic = Topic.first assert_equal topic, Topic.find(:first, :conditions => ['written_on = ?', topic.written_on.getutc]) end end end
test_count()
Link
test_count_by_sql()
Link
# File activerecord/test/cases/finder_test.rb, line 684 def test_count_by_sql assert_equal(0, Entrant.count_by_sql("SELECT COUNT(*) FROM entrants WHERE id > 3")) assert_equal(1, Entrant.count_by_sql(["SELECT COUNT(*) FROM entrants WHERE id > ?", 2])) assert_equal(2, Entrant.count_by_sql(["SELECT COUNT(*) FROM entrants WHERE id > ?", 1])) end
test_dynamic_finder_on_one_attribute_with_conditions_returns_same_results_after_caching()
Link
# File activerecord/test/cases/finder_test.rb, line 748 def test_dynamic_finder_on_one_attribute_with_conditions_returns_same_results_after_caching # ensure this test can run independently of order class << Account; self; end.send(:remove_method, :find_by_credit_limit) if Account.public_methods.any? { |m| m.to_s == 'find_by_credit_limit' } a = Account.find_by_credit_limit(50, :conditions => ['firm_id = ?', 6]) assert_equal a, Account.find_by_credit_limit(50, :conditions => ['firm_id = ?', 6]) # find_by_credit_limit has been cached end
test_dynamic_finder_with_invalid_params()
Link
test_exists()
Link
# File activerecord/test/cases/finder_test.rb, line 47 def test_exists assert Topic.exists?(1) assert Topic.exists?("1") assert Topic.exists?(:author_name => "David") assert Topic.exists?(:author_name => "Mary", :approved => true) assert Topic.exists?(["parent_id = ?", 1]) assert !Topic.exists?(45) assert !Topic.exists?(Topic.new) begin assert !Topic.exists?("foo") rescue ActiveRecord::StatementInvalid # PostgreSQL complains about string comparison with integer field rescue Exception flunk end assert_raise(NoMethodError) { Topic.exists?([1,2]) } end
test_exists_does_not_instantiate_records()
Link
test_exists_does_not_select_columns_without_alias()
Link
test_exists_returns_true_with_one_record_and_no_args()
Link
test_exists_with_aggregate_having_three_mappings()
Link
test_exists_with_aggregate_having_three_mappings_with_one_difference()
Link
# File activerecord/test/cases/finder_test.rb, line 118 def test_exists_with_aggregate_having_three_mappings_with_one_difference existing_address = customers(:david).address assert !Customer.exists?(:address => Address.new(existing_address.street, existing_address.city, existing_address.country + "1")) assert !Customer.exists?(:address => Address.new(existing_address.street, existing_address.city + "1", existing_address.country)) assert !Customer.exists?(:address => Address.new(existing_address.street + "1", existing_address.city, existing_address.country)) end
test_exists_with_distinct_association_includes_and_limit()
Link
# File activerecord/test/cases/finder_test.rb, line 96 def test_exists_with_distinct_association_includes_and_limit author = Author.first assert !author.unique_categorized_posts.includes(:special_comments).limit(0).exists? assert author.unique_categorized_posts.includes(:special_comments).limit(1).exists? end
test_exists_with_distinct_association_includes_limit_and_order()
Link
# File activerecord/test/cases/finder_test.rb, line 102 def test_exists_with_distinct_association_includes_limit_and_order author = Author.first assert !author.unique_categorized_posts.includes(:special_comments).order('comments.taggings_count DESC').limit(0).exists? assert author.unique_categorized_posts.includes(:special_comments).order('comments.taggings_count DESC').limit(1).exists? end
test_exists_with_empty_table_and_no_args_given()
Link
test_exists_with_includes_limit_and_empty_result()
Link
test_exists_with_nil_arg()
Link
exists? should handle nil for id's that come from URLs and always return false (example: Topic.exists?(params)) where params is nil
test_exists_with_order()
Link
ensures exists? runs valid SQL by excluding order value
test_exists_with_scoped_include()
Link
test_find()
Link
test_find_all()
Link
test_find_all_by_array_attribute()
Link
test_find_all_by_boolean_attribute()
Link
# File activerecord/test/cases/finder_test.rb, line 878 def test_find_all_by_boolean_attribute topics = Topic.find_all_by_approved(false) assert_equal 1, topics.size assert topics.include?(topics(:first)) topics = Topic.find_all_by_approved(true) assert_equal 3, topics.size assert topics.include?(topics(:second)) end
test_find_all_by_from()
Link
# File activeresource/test/cases/finder_test.rb, line 102 def test_find_all_by_from ActiveResource::HttpMock.respond_to { |m| m.get "/companies/1/people.json", {}, @people_david } people = Person.find(:all, :from => "/companies/1/people.json") assert_equal 1, people.size assert_equal "David", people.first.name end
test_find_all_by_from_with_options()
Link
# File activeresource/test/cases/finder_test.rb, line 110 def test_find_all_by_from_with_options ActiveResource::HttpMock.respond_to { |m| m.get "/companies/1/people.json", {}, @people_david } people = Person.find(:all, :from => "/companies/1/people.json") assert_equal 1, people.size assert_equal "David", people.first.name end
test_find_all_by_nil_and_not_nil_attributes()
Link
test_find_all_by_nil_attribute()
Link
test_find_all_by_one_attribute()
Link
# File activerecord/test/cases/finder_test.rb, line 824 def test_find_all_by_one_attribute topics = Topic.find_all_by_content("Have a nice day") assert_equal 2, topics.size assert topics.include?(topics(:first)) assert_equal [], Topic.find_all_by_title("The First Topic!!") end
test_find_all_by_one_attribute_that_is_an_aggregate()
Link
# File activerecord/test/cases/finder_test.rb, line 840 def test_find_all_by_one_attribute_that_is_an_aggregate balance = customers(:david).balance assert_kind_of Money, balance found_customers = Customer.find_all_by_balance(balance) assert_equal 1, found_customers.size assert_equal customers(:david), found_customers.first end
test_find_all_by_one_attribute_which_is_a_symbol()
Link
# File activerecord/test/cases/finder_test.rb, line 832 def test_find_all_by_one_attribute_which_is_a_symbol topics = Topic.find_all_by_content("Have a nice day".to_sym) assert_equal 2, topics.size assert topics.include?(topics(:first)) assert_equal [], Topic.find_all_by_title("The First Topic!!") end
test_find_all_by_one_attribute_with_options()
Link
# File activerecord/test/cases/finder_test.rb, line 866 def test_find_all_by_one_attribute_with_options topics = Topic.find_all_by_content("Have a nice day", :order => "id DESC") assert_equal topics(:first), topics.last topics = Topic.find_all_by_content("Have a nice day", :order => "id") assert_equal topics(:first), topics.first end
test_find_all_by_symbol_from()
Link
# File activeresource/test/cases/finder_test.rb, line 118 def test_find_all_by_symbol_from ActiveResource::HttpMock.respond_to { |m| m.get "/people/managers.json", {}, @people_david } people = Person.find(:all, :from => :managers) assert_equal 1, people.size assert_equal "David", people.first.name end
test_find_all_by_two_attributes_that_are_both_aggregates()
Link
# File activerecord/test/cases/finder_test.rb, line 848 def test_find_all_by_two_attributes_that_are_both_aggregates balance = customers(:david).balance address = customers(:david).address assert_kind_of Money, balance assert_kind_of Address, address found_customers = Customer.find_all_by_balance_and_address(balance, address) assert_equal 1, found_customers.size assert_equal customers(:david), found_customers.first end
test_find_all_by_two_attributes_with_one_being_an_aggregate()
Link
# File activerecord/test/cases/finder_test.rb, line 858 def test_find_all_by_two_attributes_with_one_being_an_aggregate balance = customers(:david).balance assert_kind_of Money, balance found_customers = Customer.find_all_by_balance_and_name(balance, customers(:david).name) assert_equal 1, found_customers.size assert_equal customers(:david), found_customers.first end
test_find_all_sub_objects()
Link
test_find_all_sub_objects_not_found()
Link
test_find_all_with_join()
Link
# File activerecord/test/cases/finder_test.rb, line 1134 def test_find_all_with_join developers_on_project_one = Developer.find( :all, :joins => 'LEFT JOIN developers_projects ON developers.id = developers_projects.developer_id', :conditions => 'project_id=1' ) assert_equal 3, developers_on_project_one.length developer_names = developers_on_project_one.map { |d| d.name } assert developer_names.include?('David') assert developer_names.include?('Jamis') end
test_find_all_with_limit()
Link
test_find_all_with_limit_and_offset_and_multiple_order_clauses()
Link
# File activerecord/test/cases/finder_test.rb, line 186 def test_find_all_with_limit_and_offset_and_multiple_order_clauses first_three_posts = Post.find :all, :order => 'author_id, id', :limit => 3, :offset => 0 second_three_posts = Post.find :all, :order => ' author_id,id ', :limit => 3, :offset => 3 third_three_posts = Post.find :all, :order => ' author_id, id ', :limit => 3, :offset => 6 last_posts = Post.find :all, :order => ' author_id, id ', :limit => 3, :offset => 9 assert_equal [[0,3],[1,1],[1,2]], first_three_posts.map { |p| [p.author_id, p.id] } assert_equal [[1,4],[1,5],[1,6]], second_three_posts.map { |p| [p.author_id, p.id] } assert_equal [[2,7],[2,9],[2,11]], third_three_posts.map { |p| [p.author_id, p.id] } assert_equal [[3,8],[3,10]], last_posts.map { |p| [p.author_id, p.id] } end
test_find_all_with_prepared_limit_and_offset()
Link
# File activerecord/test/cases/finder_test.rb, line 174 def test_find_all_with_prepared_limit_and_offset entrants = Entrant.find(:all, :order => "id ASC", :limit => 2, :offset => 1) assert_equal(2, entrants.size) assert_equal(entrants(:second).name, entrants.first.name) assert_equal 3, Entrant.count entrants = Entrant.find(:all, :order => "id ASC", :limit => 2, :offset => 2) assert_equal(1, entrants.size) assert_equal(entrants(:third).name, entrants.first.name) end
test_find_an_empty_array()
Link
test_find_by_array_of_one_id()
Link
test_find_by_empty_ids()
Link
test_find_by_empty_in_condition()
Link
test_find_by_id()
Link
test_find_by_id_not_found()
Link
test_find_by_id_with_conditions_with_or()
Link
test_find_by_id_with_custom_prefix()
Link
test_find_by_id_with_hash()
Link
test_find_by_ids()
Link
test_find_by_ids_missing_one()
Link
test_find_by_ids_with_limit_and_offset()
Link
# File activerecord/test/cases/finder_test.rb, line 149 def test_find_by_ids_with_limit_and_offset assert_equal 2, Entrant.find([1,3,2], :limit => 2).size assert_equal 1, Entrant.find([1,3,2], :limit => 3, :offset => 2).size # Also test an edge case: If you have 11 results, and you set a # limit of 3 and offset of 9, then you should find that there # will be only 2 results, regardless of the limit. devs = Developer.find :all last_devs = Developer.find devs.map(&:id), :limit => 3, :offset => 9 assert_equal 2, last_devs.size end
test_find_by_invalid_method_syntax()
Link
# File activerecord/test/cases/finder_test.rb, line 763 def test_find_by_invalid_method_syntax assert_raise(NoMethodError) { Topic.fail_to_find_by_title("The First Topic") } assert_raise(NoMethodError) { Topic.find_by_title?("The First Topic") } assert_raise(NoMethodError) { Topic.fail_to_find_or_create_by_title("Nonexistent Title") } assert_raise(NoMethodError) { Topic.find_or_create_by_title?("Nonexistent Title") } end
test_find_by_nil_and_not_nil_attributes()
Link
test_find_by_nil_attribute()
Link
test_find_by_one_attribute()
Link
test_find_by_one_attribute_bang()
Link
test_find_by_one_attribute_bang_with_blank_defined()
Link
test_find_by_one_attribute_that_is_an_aggregate()
Link
# File activerecord/test/cases/finder_test.rb, line 714 def test_find_by_one_attribute_that_is_an_aggregate address = customers(:david).address assert_kind_of Address, address found_customer = Customer.find_by_address(address) assert_equal customers(:david), found_customer end
test_find_by_one_attribute_that_is_an_aggregate_with_one_attribute_difference()
Link
# File activerecord/test/cases/finder_test.rb, line 721 def test_find_by_one_attribute_that_is_an_aggregate_with_one_attribute_difference address = customers(:david).address assert_kind_of Address, address missing_address = Address.new(address.street, address.city, address.country + "1") assert_nil Customer.find_by_address(missing_address) missing_address = Address.new(address.street, address.city + "1", address.country) assert_nil Customer.find_by_address(missing_address) missing_address = Address.new(address.street + "1", address.city, address.country) assert_nil Customer.find_by_address(missing_address) end
test_find_by_one_attribute_with_conditions()
Link
test_find_by_one_attribute_with_order_option()
Link
# File activerecord/test/cases/finder_test.rb, line 705 def test_find_by_one_attribute_with_order_option assert_equal accounts(:signals37), Account.find_by_credit_limit(50, :order => 'id') assert_equal accounts(:rails_core_account), Account.find_by_credit_limit(50, :order => 'id DESC') end
test_find_by_one_attribute_with_several_options()
Link
test_find_by_one_missing_attribute()
Link
test_find_by_records()
Link
# File activerecord/test/cases/finder_test.rb, line 1187 def test_find_by_records p1, p2 = Post.find(:all, :limit => 2, :order => 'id asc') assert_equal [p1, p2], Post.find(:all, :conditions => ['id in (?)', [p1, p2]], :order => 'id asc') assert_equal [p1, p2], Post.find(:all, :conditions => ['id in (?)', [p1, p2.id]], :order => 'id asc') end
test_find_by_sql_with_sti_on_joined_table()
Link
test_find_by_title_and_id_with_hash()
Link
test_find_by_two_attributes()
Link
test_find_by_two_attributes_but_passing_only_one()
Link
test_find_by_two_attributes_that_are_both_aggregates()
Link
# File activerecord/test/cases/finder_test.rb, line 732 def test_find_by_two_attributes_that_are_both_aggregates balance = customers(:david).balance address = customers(:david).address assert_kind_of Money, balance assert_kind_of Address, address found_customer = Customer.find_by_balance_and_address(balance, address) assert_equal customers(:david), found_customer end
test_find_by_two_attributes_with_one_being_an_aggregate()
Link
# File activerecord/test/cases/finder_test.rb, line 741 def test_find_by_two_attributes_with_one_being_an_aggregate balance = customers(:david).balance assert_kind_of Money, balance found_customer = Customer.find_by_balance_and_name(balance, customers(:david).name) assert_equal customers(:david), found_customer end
test_find_first()
Link
test_find_first_failing()
Link
test_find_ignores_previously_inserted_record()
Link
test_find_last()
Link
test_find_last_by_invalid_method_syntax()
Link
test_find_last_by_one_attribute()
Link
test_find_last_by_one_attribute_with_several_options()
Link
test_find_last_by_one_missing_attribute()
Link
test_find_last_by_two_attributes()
Link
# File activerecord/test/cases/finder_test.rb, line 797 def test_find_last_by_two_attributes topic = Topic.last assert_equal topic, Topic.find_last_by_title_and_author_name(topic.title, topic.author_name) assert_nil Topic.find_last_by_title_and_author_name(topic.title, "Anonymous") end
test_find_last_with_limit_and_offset_gives_same_result_when_loaded_and_unloaded()
Link
test_find_last_with_limit_gives_same_result_when_loaded_and_unloaded()
Link
test_find_last_with_offset_gives_same_result_when_loaded_and_unloaded()
Link
test_find_on_array_conditions()
Link
test_find_on_association_proxy_conditions()
Link
test_find_on_blank_bind_conditions()
Link
test_find_on_blank_conditions()
Link
test_find_on_hash_conditions()
Link
test_find_on_hash_conditions_with_array_of_integers_and_ranges()
Link
test_find_on_hash_conditions_with_end_exclusive_range()
Link
# File activerecord/test/cases/finder_test.rb, line 423 def test_find_on_hash_conditions_with_end_exclusive_range assert_equal [1,2,3], Topic.find(:all, :conditions => { :id => 1..3 }).map(&:id).sort assert_equal [1,2], Topic.find(:all, :conditions => { :id => 1...3 }).map(&:id).sort assert_raise(ActiveRecord::RecordNotFound) { Topic.find(3, :conditions => { :id => 2...3 }) } end
test_find_on_hash_conditions_with_explicit_table_name()
Link
# File activerecord/test/cases/finder_test.rb, line 384 def test_find_on_hash_conditions_with_explicit_table_name assert Topic.find(1, :conditions => { 'topics.approved' => false }) assert_raise(ActiveRecord::RecordNotFound) { Topic.find(1, :conditions => { 'topics.approved' => true }) } end
test_find_on_hash_conditions_with_explicit_table_name_and_aggregate()
Link
# File activerecord/test/cases/finder_test.rb, line 406 def test_find_on_hash_conditions_with_explicit_table_name_and_aggregate david = customers(:david) assert Customer.find(david.id, :conditions => { 'customers.name' => david.name, :address => david.address }) assert_raise(ActiveRecord::RecordNotFound) { Customer.find(david.id, :conditions => { 'customers.name' => david.name + "1", :address => david.address }) } end
test_find_on_hash_conditions_with_hashed_table_name()
Link
# File activerecord/test/cases/finder_test.rb, line 389 def test_find_on_hash_conditions_with_hashed_table_name assert Topic.find(1, :conditions => {:topics => { :approved => false }}) assert_raise(ActiveRecord::RecordNotFound) { Topic.find(1, :conditions => {:topics => { :approved => true }}) } end
test_find_on_hash_conditions_with_multiple_ranges()
Link
# File activerecord/test/cases/finder_test.rb, line 429 def test_find_on_hash_conditions_with_multiple_ranges assert_equal [1,2,3], Comment.find(:all, :conditions => { :id => 1..3, :post_id => 1..2 }).map(&:id).sort assert_equal [1], Comment.find(:all, :conditions => { :id => 1..1, :post_id => 1..10 }).map(&:id).sort end
test_find_on_hash_conditions_with_range()
Link
# File activerecord/test/cases/finder_test.rb, line 418 def test_find_on_hash_conditions_with_range assert_equal [1,2], Topic.find(:all, :conditions => { :id => 1..2 }).map(&:id).sort assert_raise(ActiveRecord::RecordNotFound) { Topic.find(1, :conditions => { :id => 2..3 }) } end
test_find_on_multiple_hash_conditions()
Link
# File activerecord/test/cases/finder_test.rb, line 438 def test_find_on_multiple_hash_conditions assert Topic.find(1, :conditions => { :author_name => "David", :title => "The First Topic", :replies_count => 1, :approved => false }) assert_raise(ActiveRecord::RecordNotFound) { Topic.find(1, :conditions => { :author_name => "David", :title => "The First Topic", :replies_count => 1, :approved => true }) } assert_raise(ActiveRecord::RecordNotFound) { Topic.find(1, :conditions => { :author_name => "David", :title => "HHC", :replies_count => 1, :approved => false }) } assert_raise(ActiveRecord::RecordNotFound) { Topic.find(1, :conditions => { :author_name => "David", :title => "The First Topic", :replies_count => 1, :approved => true }) } end
test_find_one_message_with_custom_primary_key()
Link
# File activerecord/test/cases/finder_test.rb, line 1260 def test_find_one_message_with_custom_primary_key Toy.primary_key = :name begin Toy.find 'Hello World!' rescue ActiveRecord::RecordNotFound => e assert_equal 'Couldn\t find Toy with name=Hello World!', e.message end end
test_find_only_some_columns()
Link
# File activerecord/test/cases/finder_test.rb, line 351 def test_find_only_some_columns topic = Topic.find(1, :select => "author_name") assert_raise(ActiveModel::MissingAttributeError) {topic.title} assert_nil topic.read_attribute("title") assert_equal "David", topic.author_name assert !topic.attribute_present?("title") assert !topic.attribute_present?(:title) assert topic.attribute_present?("author_name") assert_respond_to topic, "author_name" end
test_find_or_create_from_one_aggregate_attribute()
Link
# File activerecord/test/cases/finder_test.rb, line 979 def test_find_or_create_from_one_aggregate_attribute number_of_customers = Customer.count created_customer = Customer.find_or_create_by_balance(Money.new(123)) assert_equal number_of_customers + 1, Customer.count assert_equal created_customer, Customer.find_or_create_by_balance(Money.new(123)) assert created_customer.persisted? end
test_find_or_create_from_one_aggregate_attribute_and_hash()
Link
# File activerecord/test/cases/finder_test.rb, line 987 def test_find_or_create_from_one_aggregate_attribute_and_hash number_of_customers = Customer.count balance = Money.new(123) name = "Elizabeth" created_customer = Customer.find_or_create_by_balance({:balance => balance, :name => name}) assert_equal number_of_customers + 1, Customer.count assert_equal created_customer, Customer.find_or_create_by_balance({:balance => balance, :name => name}) assert created_customer.persisted? assert_equal balance, created_customer.balance assert_equal name, created_customer.name end
test_find_or_create_from_one_attribute()
Link
# File activerecord/test/cases/finder_test.rb, line 911 def test_find_or_create_from_one_attribute number_of_companies = Company.count sig38 = Company.find_or_create_by_name("38signals") assert_equal number_of_companies + 1, Company.count assert_equal sig38, Company.find_or_create_by_name("38signals") assert sig38.persisted? end
test_find_or_create_from_one_attribute_and_hash()
Link
# File activerecord/test/cases/finder_test.rb, line 957 def test_find_or_create_from_one_attribute_and_hash number_of_companies = Company.count sig38 = Company.find_or_create_by_name({:name => "38signals", :firm_id => 17, :client_of => 23}) assert_equal number_of_companies + 1, Company.count assert_equal sig38, Company.find_or_create_by_name({:name => "38signals", :firm_id => 17, :client_of => 23}) assert sig38.persisted? assert_equal "38signals", sig38.name assert_equal 17, sig38.firm_id assert_equal 23, sig38.client_of end
test_find_or_create_from_one_attribute_bang()
Link
# File activerecord/test/cases/finder_test.rb, line 927 def test_find_or_create_from_one_attribute_bang number_of_companies = Company.count assert_raises(ActiveRecord::RecordInvalid) { Company.find_or_create_by_name!("") } assert_equal number_of_companies, Company.count sig38 = Company.find_or_create_by_name!("38signals") assert_equal number_of_companies + 1, Company.count assert_equal sig38, Company.find_or_create_by_name!("38signals") assert sig38.persisted? end
test_find_or_create_from_one_attribute_should_not_set_attribute_even_when_protected()
Link
# File activerecord/test/cases/finder_test.rb, line 1019 def test_find_or_create_from_one_attribute_should_not_set_attribute_even_when_protected c = Company.find_or_create_by_name({:name => "Fortune 1000", :rating => 1000}) assert_equal "Fortune 1000", c.name assert_not_equal 1000, c.rating assert c.valid? assert c.persisted? end
test_find_or_create_from_one_attribute_should_set_attribute_even_when_protected()
Link
# File activerecord/test/cases/finder_test.rb, line 1035 def test_find_or_create_from_one_attribute_should_set_attribute_even_when_protected c = Company.find_or_create_by_name_and_rating("Fortune 1000", 1000) assert_equal "Fortune 1000", c.name assert_equal 1000, c.rating assert c.valid? assert c.persisted? end
test_find_or_create_from_one_attribute_should_set_attribute_even_when_protected_and_also_set_the_hash()
Link
# File activerecord/test/cases/finder_test.rb, line 1051 def test_find_or_create_from_one_attribute_should_set_attribute_even_when_protected_and_also_set_the_hash c = Company.find_or_create_by_rating(1000, {:name => "Fortune 1000"}) assert_equal "Fortune 1000", c.name assert_equal 1000, c.rating assert c.valid? assert c.persisted? end
test_find_or_create_from_two_attributes()
Link
# File activerecord/test/cases/finder_test.rb, line 919 def test_find_or_create_from_two_attributes number_of_topics = Topic.count another = Topic.find_or_create_by_title_and_author_name("Another topic","John") assert_equal number_of_topics + 1, Topic.count assert_equal another, Topic.find_or_create_by_title_and_author_name("Another topic", "John") assert another.persisted? end
test_find_or_create_from_two_attributes_and_hash()
Link
# File activerecord/test/cases/finder_test.rb, line 968 def test_find_or_create_from_two_attributes_and_hash number_of_companies = Company.count sig38 = Company.find_or_create_by_name_and_firm_id({:name => "38signals", :firm_id => 17, :client_of => 23}) assert_equal number_of_companies + 1, Company.count assert_equal sig38, Company.find_or_create_by_name_and_firm_id({:name => "38signals", :firm_id => 17, :client_of => 23}) assert sig38.persisted? assert_equal "38signals", sig38.name assert_equal 17, sig38.firm_id assert_equal 23, sig38.client_of end
test_find_or_create_from_two_attributes_bang()
Link
# File activerecord/test/cases/finder_test.rb, line 937 def test_find_or_create_from_two_attributes_bang number_of_companies = Company.count assert_raises(ActiveRecord::RecordInvalid) { Company.find_or_create_by_name_and_firm_id!("", 17) } assert_equal number_of_companies, Company.count sig38 = Company.find_or_create_by_name_and_firm_id!("38signals", 17) assert_equal number_of_companies + 1, Company.count assert_equal sig38, Company.find_or_create_by_name_and_firm_id!("38signals", 17) assert sig38.persisted? assert_equal "38signals", sig38.name assert_equal 17, sig38.firm_id end
test_find_or_create_from_two_attributes_with_one_being_an_aggregate()
Link
# File activerecord/test/cases/finder_test.rb, line 949 def test_find_or_create_from_two_attributes_with_one_being_an_aggregate number_of_customers = Customer.count created_customer = Customer.find_or_create_by_balance_and_name(Money.new(123), "Elizabeth") assert_equal number_of_customers + 1, Customer.count assert_equal created_customer, Customer.find_or_create_by_balance(Money.new(123), "Elizabeth") assert created_customer.persisted? end
test_find_or_create_should_set_protected_attributes_if_given_as_block()
Link
# File activerecord/test/cases/finder_test.rb, line 1067 def test_find_or_create_should_set_protected_attributes_if_given_as_block c = Company.find_or_create_by_name(:name => "Fortune 1000") { |f| f.rating = 1000 } assert_equal "Fortune 1000", c.name assert_equal 1000.to_f, c.rating.to_f assert c.valid? assert c.persisted? end
test_find_or_create_should_work_with_block_on_first_call()
Link
# File activerecord/test/cases/finder_test.rb, line 1075 def test_find_or_create_should_work_with_block_on_first_call class << Company undef_method(:find_or_create_by_name) if method_defined?(:find_or_create_by_name) end c = Company.find_or_create_by_name(:name => "Fortune 1000") { |f| f.rating = 1000 } assert_equal "Fortune 1000", c.name assert_equal 1000.to_f, c.rating.to_f assert c.valid? assert c.persisted? end
test_find_or_initialize_from_one_aggregate_attribute()
Link
test_find_or_initialize_from_one_aggregate_attribute_and_hash()
Link
# File activerecord/test/cases/finder_test.rb, line 1112 def test_find_or_initialize_from_one_aggregate_attribute_and_hash balance = Money.new(123) name = "Elizabeth" new_customer = Customer.find_or_initialize_by_balance({:balance => balance, :name => name}) assert_equal balance, new_customer.balance assert_equal name, new_customer.name assert !new_customer.persisted? end
test_find_or_initialize_from_one_aggregate_attribute_and_one_not()
Link
# File activerecord/test/cases/finder_test.rb, line 1097 def test_find_or_initialize_from_one_aggregate_attribute_and_one_not new_customer = Customer.find_or_initialize_by_balance_and_name(Money.new(123), "Elizabeth") assert_equal 123, new_customer.balance.amount assert_equal "Elizabeth", new_customer.name assert !new_customer.persisted? end
test_find_or_initialize_from_one_attribute()
Link
test_find_or_initialize_from_one_attribute_and_hash()
Link
# File activerecord/test/cases/finder_test.rb, line 1104 def test_find_or_initialize_from_one_attribute_and_hash sig38 = Company.find_or_initialize_by_name({:name => "38signals", :firm_id => 17, :client_of => 23}) assert_equal "38signals", sig38.name assert_equal 17, sig38.firm_id assert_equal 23, sig38.client_of assert !sig38.persisted? end
test_find_or_initialize_from_one_attribute_should_not_set_attribute_even_when_protected()
Link
# File activerecord/test/cases/finder_test.rb, line 1011 def test_find_or_initialize_from_one_attribute_should_not_set_attribute_even_when_protected c = Company.find_or_initialize_by_name({:name => "Fortune 1000", :rating => 1000}) assert_equal "Fortune 1000", c.name assert_not_equal 1000, c.rating assert c.valid? assert !c.persisted? end
test_find_or_initialize_from_one_attribute_should_set_attribute_even_when_protected()
Link
# File activerecord/test/cases/finder_test.rb, line 1027 def test_find_or_initialize_from_one_attribute_should_set_attribute_even_when_protected c = Company.find_or_initialize_by_name_and_rating("Fortune 1000", 1000) assert_equal "Fortune 1000", c.name assert_equal 1000, c.rating assert c.valid? assert !c.persisted? end
test_find_or_initialize_from_one_attribute_should_set_attribute_even_when_protected_and_also_set_the_hash()
Link
# File activerecord/test/cases/finder_test.rb, line 1043 def test_find_or_initialize_from_one_attribute_should_set_attribute_even_when_protected_and_also_set_the_hash c = Company.find_or_initialize_by_rating(1000, {:name => "Fortune 1000"}) assert_equal "Fortune 1000", c.name assert_equal 1000, c.rating assert c.valid? assert !c.persisted? end
test_find_or_initialize_from_two_attributes()
Link
# File activerecord/test/cases/finder_test.rb, line 1086 def test_find_or_initialize_from_two_attributes another = Topic.find_or_initialize_by_title_and_author_name("Another topic","John") assert_equal "Another topic", another.title assert_equal "John", another.author_name assert !another.persisted? end
test_find_or_initialize_from_two_attributes_but_passing_only_one()
Link
test_find_or_initialize_should_set_protected_attributes_if_given_as_block()
Link
# File activerecord/test/cases/finder_test.rb, line 1059 def test_find_or_initialize_should_set_protected_attributes_if_given_as_block c = Company.find_or_initialize_by_name(:name => "Fortune 1000") { |f| f.rating = 1000 } assert_equal "Fortune 1000", c.name assert_equal 1000.to_f, c.rating.to_f assert c.valid? assert !c.persisted? end
test_find_single_by_from()
Link
# File activeresource/test/cases/finder_test.rb, line 126 def test_find_single_by_from ActiveResource::HttpMock.respond_to { |m| m.get "/companies/1/manager.json", {}, @david } david = Person.find(:one, :from => "/companies/1/manager.json") assert_equal "David", david.name end
test_find_single_by_symbol_from()
Link
test_find_with_bad_sql()
Link
test_find_with_entire_select_statement()
Link
test_find_with_group()
Link
test_find_with_group_and_having()
Link
# File activerecord/test/cases/finder_test.rb, line 205 def test_find_with_group_and_having developers = Developer.find(:all, :group => "salary", :having => "sum(salary) > 10000", :select => "salary") assert_equal 3, developers.size assert_equal 3, developers.map(&:salary).uniq.size assert developers.all? { |developer| developer.salary > 10000 } end
test_find_with_group_and_sanitized_having()
Link
# File activerecord/test/cases/finder_test.rb, line 212 def test_find_with_group_and_sanitized_having developers = Developer.find(:all, :group => "salary", :having => ["sum(salary) > ?", 10000], :select => "salary") assert_equal 3, developers.size assert_equal 3, developers.map(&:salary).uniq.size assert developers.all? { |developer| developer.salary > 10000 } end
test_find_with_group_and_sanitized_having_method()
Link
# File activerecord/test/cases/finder_test.rb, line 219 def test_find_with_group_and_sanitized_having_method developers = Developer.group(:salary).having("sum(salary) > ?", 10000).select('salary').all assert_equal 3, developers.size assert_equal 3, developers.map(&:salary).uniq.size assert developers.all? { |developer| developer.salary > 10000 } end
test_find_with_hash_conditions_on_joined_table()
Link
test_find_with_hash_conditions_on_joined_table_and_with_range()
Link
# File activerecord/test/cases/finder_test.rb, line 400 def test_find_with_hash_conditions_on_joined_table_and_with_range firms = DependentFirm.all :joins => :account, :conditions => {:name => 'RailsCore', :accounts => { :credit_limit => 55..60 }} assert_equal 1, firms.size assert_equal companies(:rails_core), firms.first end
test_find_with_invalid_params()
Link
# File activerecord/test/cases/finder_test.rb, line 1125 def test_find_with_invalid_params assert_raise(ArgumentError) { Topic.find :first, :join => "It should be `joins'" } assert_raise(ArgumentError) { Topic.find :first, :conditions => '1 = 1', :join => "It should be `joins'" } end
test_find_with_nil_inside_set_passed_for_attribute()
Link
# File activerecord/test/cases/finder_test.rb, line 1236 def test_find_with_nil_inside_set_passed_for_attribute client_of = Company.find( :all, :conditions => { :client_of => [nil] }, :order => 'client_of DESC' ).map { |x| x.client_of } assert_equal [], client_of.compact end
test_find_with_nil_inside_set_passed_for_one_attribute()
Link
# File activerecord/test/cases/finder_test.rb, line 1223 def test_find_with_nil_inside_set_passed_for_one_attribute client_of = Company.find( :all, :conditions => { :client_of => [2, 1, nil], :name => ['37signals', 'Summit', 'Microsoft'] }, :order => 'client_of DESC' ).map { |x| x.client_of } assert client_of.include?(nil) assert_equal [2, 1].sort, client_of.compact.sort end
test_find_with_order_on_included_associations_with_construct_finder_sql_for_association_limiting_and_is_distinct()
Link
# File activerecord/test/cases/finder_test.rb, line 1216 def test_find_with_order_on_included_associations_with_construct_finder_sql_for_association_limiting_and_is_distinct assert_equal 2, Post.find(:all, :include => { :authors => :author_address }, :order => ' author_addresses.id DESC ', :limit => 2).size assert_equal 3, Post.find(:all, :include => { :author => :author_address, :authors => :author_address}, :order => ' author_addresses_authors.id DESC ', :limit => 3).size end
test_find_with_prepared_select_statement()
Link
test_find_with_string()
Link
find should handle strings that come from URLs (example: Category.find(params))
test_finder_with_offset_string()
Link
test_finder_with_scoped_from()
Link
test_first()
Link
test_first_and_last_with_integer_should_return_an_array()
Link
test_first_and_last_with_integer_should_use_sql_limit()
Link
test_first_bang_missing()
Link
test_first_bang_present()
Link
test_first_failing()
Link
test_first_with_params()
Link
test_hash_condition_find_malformed()
Link
test_hash_condition_find_with_aggregate_attribute_having_same_name_as_field_and_key_value_being_aggregate()
Link
# File activerecord/test/cases/finder_test.rb, line 495 def test_hash_condition_find_with_aggregate_attribute_having_same_name_as_field_and_key_value_being_aggregate gps_location = customers(:david).gps_location assert_kind_of GpsLocation, gps_location found_customer = Customer.find(:first, :conditions => {:gps_location => gps_location}) assert_equal customers(:david), found_customer end
test_hash_condition_find_with_aggregate_attribute_having_same_name_as_field_and_key_value_being_attribute_value()
Link
# File activerecord/test/cases/finder_test.rb, line 509 def test_hash_condition_find_with_aggregate_attribute_having_same_name_as_field_and_key_value_being_attribute_value gps_location = customers(:david).gps_location assert_kind_of GpsLocation, gps_location found_customer = Customer.find(:first, :conditions => {:gps_location => gps_location.gps_location}) assert_equal customers(:david), found_customer end
test_hash_condition_find_with_aggregate_having_one_mapping()
Link
# File activerecord/test/cases/finder_test.rb, line 488 def test_hash_condition_find_with_aggregate_having_one_mapping balance = customers(:david).balance assert_kind_of Money, balance found_customer = Customer.find(:first, :conditions => {:balance => balance}) assert_equal customers(:david), found_customer end
test_hash_condition_find_with_aggregate_having_one_mapping_and_key_value_being_attribute_value()
Link
# File activerecord/test/cases/finder_test.rb, line 502 def test_hash_condition_find_with_aggregate_having_one_mapping_and_key_value_being_attribute_value balance = customers(:david).balance assert_kind_of Money, balance found_customer = Customer.find(:first, :conditions => {:balance => balance.amount}) assert_equal customers(:david), found_customer end
test_hash_condition_find_with_aggregate_having_three_mappings()
Link
# File activerecord/test/cases/finder_test.rb, line 516 def test_hash_condition_find_with_aggregate_having_three_mappings address = customers(:david).address assert_kind_of Address, address found_customer = Customer.find(:first, :conditions => {:address => address}) assert_equal customers(:david), found_customer end
test_hash_condition_find_with_array()
Link
# File activerecord/test/cases/finder_test.rb, line 476 def test_hash_condition_find_with_array p1, p2 = Post.find(:all, :limit => 2, :order => 'id asc') assert_equal [p1, p2], Post.find(:all, :conditions => { :id => [p1, p2] }, :order => 'id asc') assert_equal [p1, p2], Post.find(:all, :conditions => { :id => [p1, p2.id] }, :order => 'id asc') end
test_hash_condition_find_with_escaped_characters()
Link
test_hash_condition_find_with_nil()
Link
test_hash_condition_find_with_one_condition_being_aggregate_and_another_not()
Link
# File activerecord/test/cases/finder_test.rb, line 523 def test_hash_condition_find_with_one_condition_being_aggregate_and_another_not address = customers(:david).address assert_kind_of Address, address found_customer = Customer.find(:first, :conditions => {:address => address, :name => customers(:david).name}) assert_equal customers(:david), found_customer end
test_hash_condition_local_time_interpolation_with_default_timezone_utc()
Link
# File activerecord/test/cases/finder_test.rb, line 557 def test_hash_condition_local_time_interpolation_with_default_timezone_utc with_env_tz 'America/New_York' do with_active_record_default_timezone :utc do topic = Topic.first assert_equal topic, Topic.find(:first, :conditions => {:written_on => topic.written_on.getlocal}) end end end
test_hash_condition_utc_time_interpolation_with_default_timezone_local()
Link
# File activerecord/test/cases/finder_test.rb, line 539 def test_hash_condition_utc_time_interpolation_with_default_timezone_local with_env_tz 'America/New_York' do with_active_record_default_timezone :local do topic = Topic.first assert_equal topic, Topic.find(:first, :conditions => {:written_on => topic.written_on.getutc}) end end end
test_joins_dont_clobber_id()
Link
test_joins_with_string_array()
Link
# File activerecord/test/cases/finder_test.rb, line 1155 def test_joins_with_string_array person_with_reader_and_post = Post.find( :all, :joins => [ "INNER JOIN categorizations ON categorizations.post_id = posts.id", "INNER JOIN categories ON categories.id = categorizations.category_id AND categories.type = 'SpecialCategory'" ] ) assert_equal 1, person_with_reader_and_post.size end
test_last()
Link
test_last_bang_missing()
Link
test_last_bang_present()
Link
test_last_should_use_default_order()
Link
test_last_with_integer_and_order_should_keep_the_order()
Link
test_last_with_integer_and_order_should_not_use_sql_limit()
Link
test_last_with_integer_and_reorder_should_not_use_sql_limit()
Link
test_last_with_integer_should_use_default_order()
Link
test_last_with_integer_should_work_with_joins()
Link
test_last_with_params()
Link
test_model_class_responds_to_first_bang()
Link
test_model_class_responds_to_last_bang()
Link
test_named_bind_variables()
Link
# File activerecord/test/cases/finder_test.rb, line 598 def test_named_bind_variables assert_equal '1', bind(':a', :a => 1) # ' ruby-mode assert_equal '1 1', bind(':a :a', :a => 1) # ' ruby-mode assert_nothing_raised { bind("'+00:00'", :foo => "bar") } assert_kind_of Firm, Company.find(:first, :conditions => ["name = :name", { :name => "37signals" }]) assert_nil Company.find(:first, :conditions => ["name = :name", { :name => "37signals!" }]) assert_nil Company.find(:first, :conditions => ["name = :name", { :name => "37signals!' OR 1=1" }]) assert_kind_of Time, Topic.find(:first, :conditions => ["id = :id", { :id => 1 }]).written_on end
test_named_bind_variables_with_quotes()
Link
test_named_bind_with_postgresql_type_casts()
Link
# File activerecord/test/cases/finder_test.rb, line 667 def test_named_bind_with_postgresql_type_casts l = Proc.new { bind(":a::integer '2009-01-01'::date", :a => '10') } assert_nothing_raised(&l) assert_equal "#{ActiveRecord::Base.quote_value('10')}::integer '2009-01-01'::date", l.call end
test_select_rows()
Link
# File activerecord/test/cases/finder_test.rb, line 1206 def test_select_rows assert_equal( [["1", "1", nil, "37signals"], ["2", "1", "2", "Summit"], ["3", "1", "1", "Microsoft"]], Company.connection.select_rows("SELECT id, firm_id, client_of, name FROM companies WHERE id IN (1,2,3) ORDER BY id").map! {|i| i.map! {|j| j.to_s unless j.nil?}}) assert_equal [["1", "37signals"], ["2", "Summit"], ["3", "Microsoft"]], Company.connection.select_rows("SELECT id, name FROM companies WHERE id IN (1,2,3) ORDER BY id").map! {|i| i.map! {|j| j.to_s unless j.nil?}} end
test_select_value()
Link
# File activerecord/test/cases/finder_test.rb, line 1193 def test_select_value assert_equal "37signals", Company.connection.select_value("SELECT name FROM companies WHERE id = 1") assert_nil Company.connection.select_value("SELECT name FROM companies WHERE id = -1") # make sure we didn't break count... assert_equal 0, Company.count_by_sql("SELECT COUNT(*) FROM companies WHERE name = 'Halliburton'") assert_equal 1, Company.count_by_sql("SELECT COUNT(*) FROM companies WHERE name = '37signals'") end
test_select_values()
Link
# File activerecord/test/cases/finder_test.rb, line 1201 def test_select_values assert_equal ["1","2","3","4","5","6","7","8","9", "10"], Company.connection.select_values("SELECT id FROM companies ORDER BY id").map! { |i| i.to_s } assert_equal ["37signals","Summit","Microsoft", "Flamboyant Software", "Ex Nihilo", "RailsCore", "Leetsoft", "Jadedpixel", "Odegy", "Ex Nihilo Part Deux"], Company.connection.select_values("SELECT name FROM companies ORDER BY id") end
test_string_sanitation()
Link
test_symbols_table_ref()
Link
test_unexisting_record_exception_handling()
Link
test_with_limiting_with_custom_select()
Link
# File activerecord/test/cases/finder_test.rb, line 1246 def test_with_limiting_with_custom_select posts = Post.find(:all, :include => :author, :select => ' posts.*, authors.id as "author_id"', :limit => 3, :order => 'posts.id') assert_equal 3, posts.size assert_equal [0, 1, 1], posts.map(&:author_id).sort end
Instance Protected methods
bind(statement, *vars)
Link
with_active_record_default_timezone(zone)
Link