@@ -62,25 +62,20 @@ public void JniTypeToJava_ConvertsCorrectly (string jniType, string expected)
6262
6363 }
6464
65- public class Filtering
65+ public class Filtering : IDisposable
6666 {
67+ readonly string _outputDir = CreateTempDir ( ) ;
68+ public void Dispose ( ) => DeleteTempDir ( _outputDir ) ;
6769
6870 [ Fact ]
6971 public void Generate_SkipsMcwTypes ( )
7072 {
7173 var peers = ScanFixtures ( ) ;
7274 var generator = new JcwJavaSourceGenerator ( ) ;
73- var outputDir = Path . Combine ( Path . GetTempPath ( ) , $ "jcw-test-{ Guid . NewGuid ( ) : N} ") ;
74- try {
75- var files = generator . Generate ( peers , outputDir ) ;
76- Assert . DoesNotContain ( files , f => f . EndsWith ( "java/lang/Object.java" ) ) ;
77- Assert . DoesNotContain ( files , f => f . EndsWith ( "android/app/Activity.java" ) ) ;
78- Assert . Contains ( files , f => f . Replace ( '\\ ' , '/' ) . Contains ( "my/app/MainActivity.java" ) ) ;
79- } finally {
80- if ( Directory . Exists ( outputDir ) ) {
81- Directory . Delete ( outputDir , true ) ;
82- }
83- }
75+ var files = generator . Generate ( peers , _outputDir ) ;
76+ Assert . DoesNotContain ( files , f => f . EndsWith ( "java/lang/Object.java" ) ) ;
77+ Assert . DoesNotContain ( files , f => f . EndsWith ( "android/app/Activity.java" ) ) ;
78+ Assert . Contains ( files , f => f . Replace ( '\\ ' , '/' ) . Contains ( "my/app/MainActivity.java" ) ) ;
8479 }
8580
8681 }
@@ -97,6 +92,15 @@ public void Generate_MainActivity_HasClassDeclaration ()
9792 Assert . Contains ( "\t \t mono.android.IGCUserPeer\n " , java ) ;
9893 }
9994
95+ [ Fact ]
96+ public void Generate_MainActivity_HasIGCUserPeerMethods ( )
97+ {
98+ var java = GenerateFixture ( "my/app/MainActivity" ) ;
99+ Assert . Contains ( "private java.util.ArrayList refList;" , java ) ;
100+ Assert . Contains ( "public void monodroidAddReference (java.lang.Object obj)" , java ) ;
101+ Assert . Contains ( "public void monodroidClearReferences ()" , java ) ;
102+ }
103+
100104 [ Fact ]
101105 public void Generate_AbstractType_HasAbstractModifier ( )
102106 {
@@ -247,28 +251,23 @@ public void Generate_NestedType_HasCorrectPackageAndClassName ()
247251
248252 }
249253
250- public class OutputFilePath
254+ public class OutputFilePath : IDisposable
251255 {
256+ readonly string _outputDir = CreateTempDir ( ) ;
257+ public void Dispose ( ) => DeleteTempDir ( _outputDir ) ;
252258
253259 [ Fact ]
254260 public void Generate_CreatesCorrectFileStructure ( )
255261 {
256262 var peers = ScanFixtures ( ) ;
257263 var generator = new JcwJavaSourceGenerator ( ) ;
258- var outputDir = Path . Combine ( Path . GetTempPath ( ) , $ "jcw-test-{ Guid . NewGuid ( ) : N} ") ;
259- try {
260- var files = generator . Generate ( peers , outputDir ) ;
261- Assert . NotEmpty ( files ) ;
262-
263- foreach ( var file in files ) {
264- Assert . StartsWith ( outputDir , file ) ;
265- Assert . True ( File . Exists ( file ) , $ "Generated file should exist: { file } ") ;
266- Assert . EndsWith ( ".java" , file ) ;
267- }
268- } finally {
269- if ( Directory . Exists ( outputDir ) ) {
270- Directory . Delete ( outputDir , true ) ;
271- }
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 ) ;
272271 }
273272 }
274273
@@ -287,8 +286,7 @@ public void Generate_InvalidJniName_Throws (string badJniName)
287286 {
288287 var peer = MakeAcwPeer ( badJniName , "Test.Bad" , "TestApp" ) ;
289288 var generator = new JcwJavaSourceGenerator ( ) ;
290- var outputDir = Path . Combine ( Path . GetTempPath ( ) , $ "jcw-test-{ Guid . NewGuid ( ) : N} ") ;
291- Assert . Throws < ArgumentException > ( ( ) => generator . Generate ( new [ ] { peer } , outputDir ) ) ;
289+ Assert . Throws < ArgumentException > ( ( ) => generator . Generate ( new [ ] { peer } , _outputDir ) ) ;
292290 }
293291
294292 [ Theory ]
@@ -301,14 +299,7 @@ public void Generate_ValidJniName_DoesNotThrow (string validJniName)
301299 {
302300 var peer = MakeAcwPeer ( validJniName , "Test.Valid" , "TestApp" ) ;
303301 var generator = new JcwJavaSourceGenerator ( ) ;
304- var outputDir = Path . Combine ( Path . GetTempPath ( ) , $ "jcw-test-{ Guid . NewGuid ( ) : N} ") ;
305- try {
306- generator . Generate ( new [ ] { peer } , outputDir ) ;
307- } finally {
308- if ( Directory . Exists ( outputDir ) ) {
309- Directory . Delete ( outputDir , true ) ;
310- }
311- }
302+ generator . Generate ( new [ ] { peer } , _outputDir ) ;
312303 }
313304
314305 }
0 commit comments