1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
require File.dirname(__FILE__) + "/../spec_helper"
describe "java package" do
it 'is accessible directly when starting with java, javax, com, or org' do
# Using static methods here for simplicity; avoiding construction.
java.lang.should == JavaUtilities.get_package_module_dot_format("java.lang")
java.lang.System.should respond_to 'getProperty'
javax.management.should == JavaUtilities.get_package_module_dot_format("javax.management")
javax.management.MBeanServerFactory.should respond_to 'createMBeanServer'
org.xml.sax.helpers.should == JavaUtilities.get_package_module_dot_format("org.xml.sax.helpers")
org.xml.sax.helpers.ParserFactory.should respond_to 'makeParser'
java.util.should == JavaUtilities.get_package_module_dot_format("java.util")
java.util.Arrays.should respond_to "asList"
end
it "can be imported using 'include_package package.module" do
m = Module.new { include_package java.lang }
m::System.should respond_to 'getProperty'
end
it "can be imported using 'include_package \"package.module\"'" do
m = Module.new { include_package 'java.lang' }
m::System.should respond_to 'getProperty'
end
it "can be imported using 'import package.module" do
m = Module.new { import java.lang }
m::System.should respond_to 'getProperty'
end
it "can be imported using 'import \"package.module\"'" do
m = Module.new { import 'java.lang' }
m::System.should respond_to 'getProperty'
end
it "supports const_get" do
java.util.respond_to?(:const_get).should be true
java.util.const_get("Arrays").should respond_to "asList"
end
if RUBY_VERSION =~ /1\.9/
it "supports const_get with inherit argument" do
java.util.const_get("Arrays", false).should respond_to :asList
end
end
end
# for DefaultPackageClass
$CLASSPATH << File.dirname(__FILE__) + "/../../../target/test-classes"
describe "class in default package" do
it "can be opened using Java::Foo syntax" do
Java::DefaultPackageClass.new.foo.should == "foo"
class Java::DefaultPackageClass
def bar; 'bar'; end
end
Java::DefaultPackageClass.new.bar.should == "bar"
Java::DefaultPackageClass.new.foo.should == "foo"
end
it "does not failover to a package if there are classloading errors" do
lambda do
Java::BadStaticInit.new
end.should raise_error(NameError)
end
end
|