aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test
diff options
context:
space:
mode:
authorJoshua Peek <josh@joshpeek.com>2008-07-22 11:12:16 -0500
committerJoshua Peek <josh@joshpeek.com>2008-07-22 11:12:16 -0500
commit2681685450631238511cfc3c2f0fa044c1f8033a (patch)
tree2414319c504d25ece84a8cfdce5f2f6c10b13fc8 /activesupport/test
parentbc5896e708bf8070835bebe61de03b701fa5e6f7 (diff)
downloadrails-2681685450631238511cfc3c2f0fa044c1f8033a.tar.gz
rails-2681685450631238511cfc3c2f0fa044c1f8033a.tar.bz2
rails-2681685450631238511cfc3c2f0fa044c1f8033a.zip
Extract ActiveSupport::TypedArray class to ensure an array is all of the same type [#673 state:resolved]
Diffstat (limited to 'activesupport/test')
-rw-r--r--activesupport/test/typed_array_test.rb51
1 files changed, 51 insertions, 0 deletions
diff --git a/activesupport/test/typed_array_test.rb b/activesupport/test/typed_array_test.rb
new file mode 100644
index 0000000000..023f3a1b84
--- /dev/null
+++ b/activesupport/test/typed_array_test.rb
@@ -0,0 +1,51 @@
+require 'abstract_unit'
+
+class TypedArrayTest < Test::Unit::TestCase
+ class StringArray < ActiveSupport::TypedArray
+ def self.type_cast(obj)
+ obj.to_s
+ end
+ end
+
+ def setup
+ @array = StringArray.new
+ end
+
+ def test_string_array_initialize
+ assert_equal ["1", "2", "3"], StringArray.new([1, "2", :"3"])
+ end
+
+ def test_string_array_append
+ @array << 1
+ @array << "2"
+ @array << :"3"
+ assert_equal ["1", "2", "3"], @array
+ end
+
+ def test_string_array_concat
+ @array.concat([1, "2"])
+ @array.concat([:"3"])
+ assert_equal ["1", "2", "3"], @array
+ end
+
+ def test_string_array_insert
+ @array.insert(0, 1)
+ @array.insert(1, "2")
+ @array.insert(2, :"3")
+ assert_equal ["1", "2", "3"], @array
+ end
+
+ def test_string_array_push
+ @array.push(1)
+ @array.push("2")
+ @array.push(:"3")
+ assert_equal ["1", "2", "3"], @array
+ end
+
+ def test_string_array_unshift
+ @array.unshift(:"3")
+ @array.unshift("2")
+ @array.unshift(1)
+ assert_equal ["1", "2", "3"], @array
+ end
+end