Skip to content
Browse files

New assertion: assert_present [#4299 state:committed]

Signed-off-by: Xavier Noria <fxn@hashref.com>
  • Loading branch information...
1 parent 7212c29 commit 589deb39c79cac40eec40d4ee3d86fac16c1f31f @xuanxu xuanxu committed with fxn Mar 30, 2010
Showing with 28 additions and 1 deletion.
  1. +7 −0 activesupport/lib/active_support/testing/assertions.rb
  2. +21 −1 activesupport/test/test_test.rb
View
7 activesupport/lib/active_support/testing/assertions.rb
@@ -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
View
22 activesupport/test/test_test.rb
@@ -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 }
@@ -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

2 comments on commit 589deb3

@KieranP

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
Ruby on Rails member
fxn commented on 589deb3 Mar 31, 2010

Added now, thank you Kieran!

Please sign in to comment.
Something went wrong with that request. Please try again.