constantize_test_cases.rb 1.9 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14
module Ace
  module Base
    class Case
    end
  end
end

module ConstantizeTestCases
  def run_constantize_tests_on
    assert_nothing_raised { assert_equal Ace::Base::Case, yield("Ace::Base::Case") }
    assert_nothing_raised { assert_equal Ace::Base::Case, yield("::Ace::Base::Case") }
    assert_nothing_raised { assert_equal ConstantizeTestCases, yield("ConstantizeTestCases") }
    assert_nothing_raised { assert_equal ConstantizeTestCases, yield("::ConstantizeTestCases") }
    assert_raise(NameError) { yield("UnknownClass") }
15 16
    assert_raise(NameError) { yield("UnknownClass::Ace") }
    assert_raise(NameError) { yield("UnknownClass::Ace::Base") }
17 18
    assert_raise(NameError) { yield("An invalid string") }
    assert_raise(NameError) { yield("InvalidClass\n") }
19
    assert_raise(NameError) { yield("Ace::ConstantizeTestCases") }
20 21 22 23 24 25 26 27 28
    assert_raise(NameError) { yield("Ace::Base::ConstantizeTestCases") }
  end
  
  def run_safe_constantize_tests_on
    assert_nothing_raised { assert_equal Ace::Base::Case, yield("Ace::Base::Case") }
    assert_nothing_raised { assert_equal Ace::Base::Case, yield("::Ace::Base::Case") }
    assert_nothing_raised { assert_equal ConstantizeTestCases, yield("ConstantizeTestCases") }
    assert_nothing_raised { assert_equal ConstantizeTestCases, yield("::ConstantizeTestCases") }
    assert_nothing_raised { assert_equal nil, yield("UnknownClass") }
29 30
    assert_nothing_raised { assert_equal nil, yield("UnknownClass::Ace") }
    assert_nothing_raised { assert_equal nil, yield("UnknownClass::Ace::Base") }
31 32 33
    assert_nothing_raised { assert_equal nil, yield("An invalid string") }
    assert_nothing_raised { assert_equal nil, yield("InvalidClass\n") }
    assert_nothing_raised { assert_equal nil, yield("blargle") }
34
    assert_nothing_raised { assert_equal nil, yield("Ace::ConstantizeTestCases") }
35 36 37
    assert_nothing_raised { assert_equal nil, yield("Ace::Base::ConstantizeTestCases") }
  end
end