@@ -70,20 +70,17 @@ public void JniTypeToJava_ConvertsCorrectly (string jniType, string expected)
7070
7171 }
7272
73- public class Filtering : IDisposable
73+ public class Filtering
7474 {
75- readonly string _outputDir = CreateTempDir ( ) ;
76- public void Dispose ( ) => DeleteTempDir ( _outputDir ) ;
7775
7876 [ Fact ]
7977 public void Generate_SkipsMcwTypes ( )
8078 {
8179 var peers = ScanFixtures ( ) ;
82- var generator = new JcwJavaSourceGenerator ( ) ;
83- var files = generator . Generate ( peers , _outputDir ) ;
84- Assert . DoesNotContain ( files , f => f . EndsWith ( "java/lang/Object.java" ) ) ;
85- Assert . DoesNotContain ( files , f => f . EndsWith ( "android/app/Activity.java" ) ) ;
86- Assert . Contains ( files , f => f . Replace ( '\\ ' , '/' ) . Contains ( "my/app/MainActivity.java" ) ) ;
80+ var acwTypes = peers . Where ( p => ! p . DoNotGenerateAcw && ! p . IsInterface ) . ToList ( ) ;
81+ Assert . DoesNotContain ( acwTypes , p => p . JavaName == "java/lang/Object" ) ;
82+ Assert . DoesNotContain ( acwTypes , p => p . JavaName == "android/app/Activity" ) ;
83+ Assert . Contains ( acwTypes , p => p . JavaName == "my/app/MainActivity" ) ;
8784 }
8885
8986 }
@@ -251,25 +248,8 @@ public void Generate_NestedType_HasCorrectPackageAndClassName ()
251248
252249 }
253250
254- public class OutputFilePath : IDisposable
251+ public class JniNameValidation
255252 {
256- readonly string _outputDir = CreateTempDir ( ) ;
257- public void Dispose ( ) => DeleteTempDir ( _outputDir ) ;
258-
259- [ Fact ]
260- public void Generate_CreatesCorrectFileStructure ( )
261- {
262- var peers = ScanFixtures ( ) ;
263- var generator = new JcwJavaSourceGenerator ( ) ;
264- var files = generator . Generate ( peers , _outputDir ) ;
265- Assert . NotEmpty ( files ) ;
266-
267- foreach ( var file in files ) {
268- Assert . StartsWith ( _outputDir , file ) ;
269- Assert . True ( File . Exists ( file ) , $ "Generated file should exist: { file } ") ;
270- Assert . EndsWith ( ".java" , file ) ;
271- }
272- }
273253
274254 [ Theory ]
275255 [ InlineData ( "" ) ]
@@ -282,11 +262,9 @@ public void Generate_CreatesCorrectFileStructure ()
282262 [ InlineData ( "C:\\ Windows\\ System32" ) ]
283263 [ InlineData ( "com/Ex:ample" ) ]
284264 [ InlineData ( "/absolute/path" ) ]
285- public void Generate_InvalidJniName_Throws ( string badJniName )
265+ public void ValidateJniName_InvalidName_Throws ( string badJniName )
286266 {
287- var peer = MakeAcwPeer ( badJniName , "Test.Bad" , "TestApp" ) ;
288- var generator = new JcwJavaSourceGenerator ( ) ;
289- Assert . Throws < ArgumentException > ( ( ) => generator . Generate ( new [ ] { peer } , _outputDir ) ) ;
267+ Assert . Throws < ArgumentException > ( ( ) => JniSignatureHelper . ValidateJniName ( badJniName ) ) ;
290268 }
291269
292270 [ Theory ]
@@ -295,11 +273,9 @@ public void Generate_InvalidJniName_Throws (string badJniName)
295273 [ InlineData ( "SingleSegment" ) ]
296274 [ InlineData ( "com/example/_Private" ) ]
297275 [ InlineData ( "com/example/$Generated" ) ]
298- public void Generate_ValidJniName_DoesNotThrow ( string validJniName )
276+ public void ValidateJniName_ValidName_DoesNotThrow ( string validJniName )
299277 {
300- var peer = MakeAcwPeer ( validJniName , "Test.Valid" , "TestApp" ) ;
301- var generator = new JcwJavaSourceGenerator ( ) ;
302- generator . Generate ( new [ ] { peer } , _outputDir ) ;
278+ JniSignatureHelper . ValidateJniName ( validJniName ) ;
303279 }
304280
305281 }
@@ -330,4 +306,4 @@ public void Generate_TouchHandler_HasExpectedMethodSignatures ()
330306 }
331307
332308 }
333- }
309+ }
0 commit comments