Skip to content

Commit

Permalink
New assertion: assert_present [#4299 state:committed]
Browse files Browse the repository at this point in the history
Signed-off-by: Xavier Noria <fxn@hashref.com>
  • Loading branch information
xuanxu authored and fxn committed Mar 30, 2010
1 parent 7212c29 commit 589deb3
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 1 deletion.
7 changes: 7 additions & 0 deletions activesupport/lib/active_support/testing/assertions.rb
Expand Up @@ -69,6 +69,13 @@ def assert_no_difference(expression, message = nil, &block)
def assert_blank(object)
assert object.blank?, "#{object.inspect} is not blank"
end

# Test if an expression is not blank. Passes if object.present? is true.
#
# assert_present {:data => 'x' } # => true
def assert_present(object)
assert object.present?, "#{object.inspect} is blank"
end
end
end
end
22 changes: 21 additions & 1 deletion activesupport/test/test_test.rb
Expand Up @@ -96,7 +96,7 @@ def empty?() false; end

class AssertBlankTest < ActiveSupport::TestCase
BLANK = [ EmptyTrue.new, nil, false, '', ' ', " \n\t \r ", [], {} ]
NOT_BLANK = [ EmptyFalse.new, Object.new, true, 0, 1, 'j', [nil], { nil => 0 } ]
NOT_BLANK = [ EmptyFalse.new, Object.new, true, 0, 1, 'x', [nil], { nil => 0 } ]

def test_assert_blank_true
BLANK.each { |v| assert_blank v }
Expand All @@ -114,6 +114,26 @@ def test_assert_blank_false
end
end

class AssertPresentTest < ActiveSupport::TestCase
BLANK = [ EmptyTrue.new, nil, false, '', ' ', " \n\t \r ", [], {} ]
NOT_BLANK = [ EmptyFalse.new, Object.new, true, 0, 1, 'x', [nil], { nil => 0 } ]

def test_assert_blank_true
NOT_BLANK.each { |v| assert_present v }
end

def test_assert_blank_false
BLANK.each { |v|
begin
assert_present v
fail 'should not get to here'
rescue Exception => e
assert_match(/is blank/, e.message)
end
}
end
end

# These should always pass
if ActiveSupport::Testing.const_defined?(:Default)
class NotTestingThingsTest < Test::Unit::TestCase
Expand Down

2 comments on commit 589deb3

@KieranP
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This, along with the other assert_blank needs active_support/core_ext/object/blank require please. People need to remember these else it leads to patchy support for pulling in only what you need,

@fxn
Copy link
Member

@fxn fxn commented on 589deb3 Mar 31, 2010

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added now, thank you Kieran!

Please sign in to comment.