class NullRelationTest

Public Instance Methods

test_none() click to toggle source
# File activerecord/test/cases/null_relation_test.rb, line 12
def test_none
  assert_no_queries(ignore_none: false) do
    assert_equal [], Developer.none
    assert_equal [], Developer.all.none
  end
end
test_none_chainable() click to toggle source
# File activerecord/test/cases/null_relation_test.rb, line 19
def test_none_chainable
  assert_no_queries(ignore_none: false) do
    assert_equal [], Developer.none.where(name: "David")
  end
end
test_none_chainable_to_existing_scope_extension_method() click to toggle source
# File activerecord/test/cases/null_relation_test.rb, line 25
def test_none_chainable_to_existing_scope_extension_method
  assert_no_queries(ignore_none: false) do
    assert_equal 1, Topic.anonymous_extension.none.one
  end
end
test_none_chained_to_methods_firing_queries_straight_to_db() click to toggle source
# File activerecord/test/cases/null_relation_test.rb, line 31
def test_none_chained_to_methods_firing_queries_straight_to_db
  assert_no_queries(ignore_none: false) do
    assert_equal [],    Developer.none.pluck(:id, :name)
    assert_equal 0,     Developer.none.delete_all
    assert_equal 0,     Developer.none.update_all(name: "David")
    assert_equal 0,     Developer.none.delete(1)
    assert_equal false, Developer.none.exists?(1)
  end
end
test_null_relation_content_size_methods() click to toggle source
# File activerecord/test/cases/null_relation_test.rb, line 41
def test_null_relation_content_size_methods
  assert_no_queries(ignore_none: false) do
    assert_equal 0,     Developer.none.size
    assert_equal 0,     Developer.none.count
    assert_equal true,  Developer.none.empty?
    assert_equal true,  Developer.none.none?
    assert_equal false, Developer.none.any?
    assert_equal false, Developer.none.one?
    assert_equal false, Developer.none.many?
  end
end
test_null_relation_in_where_condition() click to toggle source
# File activerecord/test/cases/null_relation_test.rb, line 80
def test_null_relation_in_where_condition
  assert_operator Comment.count, :>, 0 # precondition, make sure there are comments.
  assert_equal 0, Comment.where(post_id: Post.none).count
end
test_null_relation_metadata_methods() click to toggle source
# File activerecord/test/cases/null_relation_test.rb, line 53
def test_null_relation_metadata_methods
  assert_equal "", Developer.none.to_sql
  assert_equal({}, Developer.none.where_values_hash)
end
test_null_relation_where_values_hash() click to toggle source
# File activerecord/test/cases/null_relation_test.rb, line 58
def test_null_relation_where_values_hash
  assert_equal({ "salary" => 100_000 }, Developer.none.where(salary: 100_000).where_values_hash)
end