From e26666280ccf8c1f45fbbdd70d1d4e82ae18735d Mon Sep 17 00:00:00 2001 From: Marc Peabody Date: Sat, 2 Oct 2010 10:11:18 -0400 Subject: [PATCH] java coercion --- koans/about_java_interop.rb | 15 +++++++++++++++ src/about_java_interop.rb | 15 +++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/koans/about_java_interop.rb b/koans/about_java_interop.rb index 20a40c7..fb26693 100644 --- a/koans/about_java_interop.rb +++ b/koans/about_java_interop.rb @@ -95,6 +95,21 @@ class AboutJavaInterop < EdgeCase::Koan assert_equal __, java_array.toString.is_a?(java.lang.String) end + def test_some_ruby_objects_can_be_coerced_to_java + assert_equal __, "ruby string".to_java.class + assert_equal __, 1.to_java.class + assert_equal __, 9.32.to_java.class + assert_equal __, false.to_java.class + end + + def test_some_ruby_objects_can_NOT_be_coerced_to_java + [[], {}, Object.new].each do |ruby_object| + assert_raise(___) do + ruby_object.to_java_class + end + end + end + def test_java_collections_are_enumerable java_array = java.util.ArrayList.new java_array << "one" << "two" << "three" diff --git a/src/about_java_interop.rb b/src/about_java_interop.rb index 39a93b7..bb63a5f 100644 --- a/src/about_java_interop.rb +++ b/src/about_java_interop.rb @@ -95,6 +95,21 @@ class AboutJavaInterop < EdgeCase::Koan assert_equal __(false), java_array.toString.is_a?(java.lang.String) end + def test_some_ruby_objects_can_be_coerced_to_java + assert_equal __(Java::JavaLang::String), "ruby string".to_java.class + assert_equal __(Java::JavaLang::Long), 1.to_java.class + assert_equal __(Java::JavaLang::Double), 9.32.to_java.class + assert_equal __(Java::JavaLang::Boolean), false.to_java.class + end + + def test_some_ruby_objects_can_NOT_be_coerced_to_java + [[], {}, Object.new].each do |ruby_object| + assert_raise(___(NoMethodError)) do + ruby_object.to_java_class + end + end + end + def test_java_collections_are_enumerable java_array = java.util.ArrayList.new java_array << "one" << "two" << "three" -- 1.8.0.2