mirror of
https://github.com/github/rails.git
synced 2026-01-10 07:07:54 -05:00
Moved a few methods from RecordIdentifier to ActiveModel::Naming
Signed-off-by: José Valim <jose.valim@gmail.com>
This commit is contained in:
committed by
José Valim
parent
fa8b290496
commit
6807b08099
63
activemodel/test/cases/naming_helpers_test.rb
Normal file
63
activemodel/test/cases/naming_helpers_test.rb
Normal file
@@ -0,0 +1,63 @@
|
||||
require 'cases/helper'
|
||||
|
||||
class Comment
|
||||
extend ActiveModel::Naming
|
||||
include ActiveModel::Conversion
|
||||
|
||||
attr_reader :id
|
||||
def to_key; id ? [id] : nil end
|
||||
def save; @id = 1 end
|
||||
def new_record?; @id.nil? end
|
||||
def name
|
||||
@id.nil? ? 'new comment' : "comment ##{@id}"
|
||||
end
|
||||
end
|
||||
|
||||
class Sheep
|
||||
extend ActiveModel::Naming
|
||||
include ActiveModel::Conversion
|
||||
|
||||
attr_reader :id
|
||||
def to_key; id ? [id] : nil end
|
||||
def save; @id = 1 end
|
||||
def new_record?; @id.nil? end
|
||||
def name
|
||||
@id.nil? ? 'new sheep' : "sheep ##{@id}"
|
||||
end
|
||||
end
|
||||
|
||||
class NamingHelpersTest < Test::Unit::TestCase
|
||||
def setup
|
||||
@klass = Comment
|
||||
@record = @klass.new
|
||||
@singular = 'comment'
|
||||
@plural = 'comments'
|
||||
@uncountable = Sheep
|
||||
end
|
||||
|
||||
def test_singular
|
||||
assert_equal @singular, singular(@record)
|
||||
end
|
||||
|
||||
def test_singular_for_class
|
||||
assert_equal @singular, singular(@klass)
|
||||
end
|
||||
|
||||
def test_plural
|
||||
assert_equal @plural, plural(@record)
|
||||
end
|
||||
|
||||
def test_plural_for_class
|
||||
assert_equal @plural, plural(@klass)
|
||||
end
|
||||
|
||||
def test_uncountable
|
||||
assert_equal true, uncountable?(@uncountable)
|
||||
assert_equal false, uncountable?(@klass)
|
||||
end
|
||||
|
||||
private
|
||||
def method_missing(method, *args)
|
||||
ActiveModel::Naming.send(method, *args)
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user