@@ -31,12 +31,11 @@ public class ResolveSdksTaskTests : BaseTest {
3131 const string MinimumSupportedJavaVersion = "1.6.0" ;
3232 const string LatestSupportedJavaVersion = "11.0.99" ;
3333
34- static object [ ] UseLatestAndroidSdkTestCases = new object [ ] {
34+ static object [ ] ResolveAndroidToolingTestCases = new object [ ] {
3535 new object [ ] {
3636 /* buildtools */ "26.0.3" ,
3737 /* jdk */ "1.8.0" ,
3838 /* apis*/ apiInfoSelection ,
39- /* useLatestAndroidSdk */ true ,
4039 /* targetFrameworkVersion */ "v9.0" ,
4140 /* expectedTaskResult */ true ,
4241 /* expectedTargetFramework */ "v9.0" ,
@@ -47,73 +46,6 @@ public class ResolveSdksTaskTests : BaseTest {
4746 /* buildtools */ "26.0.3" ,
4847 /* jdk */ "1.8.0" ,
4948 /* apis*/ apiInfoSelection ,
50- /* useLatestAndroidSdk */ true ,
51- /* targetFrameworkVersion */ "v8.0" ,
52- /* expectedTaskResult */ true ,
53- /* expectedTargetFramework */ "v8.1" ,
54- /* expectedError */ "" ,
55- /* expectedErrorMessage */ "" ,
56- } ,
57- new object [ ] {
58- /* buildtools */ "26.0.3" ,
59- /* jdk */ "1.8.0" ,
60- /* apis*/ apiInfoSelection ,
61- /* useLatestAndroidSdk */ true ,
62- /* targetFrameworkVersion */ "v8.1" ,
63- /* expectedTaskResult */ true ,
64- /* expectedTargetFramework */ "v8.1" ,
65- /* expectedError */ "" ,
66- /* expectedErrorMessage */ "" ,
67- } ,
68- new object [ ] {
69- /* buildtools */ "26.0.3" ,
70- /* jdk */ "1.8.0" ,
71- /* apis*/ apiInfoSelection ,
72- /* useLatestAndroidSdk */ true ,
73- /* targetFrameworkVersion */ "v6.0" ,
74- /* expectedTaskResult */ true ,
75- /* expectedTargetFramework */ "v8.1" ,
76- /* expectedError */ "" ,
77- /* expectedErrorMessage */ "" ,
78- } ,
79- new object [ ] {
80- /* buildtools */ "26.0.3" ,
81- /* jdk */ "1.8.0" ,
82- /* apis*/ apiInfoSelection ,
83- /* useLatestAndroidSdk */ true ,
84- /* targetFrameworkVersion */ null ,
85- /* expectedTaskResult */ true ,
86- /* expectedTargetFramework */ "v8.1" ,
87- /* expectedError */ "" ,
88- /* expectedErrorMessage */ "" ,
89- } ,
90- new object [ ] {
91- /* buildtools */ "26.0.3" ,
92- /* jdk */ "1.8.0" ,
93- /* apis*/ apiInfoSelection ,
94- /* useLatestAndroidSdk */ true ,
95- /* targetFrameworkVersion */ "v7.1" ,
96- /* expectedTaskResult */ true ,
97- /* expectedTargetFramework */ "v8.1" ,
98- /* expectedError */ "" ,
99- /* expectedErrorMessage */ "" ,
100- } ,
101- new object [ ] {
102- /* buildtools */ "26.0.3" ,
103- /* jdk */ "1.8.0" ,
104- /* apis*/ apiInfoSelection ,
105- /* useLatestAndroidSdk */ false ,
106- /* targetFrameworkVersion */ "v9.0" ,
107- /* expectedTaskResult */ true ,
108- /* expectedTargetFramework */ "v9.0" ,
109- /* expectedError */ "" ,
110- /* expectedErrorMessage */ "" ,
111- } ,
112- new object [ ] {
113- /* buildtools */ "26.0.3" ,
114- /* jdk */ "1.8.0" ,
115- /* apis*/ apiInfoSelection ,
116- /* useLatestAndroidSdk */ false ,
11749 /* targetFrameworkVersion */ "v8.1" ,
11850 /* expectedTaskResult */ true ,
11951 /* expectedTargetFramework */ "v8.1" ,
@@ -124,7 +56,6 @@ public class ResolveSdksTaskTests : BaseTest {
12456 /* buildtools */ "26.0.3" ,
12557 /* jdk */ "1.8.0" ,
12658 /* apis*/ apiInfoSelection ,
127- /* useLatestAndroidSdk */ false ,
12859 /* targetFrameworkVersion */ "v8.0" ,
12960 /* expectedTaskResult */ true ,
13061 /* expectedTargetFramework */ "v8.0" ,
@@ -135,18 +66,6 @@ public class ResolveSdksTaskTests : BaseTest {
13566 /* buildtools */ "26.0.3" ,
13667 /* jdk */ "1.8.0" ,
13768 /* apis*/ apiInfoSelection ,
138- /* useLatestAndroidSdk */ false ,
139- /* targetFrameworkVersion */ null ,
140- /* expectedTaskResult */ true ,
141- /* expectedTargetFramework */ "v8.1" ,
142- /* expectedError */ "" ,
143- /* expectedErrorMessage */ "" ,
144- } ,
145- new object [ ] {
146- /* buildtools */ "26.0.3" ,
147- /* jdk */ "1.8.0" ,
148- /* apis*/ apiInfoSelection ,
149- /* useLatestAndroidSdk */ false ,
15069 /* targetFrameworkVersion */ "v6.0" ,
15170 /* expectedTaskResult */ false ,
15271 /* expectedTargetFramework */ "v6.0" ,
@@ -157,7 +76,6 @@ public class ResolveSdksTaskTests : BaseTest {
15776 /* buildtools */ "30.0.0" ,
15877 /* jdk */ "11.0" ,
15978 /* apis*/ apiInfoSelection ,
160- /* useLatestAndroidSdk */ false ,
16179 /* targetFrameworkVersion */ "v11.0.99" ,
16280 /* expectedTaskResult */ true ,
16381 /* expectedTargetFramework */ "v11.0.99" ,
@@ -167,10 +85,10 @@ public class ResolveSdksTaskTests : BaseTest {
16785 } ;
16886 #pragma warning restore 414
16987 [ Test ]
170- [ TestCaseSource ( nameof ( UseLatestAndroidSdkTestCases ) ) ]
171- public void UseLatestAndroidSdk ( string buildtools , string jdk , ApiInfo [ ] apis , bool useLatestAndroidSdk , string targetFrameworkVersion , bool expectedTaskResult , string expectedTargetFramework , string expectedError = "" , string expectedErrorMessage = "" )
88+ [ TestCaseSource ( nameof ( ResolveAndroidToolingTestCases ) ) ]
89+ public void ResolveAndroidToolingTest ( string buildtools , string jdk , ApiInfo [ ] apis , string targetFrameworkVersion , bool expectedTaskResult , string expectedTargetFramework , string expectedError = "" , string expectedErrorMessage = "" )
17290 {
173- var path = Path . Combine ( "temp" , "UseLatestAndroidSdk_ " + Guid . NewGuid ( ) ) ;
91+ var path = Path . Combine ( "temp" , "ResolveAndroidToolingTest_ " + Guid . NewGuid ( ) ) ;
17492 var androidSdkPath = CreateFauxAndroidSdkDirectory ( Path . Combine ( path , "android-sdk" ) , buildtools , apis ) ;
17593 var androidNdkPath = CreateFauxAndroidNdkDirectory ( Path . Combine ( path , "android-ndk" ) ) ;
17694 string javaExe = string . Empty ;
@@ -205,7 +123,6 @@ public void UseLatestAndroidSdk (string buildtools, string jdk, ApiInfo[] apis,
205123 AndroidSdkPath = androidSdkPath ,
206124 TargetFrameworkVersion = targetFrameworkVersion ,
207125 AndroidSdkBuildToolsVersion = buildtools ,
208- UseLatestAndroidPlatformSdk = useLatestAndroidSdk ,
209126 AotAssemblies = false ,
210127 SequencePointsMode = "None" ,
211128 AndroidApplication = true ,
@@ -260,7 +177,6 @@ public void ResolveSdkTiming ()
260177 AndroidSdkPath = androidSdkPath ,
261178 TargetFrameworkVersion = "v8.0" ,
262179 AndroidSdkBuildToolsVersion = "26.0.3" ,
263- UseLatestAndroidPlatformSdk = false ,
264180 AotAssemblies = false ,
265181 SequencePointsMode = "None" ,
266182 AndroidApplication = true ,
@@ -303,138 +219,5 @@ public void ResolveSdkTiming ()
303219 Directory . Delete ( Path . Combine ( Root , path ) , recursive : true ) ;
304220 }
305221
306- static object [ ] TargetFrameworkPairingParameters = new [ ] {
307- //We support 28, but only 27 is installed
308- new object [ ] {
309- "Older API Installed" , //description
310- // androidSdks
311- new [ ] {
312- new ApiInfo ( ) { Id = "27" , Level = 27 , Name = "Oreo" , FrameworkVersion = "v8.1" , Stable = true } ,
313- } ,
314- // targetFrameworks
315- new ApiInfo [ ] {
316- new ApiInfo ( ) { Id = "27" , Level = 27 , Name = "Oreo" , FrameworkVersion = "v8.1" , Stable = true } ,
317- new ApiInfo ( ) { Id = "28" , Level = 28 , Name = "P" , FrameworkVersion = "v9.0" , Stable = true } ,
318- } ,
319- null , //userSelected
320- "27" , //androidApiLevel
321- "27" , //androidApiLevelName
322- "v8.1" , //targetFrameworkVersion
323- } ,
324- //28 is installed but we only support 27
325- new object [ ] {
326- "Newer API Installed" , //description
327- // androidSdks
328- new [ ] {
329- new ApiInfo ( ) { Id = "27" , Level = 27 , Name = "Oreo" , FrameworkVersion = "v8.1" , Stable = true } ,
330- new ApiInfo ( ) { Id = "28" , Level = 28 , Name = "P" , FrameworkVersion = "v9.0" , Stable = true } ,
331- } ,
332- // targetFrameworks
333- new ApiInfo [ ] {
334- new ApiInfo ( ) { Id = "27" , Level = 27 , Name = "Oreo" , FrameworkVersion = "v8.1" , Stable = true } ,
335- } ,
336- null , //userSelected
337- "27" , //androidApiLevel
338- "27" , //androidApiLevelName
339- "v8.1" , //targetFrameworkVersion
340- } ,
341- //A paired downgrade to API 26
342- new object [ ] {
343- "Paired Downgrade" , //description
344- // androidSdks
345- new [ ] {
346- new ApiInfo ( ) { Id = "26" , Level = 26 , Name = "Oreo" , FrameworkVersion = "v8.0" , Stable = true } ,
347- new ApiInfo ( ) { Id = "27" , Level = 27 , Name = "Oreo" , FrameworkVersion = "v8.1" , Stable = true } ,
348- } ,
349- // targetFrameworks
350- new ApiInfo [ ] {
351- new ApiInfo ( ) { Id = "26" , Level = 26 , Name = "Oreo" , FrameworkVersion = "v8.0" , Stable = true } ,
352- new ApiInfo ( ) { Id = "28" , Level = 28 , Name = "P" , FrameworkVersion = "v9.0" , Stable = true } ,
353- } ,
354- null , //userSelected
355- "26" , //androidApiLevel
356- "26" , //androidApiLevelName
357- "v8.0" , //targetFrameworkVersion
358- } ,
359- //A new API level 28 is not stable yet
360- new object [ ] {
361- "New Unstable API" , //description
362- // androidSdks
363- new [ ] {
364- new ApiInfo ( ) { Id = "26" , Level = 26 , Name = "Oreo" , FrameworkVersion = "v8.0" , Stable = true } ,
365- new ApiInfo ( ) { Id = "27" , Level = 27 , Name = "Oreo" , FrameworkVersion = "v8.1" , Stable = true } ,
366- new ApiInfo ( ) { Id = "28" , Level = 28 , Name = "P" , FrameworkVersion = "v9.0" , Stable = false } ,
367- } ,
368- // targetFrameworks
369- new ApiInfo [ ] {
370- new ApiInfo ( ) { Id = "26" , Level = 26 , Name = "Oreo" , FrameworkVersion = "v8.0" , Stable = true } ,
371- new ApiInfo ( ) { Id = "27" , Level = 27 , Name = "Oreo" , FrameworkVersion = "v8.1" , Stable = true } ,
372- new ApiInfo ( ) { Id = "28" , Level = 28 , Name = "P" , FrameworkVersion = "v9.0" , Stable = false } ,
373- } ,
374- null , //userSelected
375- "27" , //androidApiLevel
376- "27" , //androidApiLevelName
377- "v8.1" , //targetFrameworkVersion
378- } ,
379- //User selected a new API level 28 is not stable yet
380- new object [ ] {
381- "User Selected Unstable API" , //description
382- // androidSdks
383- new [ ] {
384- new ApiInfo ( ) { Id = "26" , Level = 26 , Name = "Oreo" , FrameworkVersion = "v8.0" , Stable = true } ,
385- new ApiInfo ( ) { Id = "27" , Level = 27 , Name = "Oreo" , FrameworkVersion = "v8.1" , Stable = true } ,
386- new ApiInfo ( ) { Id = "28" , Level = 28 , Name = "P" , FrameworkVersion = "v9.0" , Stable = false } ,
387- } ,
388- // targetFrameworks
389- new ApiInfo [ ] {
390- new ApiInfo ( ) { Id = "26" , Level = 26 , Name = "Oreo" , FrameworkVersion = "v8.0" , Stable = true } ,
391- new ApiInfo ( ) { Id = "27" , Level = 27 , Name = "Oreo" , FrameworkVersion = "v8.1" , Stable = true } ,
392- new ApiInfo ( ) { Id = "28" , Level = 28 , Name = "P" , FrameworkVersion = "v9.0" , Stable = false } ,
393- } ,
394- "v9.0" , //userSelected
395- "28" , //androidApiLevel
396- "28" , //androidApiLevelName
397- "v9.0" , //targetFrameworkVersion
398- } ,
399- } ;
400-
401- [ Test ]
402- [ TestCaseSource ( nameof ( TargetFrameworkPairingParameters ) ) ]
403- public void TargetFrameworkPairing ( string description , ApiInfo [ ] androidSdk , ApiInfo [ ] targetFrameworks , string userSelected , string androidApiLevel , string androidApiLevelName , string targetFrameworkVersion )
404- {
405- var path = Path . Combine ( "temp" , $ "{ nameof ( TargetFrameworkPairing ) } _{ description } ") ;
406- var androidSdkPath = CreateFauxAndroidSdkDirectory ( Path . Combine ( path , "android-sdk" ) , "26.0.3" , androidSdk ) ;
407- var androidNdkPath = CreateFauxAndroidNdkDirectory ( Path . Combine ( path , "android-ndk" ) ) ;
408- string javaExe = string . Empty ;
409- string javacExe ;
410- var javaPath = CreateFauxJavaSdkDirectory ( Path . Combine ( path , "jdk" ) , "1.8.0" , out javaExe , out javacExe ) ;
411- var referencePath = CreateFauxReferencesDirectory ( Path . Combine ( path , "references" ) , targetFrameworks ) ;
412- IBuildEngine engine = new MockBuildEngine ( TestContext . Out ) ;
413- var resolveSdks = new ResolveSdks {
414- BuildEngine = engine ,
415- AndroidSdkPath = androidSdkPath ,
416- AndroidNdkPath = androidNdkPath ,
417- JavaSdkPath = javaPath ,
418- MinimumSupportedJavaVersion = MinimumSupportedJavaVersion ,
419- LatestSupportedJavaVersion = LatestSupportedJavaVersion ,
420- ReferenceAssemblyPaths = new [ ] {
421- Path . Combine ( referencePath , "MonoAndroid" ) ,
422- } ,
423- } ;
424- var androidTooling = new ResolveAndroidTooling {
425- BuildEngine = engine ,
426- AndroidSdkPath = androidSdkPath ,
427- UseLatestAndroidPlatformSdk = true ,
428- TargetFrameworkVersion = userSelected ,
429- AndroidApplication = true ,
430- } ;
431- Assert . IsTrue ( resolveSdks . Execute ( ) , "ResolveSdks should succeed!" ) ;
432- Assert . IsTrue ( androidTooling . Execute ( ) , "ResolveAndroidTooling should succeed!" ) ;
433- Assert . AreEqual ( androidApiLevel , androidTooling . AndroidApiLevel , $ "AndroidApiLevel should be { androidApiLevel } ") ;
434- Assert . AreEqual ( androidApiLevelName , androidTooling . AndroidApiLevelName , $ "AndroidApiLevelName should be { androidApiLevelName } ") ;
435- Assert . AreEqual ( targetFrameworkVersion , androidTooling . TargetFrameworkVersion , $ "TargetFrameworkVersion should be { targetFrameworkVersion } ") ;
436- Directory . Delete ( Path . Combine ( Root , path ) , recursive : true ) ;
437- }
438-
439222 }
440223}
0 commit comments