33
44namespace CommunityToolkit . Maui . UnitTests . Extensions ;
55
6+ #pragma warning disable CA1416
67public class AppBuilderExtensionsTests : BaseTest
78{
89 [ Fact ]
910 public void ConfirmOptionsDefaultValue ( )
1011 {
12+ // Arrange
13+ bool isAndroidDialogFragmentServiceInitialized = false ;
14+ Core . AppBuilderExtensions . ShouldUseStatusBarBehaviorOnAndroidModalPageOptionCompleted += HandleShouldUseStatusBarBehaviorOnAndroidModalPageOptionCompleted ;
15+
1116 // Assert
1217 Assert . True ( Core . Options . ShouldUseStatusBarBehaviorOnAndroidModalPage ) ;
1318 Assert . False ( Options . ShouldEnableSnackbarOnWindows ) ;
1419 Assert . False ( Options . ShouldSuppressExceptionsInAnimations ) ;
1520 Assert . False ( Options . ShouldSuppressExceptionsInBehaviors ) ;
1621 Assert . False ( Options . ShouldSuppressExceptionsInConverters ) ;
17- }
18-
19- [ Fact ]
22+ Assert . False ( isAndroidDialogFragmentServiceInitialized ) ;
23+
24+ Core . AppBuilderExtensions . ShouldUseStatusBarBehaviorOnAndroidModalPageOptionCompleted -= HandleShouldUseStatusBarBehaviorOnAndroidModalPageOptionCompleted ;
25+
26+ void HandleShouldUseStatusBarBehaviorOnAndroidModalPageOptionCompleted ( object ? sender , EventArgs e )
27+ {
28+ Core . AppBuilderExtensions . ShouldUseStatusBarBehaviorOnAndroidModalPageOptionCompleted -= HandleShouldUseStatusBarBehaviorOnAndroidModalPageOptionCompleted ;
29+ isAndroidDialogFragmentServiceInitialized = true ;
30+ }
31+ }
32+
33+ [ Fact ]
34+ public void ConfirmDefaultValueRemainWhenOptionsNull ( )
35+ {
36+ // Arrange
37+ var builder = MauiApp . CreateBuilder ( ) ;
38+ bool isAndroidDialogFragmentServiceInitialized = false ;
39+
40+ Core . AppBuilderExtensions . ShouldUseStatusBarBehaviorOnAndroidModalPageOptionCompleted += HandleShouldUseStatusBarBehaviorOnAndroidModalPageOptionCompleted ;
41+
42+ // Act
43+ builder . UseMauiCommunityToolkit ( null ) ;
44+
45+ // Assert
46+ Assert . True ( Core . Options . ShouldUseStatusBarBehaviorOnAndroidModalPage ) ;
47+ Assert . False ( Options . ShouldEnableSnackbarOnWindows ) ;
48+ Assert . False ( Options . ShouldSuppressExceptionsInAnimations ) ;
49+ Assert . False ( Options . ShouldSuppressExceptionsInBehaviors ) ;
50+ Assert . False ( Options . ShouldSuppressExceptionsInConverters ) ;
51+ Assert . True ( isAndroidDialogFragmentServiceInitialized ) ;
52+
53+ void HandleShouldUseStatusBarBehaviorOnAndroidModalPageOptionCompleted ( object ? sender , EventArgs e )
54+ {
55+ Core . AppBuilderExtensions . ShouldUseStatusBarBehaviorOnAndroidModalPageOptionCompleted -= HandleShouldUseStatusBarBehaviorOnAndroidModalPageOptionCompleted ;
56+ isAndroidDialogFragmentServiceInitialized = true ;
57+ }
58+ }
59+
60+
61+ [ Fact ]
2062 public void UseMauiCommunityToolkit_ShouldRegisterServices ( )
2163 {
2264 // Arrange
2365 var builder = MauiApp . CreateBuilder ( ) ;
66+ bool isAndroidDialogFragmentServiceInitialized = false ;
67+ Core . AppBuilderExtensions . ShouldUseStatusBarBehaviorOnAndroidModalPageOptionCompleted += HandleShouldUseStatusBarBehaviorOnAndroidModalPageOptionCompleted ;
2468
25- // Act
26- #pragma warning disable CA1416
27- builder . UseMauiCommunityToolkit ( ) ;
28- #pragma warning restore CA1416
69+ // Act
70+ builder . UseMauiCommunityToolkit ( ) ;
2971
3072 // Assert
3173 var serviceProvider = builder . Services . BuildServiceProvider ( ) ;
3274 Assert . NotNull ( serviceProvider . GetService < IPopupService > ( ) ) ;
33- }
75+ Assert . True ( isAndroidDialogFragmentServiceInitialized ) ;
76+
77+ void HandleShouldUseStatusBarBehaviorOnAndroidModalPageOptionCompleted ( object ? sender , EventArgs e )
78+ {
79+ Core . AppBuilderExtensions . ShouldUseStatusBarBehaviorOnAndroidModalPageOptionCompleted -= HandleShouldUseStatusBarBehaviorOnAndroidModalPageOptionCompleted ;
80+ isAndroidDialogFragmentServiceInitialized = true ;
81+ }
82+ }
3483
3584 [ Fact ]
3685 public void UseMauiCommunityToolkit_ShouldAssignValues ( )
3786 {
3887 // Arrange
3988 var builder = MauiApp . CreateBuilder ( ) ;
89+ bool isAndroidDialogFragmentServiceInitialized = false ;
90+ Core . AppBuilderExtensions . ShouldUseStatusBarBehaviorOnAndroidModalPageOptionCompleted += HandleShouldUseStatusBarBehaviorOnAndroidModalPageOptionCompleted ;
4091
41- // Act
42- #pragma warning disable CA1416
43- builder . UseMauiCommunityToolkit ( options =>
92+ // Act
93+ builder . UseMauiCommunityToolkit ( options =>
4494 {
4595 options . SetShouldEnableSnackbarOnWindows ( ! Options . ShouldEnableSnackbarOnWindows ) ;
46- options . SetShouldUseStatusBarBehaviorOnAndroidModalPage ( ! Core . Options . ShouldUseStatusBarBehaviorOnAndroidModalPage ) ;
4796 options . SetShouldSuppressExceptionsInAnimations ( ! Options . ShouldSuppressExceptionsInAnimations ) ;
4897 options . SetShouldSuppressExceptionsInBehaviors ( ! Options . ShouldSuppressExceptionsInBehaviors ) ;
4998 options . SetShouldSuppressExceptionsInConverters ( ! Options . ShouldSuppressExceptionsInConverters ) ;
99+ options . SetShouldUseStatusBarBehaviorOnAndroidModalPage ( ! Core . Options . ShouldUseStatusBarBehaviorOnAndroidModalPage ) ;
50100 } ) ;
51- #pragma warning restore CA1416
52101
53102 // Assert
54103 Assert . False ( Core . Options . ShouldUseStatusBarBehaviorOnAndroidModalPage ) ;
55104 Assert . True ( Options . ShouldEnableSnackbarOnWindows ) ;
56105 Assert . True ( Options . ShouldSuppressExceptionsInAnimations ) ;
57106 Assert . True ( Options . ShouldSuppressExceptionsInBehaviors ) ;
58107 Assert . True ( Options . ShouldSuppressExceptionsInConverters ) ;
59- }
60- }
108+ Assert . False ( isAndroidDialogFragmentServiceInitialized ) ;
109+
110+ Core . AppBuilderExtensions . ShouldUseStatusBarBehaviorOnAndroidModalPageOptionCompleted -= HandleShouldUseStatusBarBehaviorOnAndroidModalPageOptionCompleted ;
111+
112+ void HandleShouldUseStatusBarBehaviorOnAndroidModalPageOptionCompleted ( object ? sender , EventArgs e )
113+ {
114+ Core . AppBuilderExtensions . ShouldUseStatusBarBehaviorOnAndroidModalPageOptionCompleted -= HandleShouldUseStatusBarBehaviorOnAndroidModalPageOptionCompleted ;
115+ isAndroidDialogFragmentServiceInitialized = true ;
116+ }
117+ }
118+ }
119+ #pragma warning restore CA1416
0 commit comments