Add missing test case for Array#to_sentence, collect all test cases for Object#to_param at one place and avoid repitition

This commit is contained in:
Akshay Vishnoi 2014-07-29 20:05:36 +05:30
parent 8426897086
commit 6bc7e27c19
2 changed files with 16 additions and 24 deletions

View File

@ -52,6 +52,14 @@ class ToSentenceTest < ActiveSupport::TestCase
def test_with_blank_elements
assert_equal ", one, , two, and three", [nil, 'one', '', 'two', 'three'].to_sentence
end
def test_with_invalid_options
exception = assert_raise ArgumentError do
['one', 'two'].to_sentence(passing: 'invalid option')
end
assert_equal exception.message, "Unknown key: :passing. Valid keys are: :words_connector, :two_words_connector, :last_word_connector, :locale"
end
end
class ToSTest < ActiveSupport::TestCase
@ -187,25 +195,3 @@ class ToXmlTest < ActiveSupport::TestCase
assert_equal({ skip_instruct: true }, options)
end
end
class ToParamTest < ActiveSupport::TestCase
class ToParam < String
def to_param
"#{self}1"
end
end
def test_string_array
assert_equal '', %w().to_param
assert_equal 'hello/world', %w(hello world).to_param
assert_equal 'hello/10', %w(hello 10).to_param
end
def test_number_array
assert_equal '10/20', [10, 20].to_param
end
def test_to_param_array
assert_equal 'custom1/param1', [ToParam.new('custom'), ToParam.new('param')].to_param
end
end

View File

@ -2,6 +2,12 @@ require 'abstract_unit'
require 'active_support/core_ext/object/to_param'
class ToParamTest < ActiveSupport::TestCase
class CustomString < String
def to_param
"custom-#{ self }"
end
end
def test_object
foo = Object.new
def foo.to_s; 'foo' end
@ -25,7 +31,7 @@ class ToParamTest < ActiveSupport::TestCase
assert_equal "1/2/3/4", array.to_param
# Array of different objects
array = [1, '3', { a: 1, b: 2 }, nil, true, false]
assert_equal "1/3/a=1&b=2//true/false", array.to_param
array = [1, '3', { a: 1, b: 2 }, nil, true, false, CustomString.new('object')]
assert_equal "1/3/a=1&b=2//true/false/custom-object", array.to_param
end
end