|
2 | 2 |
|
3 | 3 | import "java_integration.fixtures.ClassWithEnums" |
4 | 4 | import "java_integration.fixtures.JavaFields" |
| 5 | +import "java_integration.fixtures.InnerClasses" |
5 | 6 |
|
6 | 7 | describe "Java::JavaClass.for_name" do |
7 | 8 | it "should return primitive classes for Java primitive type names" do |
|
44 | 45 | JavaFields.send('TRAILING$').should == true |
45 | 46 | end |
46 | 47 | end |
| 48 | + |
| 49 | +describe "A Java class with inner classes" do |
| 50 | + it "should define constants for constantable classes" do |
| 51 | + InnerClasses.constants.should include 'CapsInnerClass' |
| 52 | + InnerClasses::CapsInnerClass.value.should == 1 |
| 53 | + |
| 54 | + InnerClasses::CapsInnerClass.constants.should include "CapsInnerClass2" |
| 55 | + InnerClasses::CapsInnerClass::CapsInnerClass2.value.should == 1 |
| 56 | + |
| 57 | + InnerClasses::CapsInnerClass.constants.should include "CapsInnerInterface2" |
| 58 | + |
| 59 | + InnerClasses::CapsInnerClass.constants.should_not include 'lowerInnerClass2' |
| 60 | + InnerClasses::CapsInnerClass.constants.should_not include 'lowerInnerInterface2' |
| 61 | + |
| 62 | + InnerClasses.constants.should include 'CapsInnerInterface' |
| 63 | + |
| 64 | + InnerClasses::CapsInnerInterface.constants.should include "CapsInnerClass4" |
| 65 | + InnerClasses::CapsInnerInterface::CapsInnerClass4.value.should == 1 |
| 66 | + |
| 67 | + InnerClasses::CapsInnerInterface.constants.should include "CapsInnerInterface4" |
| 68 | + |
| 69 | + InnerClasses::CapsInnerInterface.constants.should_not include 'lowerInnerClass4' |
| 70 | + InnerClasses::CapsInnerInterface.constants.should_not include 'lowerInnerInterface4' |
| 71 | + end |
| 72 | + |
| 73 | + it "should define methods for lower-case classes" do |
| 74 | + InnerClasses.methods.should include 'lowerInnerClass' |
| 75 | + InnerClasses::lowerInnerClass.value.should == 1 |
| 76 | + InnerClasses.lowerInnerClass.value.should == 1 |
| 77 | + InnerClasses.lowerInnerClass.should == InnerClasses::lowerInnerClass |
| 78 | + |
| 79 | + InnerClasses.lowerInnerClass.constants.should include 'CapsInnerClass3' |
| 80 | + InnerClasses.lowerInnerClass.constants.should include 'CapsInnerInterface3' |
| 81 | + |
| 82 | + InnerClasses.lowerInnerClass::CapsInnerClass3.value.should == 1 |
| 83 | + |
| 84 | + InnerClasses.lowerInnerClass.methods.should include 'lowerInnerInterface3' |
| 85 | + InnerClasses.lowerInnerClass.methods.should include 'lowerInnerClass3' |
| 86 | + |
| 87 | + InnerClasses.lowerInnerClass::lowerInnerClass3.value.should == 1 |
| 88 | + InnerClasses.lowerInnerClass.lowerInnerClass3.value.should == 1 |
| 89 | + |
| 90 | + InnerClasses.methods.should include 'lowerInnerInterface' |
| 91 | + InnerClasses.lowerInnerInterface.should == InnerClasses::lowerInnerInterface |
| 92 | + |
| 93 | + InnerClasses.lowerInnerInterface.constants.should include 'CapsInnerClass5' |
| 94 | + InnerClasses.lowerInnerInterface.constants.should include 'CapsInnerInterface5' |
| 95 | + |
| 96 | + InnerClasses.lowerInnerInterface::CapsInnerClass5.value.should == 1 |
| 97 | + |
| 98 | + InnerClasses.lowerInnerInterface.methods.should include 'lowerInnerInterface5' |
| 99 | + InnerClasses.lowerInnerInterface.methods.should include 'lowerInnerClass5' |
| 100 | + |
| 101 | + InnerClasses.lowerInnerInterface::lowerInnerClass5.value.should == 1 |
| 102 | + InnerClasses.lowerInnerInterface.lowerInnerClass5.value.should == 1 |
| 103 | + end |
| 104 | + |
| 105 | + it "raises error importing lower-case names" do |
| 106 | + lambda do |
| 107 | + java_import InnerClasses::lowerInnerClass |
| 108 | + end.should raise_error(ArgumentError) |
| 109 | + end |
| 110 | + |
| 111 | + it "imports upper-case names successfully" do |
| 112 | + lambda do |
| 113 | + java_import InnerClasses::CapsInnerClass |
| 114 | + end.should_not raise_error |
| 115 | + CapsInnerClass.should == InnerClasses::CapsInnerClass |
| 116 | + end |
| 117 | +end |
0 commit comments