pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://github.com/jruby/jruby/commit/7f03ce08f82996024b2ba82ad8a460f819a3dded

imer-b48faa60c69660fa.css" /> Add tests for JRUBY-4666: lower case inner class access · jruby/jruby@7f03ce0 · GitHub
Skip to content

Commit 7f03ce0

Browse files
committed
Add tests for JRUBY-4666: lower case inner class access
1 parent fdcb0de commit 7f03ce0

2 files changed

Lines changed: 119 additions & 0 deletions

File tree

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package java_integration.fixtures;
2+
3+
public class InnerClasses {
4+
public static class CapsInnerClass {
5+
public static int value() { return 1; }
6+
public static class CapsInnerClass2 {
7+
public static int value() { return 1; }
8+
}
9+
public static class lowerInnerClass2 {
10+
public static int value() { return 1; }
11+
}
12+
public interface CapsInnerInterface2 {}
13+
public interface lowerInnerInterface2 {}
14+
}
15+
public static class lowerInnerClass {
16+
public static int value() { return 1; }
17+
public static class CapsInnerClass3 {
18+
public static int value() { return 1; }
19+
}
20+
public static class lowerInnerClass3 {
21+
public static int value() { return 1; }
22+
}
23+
public interface CapsInnerInterface3 {}
24+
public interface lowerInnerInterface3 {}
25+
}
26+
27+
public interface CapsInnerInterface {
28+
public static class CapsInnerClass4 {
29+
public static int value() { return 1; }
30+
}
31+
public static class lowerInnerClass4 {
32+
public static int value() { return 1; }
33+
}
34+
public interface CapsInnerInterface4 {}
35+
public interface lowerInnerInterface4 {}
36+
}
37+
38+
public interface lowerInnerInterface {
39+
public static class CapsInnerClass5 {
40+
public static int value() { return 1; }
41+
}
42+
public static class lowerInnerClass5 {
43+
public static int value() { return 1; }
44+
}
45+
public interface CapsInnerInterface5 {}
46+
public interface lowerInnerInterface5 {}
47+
}
48+
}

spec/java_integration/types/retrieval_spec.rb

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import "java_integration.fixtures.ClassWithEnums"
44
import "java_integration.fixtures.JavaFields"
5+
import "java_integration.fixtures.InnerClasses"
56

67
describe "Java::JavaClass.for_name" do
78
it "should return primitive classes for Java primitive type names" do
@@ -44,3 +45,73 @@
4445
JavaFields.send('TRAILING$').should == true
4546
end
4647
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

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy