@@ -236,11 +236,18 @@ private static void TestIsOSVersionAtLeast(string currentOSName)
236
236
isCurrentOS = true ;
237
237
}
238
238
239
+ // Four-parameter overload
239
240
AssertVersionChecks ( isCurrentOS , ( major , minor , build , revision ) => OperatingSystem . IsOSPlatformVersionAtLeast ( platformName , major , minor , build , revision ) ) ;
240
241
AssertVersionChecks ( isCurrentOS , ( major , minor , build , revision ) => OperatingSystem . IsOSPlatformVersionAtLeast ( platformName . ToLower ( ) , major , minor , build , revision ) ) ;
241
242
AssertVersionChecks ( isCurrentOS , ( major , minor , build , revision ) => OperatingSystem . IsOSPlatformVersionAtLeast ( platformName . ToUpper ( ) , major , minor , build , revision ) ) ;
243
+
244
+ // Three-parameter overload
245
+ AssertVersionChecks ( isCurrentOS , ( major , minor , build ) => OperatingSystem . IsOSPlatformVersionAtLeast ( platformName , major , minor , build ) ) ;
246
+
247
+ // Two-parameter overload
248
+ AssertVersionChecks ( isCurrentOS , ( major , minor ) => OperatingSystem . IsOSPlatformVersionAtLeast ( platformName , major , minor ) ) ;
242
249
}
243
-
250
+
244
251
AssertVersionChecks ( currentOSName . Equals ( "Android" , StringComparison . OrdinalIgnoreCase ) , OperatingSystem . IsAndroidVersionAtLeast ) ;
245
252
AssertVersionChecks ( currentOSName == "MacCatalyst" || currentOSName . Equals ( "iOS" , StringComparison . OrdinalIgnoreCase ) , OperatingSystem . IsIOSVersionAtLeast ) ;
246
253
AssertVersionChecks ( currentOSName . Equals ( "macOS" , StringComparison . OrdinalIgnoreCase ) , OperatingSystem . IsMacOSVersionAtLeast ) ;
@@ -256,8 +263,8 @@ private static void AssertVersionChecks(bool isCurrentOS, Func<int, int, int, in
256
263
257
264
Assert . False ( isOSVersionAtLeast ( current . Major + 1 , current . Minor , current . Build , current . Revision ) ) ;
258
265
Assert . False ( isOSVersionAtLeast ( current . Major , current . Minor + 1 , current . Build , current . Revision ) ) ;
259
- Assert . False ( isOSVersionAtLeast ( current . Major , current . Minor , current . Build + 1 , current . Revision ) ) ;
260
- Assert . False ( isOSVersionAtLeast ( current . Major , current . Minor , current . Build , Math . Max ( current . Revision + 1 , 1 ) ) ) ; // OSX Revision reports -1
266
+ Assert . False ( isOSVersionAtLeast ( current . Major , current . Minor , Math . Max ( current . Build + 1 , 1 ) , current . Revision ) ) ;
267
+ Assert . False ( isOSVersionAtLeast ( current . Major , current . Minor , current . Build , Math . Max ( current . Revision + 1 , 1 ) ) ) ;
261
268
262
269
Assert . Equal ( isCurrentOS , isOSVersionAtLeast ( current . Major , current . Minor , current . Build , current . Revision ) ) ;
263
270
@@ -273,13 +280,26 @@ private static void AssertVersionChecks(bool isCurrentOS, Func<int, int, int, bo
273
280
274
281
Assert . False ( isOSVersionAtLeast ( current . Major + 1 , current . Minor , current . Build ) ) ;
275
282
Assert . False ( isOSVersionAtLeast ( current . Major , current . Minor + 1 , current . Build ) ) ;
276
- Assert . False ( isOSVersionAtLeast ( current . Major , current . Minor , current . Build + 1 ) ) ;
283
+ Assert . False ( isOSVersionAtLeast ( current . Major , current . Minor , Math . Max ( current . Build + 1 , 1 ) ) ) ;
277
284
278
285
Assert . Equal ( isCurrentOS , isOSVersionAtLeast ( current . Major , current . Minor , current . Build ) ) ;
279
286
280
287
Assert . Equal ( isCurrentOS , isOSVersionAtLeast ( current . Major - 1 , current . Minor , current . Build ) ) ;
281
288
Assert . Equal ( isCurrentOS , isOSVersionAtLeast ( current . Major , current . Minor - 1 , current . Build ) ) ;
282
289
Assert . Equal ( isCurrentOS , isOSVersionAtLeast ( current . Major , current . Minor , current . Build - 1 ) ) ;
283
290
}
291
+
292
+ private static void AssertVersionChecks ( bool isCurrentOS , Func < int , int , bool > isOSVersionAtLeast )
293
+ {
294
+ Version current = Environment . OSVersion . Version ;
295
+
296
+ Assert . False ( isOSVersionAtLeast ( current . Major + 1 , current . Minor ) ) ;
297
+ Assert . False ( isOSVersionAtLeast ( current . Major , current . Minor + 1 ) ) ;
298
+
299
+ Assert . Equal ( isCurrentOS , isOSVersionAtLeast ( current . Major , current . Minor ) ) ;
300
+
301
+ Assert . Equal ( isCurrentOS , isOSVersionAtLeast ( current . Major - 1 , current . Minor ) ) ;
302
+ Assert . Equal ( isCurrentOS , isOSVersionAtLeast ( current . Major , current . Minor - 1 ) ) ;
303
+ }
284
304
}
285
305
}
0 commit comments