require File.dirname(__FILE__) + '/test_helper'
class AttributeTest < Presenting::Test
def setup
@a = Presenting::Attribute.new
end
def test_assigning_a_symbol_name
@a.name = :foo
assert_equal "Foo", @a.name, "name is typecast to a string and titleized"
assert_equal :foo, @a.value, "value is assumed to be a symbol as well"
end
def test_assigning_a_string_name
@a.name = "foo"
assert_equal "foo", @a.name, "name remains a string"
assert_equal "foo", @a.value, "value is assumed to be a string"
end
def test_symbol_values
@a.value = :foo
assert_equal "bar", @a.value_from(stub('row', :foo => "bar")), "symbols are methods"
end
def test_string_values
@a.value = "foo"
assert_equal "foo", @a.value_from(stub('row', :foo => "bar")), "strings are constant"
end
def test_proc_values
@a.value = proc{|row| "hello"}
assert_equal "hello", @a.value_from(stub('row', :foo => "bar")), "procs are custom"
end
def test_that_value_from_does_not_sanitizes_itself
@a.value = 'hello'
@a.sanitize = true
assert_equal 'hello', @a.value_from(nil)
end
def test_hash_rows_with_symbol_values
@a.value = :foo
assert_equal 'bar', @a.value_from({:foo => 'bar'}), "symbols are hash keys"
end
def test_sanitize_is_default_true
assert @a.sanitize?
end
def test_assigning_a_symbol_id
@a.id = :foo
assert_equal 'foo', @a.id
end
def test_default_id_from_complex_name
@a.name = 'Hello, World!'
assert_equal 'hello_world', @a.id
end
end