@@ -136,6 +136,51 @@ class Java2SwiftTests: XCTestCase {
136136 ]
137137 )
138138 }
139+
140+ func testNestedLogger( ) throws {
141+ try assertTranslatedClass (
142+ JavaSystem . Logger. self,
143+ swiftTypeName: " JavaSystem.Logger " ,
144+ translatedClasses: [
145+ " java.lang.Object " : ( " JavaObject " , nil , true ) ,
146+ " java.lang.System " : ( " JavaSystem " , nil , true )
147+ ] ,
148+ expectedChunks: [
149+ """
150+ extension JavaSystem {
151+ @JavaInterface( " java.lang.System$Logger " )
152+ public struct Logger {
153+ """
154+ ]
155+ )
156+ }
157+
158+ func testNestedLoggerLevel( ) throws {
159+ try assertTranslatedClass (
160+ JavaSystem . Logger. Level. self,
161+ swiftTypeName: " JavaSystem.Logger.Level " ,
162+ translatedClasses: [
163+ " java.lang.Object " : ( " JavaObject " , nil , true ) ,
164+ " java.lang.System " : ( " JavaSystem " , nil , true ) ,
165+ " java.lang.System.Logger " : ( " JavaSystem.Logger " , nil , true ) ,
166+ ] ,
167+ expectedChunks: [
168+ """
169+ extension JavaSystem.Logger {
170+ @JavaClass( " java.lang.System$Logger$Level " )
171+ public struct Level {
172+ """ ,
173+ """
174+ public enum LevelCases: Equatable {
175+ """ ,
176+ """
177+ extension JavaClass<JavaSystem.Logger.Level> {
178+ @JavaStaticField
179+ public var ALL: JavaSystem.Logger.Level?
180+ """ ,
181+ ]
182+ )
183+ }
139184}
140185
141186@JavaClass ( " java.util.ArrayList " )
@@ -146,6 +191,22 @@ public struct MyArrayList<E: AnyJavaObject> {
146191public struct MyLinkedList < E: AnyJavaObject > {
147192}
148193
194+ @JavaClass ( " java.lang.System " )
195+ public struct JavaSystem {
196+ }
197+
198+ extension JavaSystem {
199+ @JavaClass ( " java.lang.System$Logger " )
200+ public struct Logger {
201+ }
202+ }
203+
204+ extension JavaSystem . Logger {
205+ @JavaClass ( " java.lang.System$Logger$Level " )
206+ public struct Level {
207+ }
208+ }
209+
149210/// Translate a Java class and assert that the translated output contains
150211/// each of the expected "chunks" of text.
151212func assertTranslatedClass< JavaClassType: AnyJavaObject > (
0 commit comments