Skip to content

Commit

Permalink
Added assert_attribute_type to clean up GeneratedAttributeTest [#2377
Browse files Browse the repository at this point in the history
…state:resolved]

Signed-off-by: José Valim <jose.valim@gmail.com>
  • Loading branch information
Jeff Kreeftmeijer authored and josevalim committed May 16, 2010
1 parent 99b38f3 commit 5ff6de0
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 0 deletions.
12 changes: 12 additions & 0 deletions railties/lib/rails/generators/test_case.rb
Expand Up @@ -189,6 +189,18 @@ def assert_instance_method(method, content)
end
alias :assert_method :assert_instance_method

# 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::Generators::GeneratedAttribute.new('test', name).field_type,
attribute_type
)
end

# Runs the generator configured for this class. The first argument is an array like
# command line arguments:
#
Expand Down
40 changes: 40 additions & 0 deletions railties/test/generators/generated_attribute_test.rb
@@ -0,0 +1,40 @@
require 'generators/generators_test_helper'
require 'rails/generators/generated_attribute'

class GeneratedAttributeTest < Rails::Generators::TestCase
include GeneratorsTestHelper

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

0 comments on commit 5ff6de0

Please sign in to comment.