Files
ruby_koans/koans/about_symbols.rb
Daniel Parker a36c3b7a4d Fixed typo
2010-09-21 17:41:09 +01:00

69 lines
1.5 KiB
Ruby

require File.expand_path(File.dirname(__FILE__) + '/edgecase')
class AboutSymbols < EdgeCase::Koan
def test_symbols_are_symbols
symbol = :ruby
assert_equal __, symbol.is_a?(Symbol)
end
def test_symbols_are_not_strings
symbol = :ruby
assert_equal __, symbol.is_a?(String)
assert_equal __, symbol.eql?("ruby")
end
def test_symbols_have_unique_identity
symbol1 = :identity
symbol2 = :identity
symbol3 = :something_else
assert symbol1 == __
assert symbol1 != __
end
def test_identical_symbols_are_represented_by_a_single_internal_object
symbol1 = :identity
symbol2 = :identity
assert symbol1.equal?(__)
assert_equal __, symbol2.object_id
end
def test_method_names_become_symbols
all_symbols = Symbol.all_symbols
assert_equal __, all_symbols.include?(:test_method_names_are_symbols)
end
RubyConstant = "This string is assigned to a constant."
def test_constants_become_symbols
all_symbols = Symbol.all_symbols
assert_equal true, all_symbols.include?(__)
end
def test_symbols_can_be_made_from_strings
string = "catsAndDogs"
assert_equal __, string.to_sym
end
def test_symbols_with_spaces_can_be_built
symbol = :"cats and dogs"
assert_equal symbol, __.to_sym
end
def test_interpolated_symbols_become_strings
symbol = :cats
string = "It is raining #{symbol} and dogs."
assert_equal __, string
end
def test_symbols_cannot_be_concatenated
assert_raise(__) do
:cats + :dogs
end
end
end