From 4789e831df8757a013bf3600a23899b7b9122778 Mon Sep 17 00:00:00 2001 From: Jim Weirich Date: Tue, 28 Sep 2010 14:43:03 -0400 Subject: [PATCH] Added enumerable collections and open java classes to jruby koan. --- src/about_java_interop.rb | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/about_java_interop.rb b/src/about_java_interop.rb index 2bc9628..39a93b7 100644 --- a/src/about_java_interop.rb +++ b/src/about_java_interop.rb @@ -95,4 +95,30 @@ class AboutJavaInterop < EdgeCase::Koan assert_equal __(false), java_array.toString.is_a?(java.lang.String) end + def test_java_collections_are_enumerable + java_array = java.util.ArrayList.new + java_array << "one" << "two" << "three" + assert_equal __(["ONE", "TWO", "THREE"]), java_array.map { |item| item.upcase } + end + + # ------------------------------------------------------------------ + + # Open the Java ArrayList class and add a new method. + class Java::JavaUtil::ArrayList + def multiply_all + result = 1 + each do |item| + result *= item + end + result + end + end + + def test_java_class_are_open_from_ruby + java_array = java.util.ArrayList.new + java_array.add_all([1,2,3,4,5]) + + assert_equal __(120), java_array.multiply_all + end + end