From efd3a812ed7ad69cdfd6adb79af2122cb77dbfab Mon Sep 17 00:00:00 2001 From: Jeff Kreeftmeijer Date: Sun, 16 May 2010 11:49:21 +0200 Subject: [PATCH] Added assert_attribute_type to clean up GeneratedAttributeTest [#2377 state:resolved] --- .../test/generators/generated_attribute_test.rb | 38 ++++++++++++++++++++ railties/test/generators/generator_test_helper.rb | 12 ++++++ 2 files changed, 50 insertions(+), 0 deletions(-) create mode 100644 railties/test/generators/generated_attribute_test.rb diff --git a/railties/test/generators/generated_attribute_test.rb b/railties/test/generators/generated_attribute_test.rb new file mode 100644 index 0000000..f17faec --- /dev/null +++ b/railties/test/generators/generated_attribute_test.rb @@ -0,0 +1,38 @@ +require 'generators/generator_test_helper' +require 'rails_generator/generated_attribute' + +class GeneratedAttributeTest < GeneratorTestCase + def test_field_type_returns_text_field + %w(integer float decimal string).each do |name| + assert_attribute_type name, :text_field + end + end + + def test_field_type_returns_datetime_select + %w(datetime timestamp).each do |name| + assert_attribute_type name, :datetime_select + end + end + + def test_field_type_returns_time_select + assert_attribute_type 'time', :time_select + end + + def test_field_type_returns_date_select + assert_attribute_type 'date', :date_select + end + + def test_field_type_returns_text_area + assert_attribute_type 'text', :text_area + end + + def test_field_type_returns_check_box + assert_attribute_type 'boolean', :check_box + end + + def test_field_type_with_unknown_type_returns_text_field + %w(foo bar baz).each do |name| + assert_attribute_type name, :text_field + end + end +end diff --git a/railties/test/generators/generator_test_helper.rb b/railties/test/generators/generator_test_helper.rb index 6f02eb3..d5bfa2b 100644 --- a/railties/test/generators/generator_test_helper.rb +++ b/railties/test/generators/generator_test_helper.rb @@ -307,4 +307,16 @@ class GeneratorTestCase < Test::Unit::TestCase def assert_generated_table(body, name) assert_match /create_table :#{name.to_s} do/, body, "should have table #{name.to_s} defined" end + + # Asserts the given field name gets translated to an attribute type + # properly. + # + # assert_attribute_type 'date', :date_select + # + def assert_attribute_type(name, attribute_type) + assert_equal( + Rails::Generator::GeneratedAttribute.new('test', name).field_type, + attribute_type + ) + end end -- 1.6.4.1