95 lines
3.2 KiB
Ruby
95 lines
3.2 KiB
Ruby
require 'helper'
|
|
|
|
class TestCoreExt < Test::Unit::TestCase
|
|
context "hash" do
|
|
|
|
context "pluralized_array" do
|
|
|
|
should "return empty array with no values" do
|
|
data = {}
|
|
assert_equal [], data.pluralized_array('tag', 'tags')
|
|
end
|
|
|
|
should "return empty array with no matching values" do
|
|
data = { 'foo' => 'bar' }
|
|
assert_equal [], data.pluralized_array('tag', 'tags')
|
|
end
|
|
|
|
should "return empty array with matching nil singular" do
|
|
data = { 'foo' => 'bar', 'tag' => nil, 'tags' => ['dog', 'cat'] }
|
|
assert_equal [], data.pluralized_array('tag', 'tags')
|
|
end
|
|
|
|
should "return single value array with matching singular" do
|
|
data = { 'foo' => 'bar', 'tag' => 'dog', 'tags' => ['dog', 'cat'] }
|
|
assert_equal ['dog'], data.pluralized_array('tag', 'tags')
|
|
end
|
|
|
|
should "return single value array with matching singular with spaces" do
|
|
data = { 'foo' => 'bar', 'tag' => 'dog cat', 'tags' => ['dog', 'cat'] }
|
|
assert_equal ['dog cat'], data.pluralized_array('tag', 'tags')
|
|
end
|
|
|
|
should "return empty array with matching nil plural" do
|
|
data = { 'foo' => 'bar', 'tags' => nil }
|
|
assert_equal [], data.pluralized_array('tag', 'tags')
|
|
end
|
|
|
|
should "return empty array with matching empty array" do
|
|
data = { 'foo' => 'bar', 'tags' => [] }
|
|
assert_equal [], data.pluralized_array('tag', 'tags')
|
|
end
|
|
|
|
should "return single value array with matching plural with single string value" do
|
|
data = { 'foo' => 'bar', 'tags' => 'dog' }
|
|
assert_equal ['dog'], data.pluralized_array('tag', 'tags')
|
|
end
|
|
|
|
should "return multiple value array with matching plural with single string value with spaces" do
|
|
data = { 'foo' => 'bar', 'tags' => 'dog cat' }
|
|
assert_equal ['dog', 'cat'], data.pluralized_array('tag', 'tags')
|
|
end
|
|
|
|
should "return single value array with matching plural with single value array" do
|
|
data = { 'foo' => 'bar', 'tags' => ['dog'] }
|
|
assert_equal ['dog'], data.pluralized_array('tag', 'tags')
|
|
end
|
|
|
|
should "return multiple value array with matching plural with multiple value array" do
|
|
data = { 'foo' => 'bar', 'tags' => ['dog', 'cat'] }
|
|
assert_equal ['dog', 'cat'], data.pluralized_array('tag', 'tags')
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
context "enumerable" do
|
|
context "glob_include?" do
|
|
should "return false with no glob patterns" do
|
|
assert ![].glob_include?("a.txt")
|
|
end
|
|
|
|
should "return false with all not match path" do
|
|
data = ["a*", "b?"]
|
|
assert !data.glob_include?("ca.txt")
|
|
assert !data.glob_include?("ba.txt")
|
|
end
|
|
|
|
should "return true with match path" do
|
|
data = ["a*", "b?", "**/a*"]
|
|
assert data.glob_include?("a.txt")
|
|
assert data.glob_include?("ba")
|
|
assert data.glob_include?("c/a/a.txt")
|
|
assert data.glob_include?("c/a/b/a.txt")
|
|
end
|
|
|
|
should "match even if there is no leading slash" do
|
|
data = ['vendor/bundle']
|
|
assert data.glob_include?('/vendor/bundle')
|
|
assert data.glob_include?('vendor/bundle')
|
|
end
|
|
end
|
|
end
|
|
end
|