Added enumerable collections and open java classes to jruby koan.
authorJim Weirich <jim.weirich@gmail.com>
Tue, 28 Sep 2010 18:43:03 +0000 (14:43 -0400)
committerJim Weirich <jim.weirich@gmail.com>
Tue, 28 Sep 2010 18:43:03 +0000 (14:43 -0400)
src/about_java_interop.rb

index 2bc9628..39a93b7 100644 (file)
@@ -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