@@ -585,6 +585,244 @@ public void AccordionStyle_WhenApplied_SetsCorrectProperties()
585
585
Assert . Equal ( autoScrollPosition , accordion . AutoScrollPosition ) ;
586
586
}
587
587
588
+ [ Fact ]
589
+ public void AnimationDuration_SetValue_Runtime_ShouldUpdateProperty ( )
590
+ {
591
+ var accordion = new SfAccordion { AnimationDuration = 200 } ;
592
+ Assert . Equal ( 200 , accordion . AnimationDuration ) ;
593
+ accordion . AnimationDuration = 500 ;
594
+ Assert . Equal ( 500 , accordion . AnimationDuration ) ;
595
+ }
596
+
597
+ [ Fact ]
598
+ public void AnimationEasing_SetValue_Runtime_ShouldUpdateProperty ( )
599
+ {
600
+ var accordion = new SfAccordion { AnimationEasing = ExpanderAnimationEasing . SinIn } ;
601
+ Assert . Equal ( ExpanderAnimationEasing . SinIn , accordion . AnimationEasing ) ;
602
+ accordion . AnimationEasing = ExpanderAnimationEasing . Linear ;
603
+ Assert . Equal ( ExpanderAnimationEasing . Linear , accordion . AnimationEasing ) ;
604
+ }
605
+
606
+ [ Fact ]
607
+ public void AutoScrollPosition_SetValue_Runtime_ShouldUpdateProperty ( )
608
+ {
609
+ var accordion = new SfAccordion { AutoScrollPosition = AccordionAutoScrollPosition . Top } ;
610
+ Assert . Equal ( AccordionAutoScrollPosition . Top , accordion . AutoScrollPosition ) ;
611
+ accordion . AutoScrollPosition = AccordionAutoScrollPosition . None ;
612
+ Assert . Equal ( AccordionAutoScrollPosition . None , accordion . AutoScrollPosition ) ;
613
+ }
614
+
615
+ [ Fact ]
616
+ public void HeaderIconPosition_SetValue_Runtime_ShouldUpdateProperty ( )
617
+ {
618
+ var accordion = new SfAccordion { HeaderIconPosition = ExpanderIconPosition . Start } ;
619
+ Assert . Equal ( ExpanderIconPosition . Start , accordion . HeaderIconPosition ) ;
620
+ accordion . HeaderIconPosition = ExpanderIconPosition . End ;
621
+ Assert . Equal ( ExpanderIconPosition . End , accordion . HeaderIconPosition ) ;
622
+ }
623
+
624
+ [ Fact ]
625
+ public void ExpandMode_SetValue_Runtime_ShouldUpdateProperty ( )
626
+ {
627
+ var accordion = new SfAccordion { ExpandMode = AccordionExpandMode . Multiple } ;
628
+ Assert . Equal ( AccordionExpandMode . Multiple , accordion . ExpandMode ) ;
629
+ accordion . ExpandMode = AccordionExpandMode . SingleOrNone ;
630
+ Assert . Equal ( AccordionExpandMode . SingleOrNone , accordion . ExpandMode ) ;
631
+ }
632
+
633
+ [ Fact ]
634
+ public void ItemSpacing_SetValue_Runtime_ShouldUpdateProperty ( )
635
+ {
636
+ var accordion = new SfAccordion { ItemSpacing = 100 } ;
637
+ Assert . Equal ( 100 , accordion . ItemSpacing ) ;
638
+ accordion . ItemSpacing = 200 ;
639
+ Assert . Equal ( 200 , accordion . ItemSpacing ) ;
640
+ }
641
+
642
+ [ Fact ]
643
+ public void HeaderBackground_SetValue_Runtime_ShouldUpdateProperty ( )
644
+ {
645
+ var accordion = new AccordionItem { HeaderBackground = Colors . Green } ;
646
+ Assert . Equal ( Colors . Green , accordion . HeaderBackground ) ;
647
+ accordion . HeaderBackground = Colors . Blue ;
648
+ Assert . Equal ( Colors . Blue , accordion . HeaderBackground ) ;
649
+ }
650
+
651
+ [ Fact ]
652
+ public void HeaderIconColor_SetValue_Runtime_ShouldUpdateProperty ( )
653
+ {
654
+ var accordion = new AccordionItem { HeaderIconColor = Colors . Green } ;
655
+ Assert . Equal ( Colors . Green , accordion . HeaderIconColor ) ;
656
+ accordion . HeaderIconColor = Colors . Blue ;
657
+ Assert . Equal ( Colors . Blue , accordion . HeaderIconColor ) ;
658
+ }
659
+
660
+ [ Fact ]
661
+ public void IsExpanded_SetValue_Runtime_ShouldUpdateProperty ( )
662
+ {
663
+ var accordion = new AccordionItem { IsExpanded = true } ;
664
+ Assert . True ( accordion . IsExpanded ) ;
665
+ accordion . IsExpanded = false ;
666
+ Assert . False ( accordion . IsExpanded ) ;
667
+ }
668
+
669
+ [ Fact ]
670
+ public void AccordionItemStyle_WhenApplied_SetsCorrectProperties ( )
671
+ {
672
+ Color color = new Color ( ) ;
673
+ color = Color . FromRgba ( "#233434" ) ;
674
+ Color color2 = new Color ( ) ;
675
+ color2 = Color . FromRgba ( "#FF0000" ) ;
676
+ var style = new Style ( typeof ( Syncfusion . Maui . Toolkit . Accordion . AccordionItem ) ) ;
677
+ style . Setters . Add ( new Setter
678
+ {
679
+ Property = Syncfusion . Maui . Toolkit . Accordion . AccordionItem . HeaderBackgroundProperty ,
680
+ Value = color
681
+ } ) ;
682
+ style . Setters . Add ( new Setter
683
+ {
684
+ Property = Syncfusion . Maui . Toolkit . Accordion . AccordionItem . HeaderIconColorProperty ,
685
+ Value = color2
686
+ } ) ;
687
+ style . Setters . Add ( new Setter
688
+ {
689
+ Property = Syncfusion . Maui . Toolkit . Accordion . AccordionItem . IsExpandedProperty ,
690
+ Value = true
691
+ } ) ;
692
+ var resources = new ResourceDictionary ( ) ;
693
+ resources . Add ( "AccordionStyle" , style ) ;
694
+ Application . Current = new Application ( ) ;
695
+ Application . Current . Resources = resources ;
696
+ var accordion = new Syncfusion . Maui . Toolkit . Accordion . AccordionItem ( ) ;
697
+ // Act
698
+ accordion . Style = ( Style ) Application . Current . Resources [ "AccordionStyle" ] ;
699
+ Assert . Equal ( color , accordion . HeaderBackground ) ;
700
+ Assert . Equal ( color2 , accordion . HeaderIconColor ) ;
701
+ Assert . True ( accordion . IsExpanded ) ;
702
+ }
703
+
704
+ [ Fact ]
705
+ public void SfAccordion_ShouldBeAddedToStackLayout ( )
706
+ {
707
+ // Arrange
708
+ var stackLayout = new StackLayout ( ) ;
709
+ var accordion = new SfAccordion
710
+ {
711
+ ExpandMode = AccordionExpandMode . Single
712
+ } ;
713
+ var label = new Label
714
+ {
715
+ Text = "Accordion Content" ,
716
+ } ;
717
+ var accordionItem = new AccordionItem
718
+ {
719
+ Header = new Label { Text = "Accordion Header" , AutomationId = "accordionHeader" } ,
720
+ Content = label
721
+ } ;
722
+ // Act
723
+ accordion . Items . Add ( accordionItem ) ;
724
+ stackLayout . Children . Add ( accordion ) ;
725
+ // Assert
726
+ Assert . Contains ( accordion , stackLayout . Children ) ;
727
+ }
728
+
729
+ [ Fact ]
730
+ public void SfAccordion_ShouldBeAddedToAbsoluteLayout ( )
731
+ {
732
+ // Arrange
733
+ var absoluteLayout = new StackLayout ( ) ;
734
+ var accordion = new SfAccordion
735
+ {
736
+ ExpandMode = AccordionExpandMode . Single
737
+ } ;
738
+ var label = new Label
739
+ {
740
+ Text = "Accordion Content" ,
741
+ } ;
742
+ var accordionItem = new AccordionItem
743
+ {
744
+ Header = new Label { Text = "Accordion Header" , AutomationId = "accordionHeader" } ,
745
+ Content = label
746
+ } ;
747
+ // Act
748
+ accordion . Items . Add ( accordionItem ) ;
749
+ absoluteLayout . Children . Add ( accordion ) ;
750
+ // Assert
751
+ Assert . Contains ( accordion , absoluteLayout . Children ) ;
752
+ }
753
+ [ Fact ]
754
+ public void SfAccordion_ShouldBeAddedToHorizontalStackLayout ( )
755
+ {
756
+ // Arrange
757
+ var stackLayout = new HorizontalStackLayout ( ) ;
758
+ var accordion = new SfAccordion
759
+ {
760
+ ExpandMode = AccordionExpandMode . Single
761
+ } ;
762
+ var label = new Label
763
+ {
764
+ Text = "Accordion Content" ,
765
+ } ;
766
+ var accordionItem = new AccordionItem
767
+ {
768
+ Header = new Label { Text = "Accordion Header" , AutomationId = "accordionHeader" } ,
769
+ Content = label
770
+ } ;
771
+ // Act
772
+ accordion . Items . Add ( accordionItem ) ;
773
+ stackLayout . Children . Add ( accordion ) ;
774
+ // Assert
775
+ Assert . Contains ( accordion , stackLayout . Children ) ;
776
+ }
777
+ [ Fact ]
778
+ public void SfAccordion_ShouldBeAddedToFlexLayout ( )
779
+ {
780
+ // Arrange
781
+ var flexLayout = new FlexLayout ( ) ;
782
+ var accordion = new SfAccordion
783
+ {
784
+ ExpandMode = AccordionExpandMode . Single
785
+ } ;
786
+ var label = new Label
787
+ {
788
+ Text = "Accordion Content" ,
789
+ } ;
790
+ var accordionItem = new AccordionItem
791
+ {
792
+ Header = new Label { Text = "Accordion Header" , AutomationId = "accordionHeader" } ,
793
+ Content = label
794
+ } ;
795
+ // Act
796
+ accordion . Items . Add ( accordionItem ) ;
797
+ flexLayout . Children . Add ( accordion ) ;
798
+ // Assert
799
+ Assert . Contains ( accordion , flexLayout . Children ) ;
800
+ }
801
+ [ Fact ]
802
+ public void SfAccordion_ShouldBeAddedToGrid ( )
803
+ {
804
+ // Arrange
805
+ var grid = new Grid ( ) ;
806
+ var accordion = new SfAccordion
807
+ {
808
+ ExpandMode = AccordionExpandMode . Single
809
+ } ;
810
+ var label = new Label
811
+ {
812
+ Text = "Accordion Content" ,
813
+ } ;
814
+ var accordionItem = new AccordionItem
815
+ {
816
+ Header = new Label { Text = "Accordion Header" , AutomationId = "accordionHeader" } ,
817
+ Content = label
818
+ } ;
819
+ // Act
820
+ accordion . Items . Add ( accordionItem ) ;
821
+ grid . Children . Add ( accordion ) ;
822
+ // Assert
823
+ Assert . Contains ( accordion , grid . Children ) ;
824
+ }
825
+
588
826
#endregion
589
827
590
828
#region Methods
@@ -605,6 +843,8 @@ public void UpdateAccordionItems_SingleExpandMode_ExpandsFirstItem(bool initialS
605
843
ExpandMode = AccordionExpandMode . Single
606
844
} ;
607
845
846
+ var accordionItem = new AccordionItem ( ) ;
847
+ accordion . IsViewLoaded = true ;
608
848
accordion . UpdateAccordionItemsBasedOnExpandModes ( false ) ;
609
849
Assert . Equal ( expectedState , accordion . Items [ 0 ] . _accordionItemView ? . IsExpanded ) ;
610
850
}
@@ -631,6 +871,8 @@ public void UpdateAccordionItemsBasedOnExpandModes_MultipleItemsExpanded(
631
871
ExpandMode = AccordionExpandMode . Single
632
872
} ;
633
873
874
+ var accordionItem = new AccordionItem ( ) ;
875
+ accordion . IsViewLoaded = true ;
634
876
accordion . UpdateAccordionItemsBasedOnExpandModes ( false ) ;
635
877
Assert . Equal ( firstItemExpectedState , accordion . Items [ 0 ] . _accordionItemView ? . IsExpanded ) ;
636
878
Assert . Equal ( secondItemExpectedState , accordion . Items [ 1 ] . _accordionItemView ? . IsExpanded ) ;
@@ -945,6 +1187,8 @@ public void OnBindingContextChanged_SetsContentBindingContext_WhenHeaderIsNotNul
945
1187
public void OnHeaderPropertyChanged_SetsAccordionItemViewHeader_WhenHeaderIsNotNull ( )
946
1188
{
947
1189
var accordionItem = new AccordionItem ( ) ;
1190
+ var accordion = new SfAccordion ( ) ;
1191
+ accordion . IsViewLoaded = true ;
948
1192
var contentView = new ContentView ( ) ;
949
1193
var accordionItemView = new AccordionItemView ( ) ;
950
1194
accordionItem . _accordionItemView = accordionItemView ;
@@ -969,7 +1213,8 @@ public void OnContentPropertyChanged_SetsContentVisibilityAndViewContent_WhenCon
969
1213
{
970
1214
IsExpanded = true
971
1215
} ;
972
-
1216
+ var accordion = new SfAccordion ( ) ;
1217
+ accordion . IsViewLoaded = true ;
973
1218
var contentView = new ContentView ( ) ;
974
1219
var accordionItemView = new AccordionItemView ( ) ;
975
1220
accordionItem . _accordionItemView = accordionItemView ;
@@ -987,6 +1232,8 @@ public void OnContentPropertyChanged_SetsContentVisibilityAndViewContent_WhenCon
987
1232
IsExpanded = true
988
1233
} ;
989
1234
1235
+ var accordion = new SfAccordion ( ) ;
1236
+ accordion . IsViewLoaded = true ;
990
1237
// Create a new AccordionItemView and set it to _accordionItemView
991
1238
var accordionItemView = new AccordionItemView ( ) ;
992
1239
accordionItem . _accordionItemView = accordionItemView ;
@@ -1016,6 +1263,8 @@ public void OnContentPropertyChanged_SetsContentVisibilityAndViewContent_WhenCon
1016
1263
public void OnHeaderBackgroundPropertyChanged_UpdatesHeaderBackground ( string brushColor )
1017
1264
{
1018
1265
var accordionItem = new AccordionItem ( ) ;
1266
+ var accordion = new SfAccordion ( ) ;
1267
+ accordion . IsViewLoaded = true ;
1019
1268
var accordionItemView = new AccordionItemView ( ) ;
1020
1269
accordionItem . _accordionItemView = accordionItemView ;
1021
1270
var newBrush = new SolidColorBrush ( Color . FromArgb ( brushColor ) ) ;
@@ -1030,6 +1279,8 @@ public void OnHeaderBackgroundPropertyChanged_UpdatesHeaderBackground(string bru
1030
1279
public void OnHeaderIconColorPropertyChanged_UpdatesHeaderIconColor ( string colorHex )
1031
1280
{
1032
1281
var accordionItem = new AccordionItem ( ) ;
1282
+ var accordion = new SfAccordion ( ) ;
1283
+ accordion . IsViewLoaded = true ;
1033
1284
var accordionItemView = new AccordionItemView ( ) ;
1034
1285
accordionItem . _accordionItemView = accordionItemView ;
1035
1286
var newColor = Color . FromArgb ( colorHex ) ;
0 commit comments