Skip to content

Commit d84bc55

Browse files
committed
Adding UnitTest cases
1 parent 72a6a24 commit d84bc55

File tree

3 files changed

+460
-3
lines changed

3 files changed

+460
-3
lines changed

maui/tests/Syncfusion.Maui.Toolkit.UnitTest/Layout/SfAccordionUnitTests.cs

Lines changed: 252 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -585,6 +585,244 @@ public void AccordionStyle_WhenApplied_SetsCorrectProperties()
585585
Assert.Equal(autoScrollPosition, accordion.AutoScrollPosition);
586586
}
587587

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+
588826
#endregion
589827

590828
#region Methods
@@ -605,6 +843,8 @@ public void UpdateAccordionItems_SingleExpandMode_ExpandsFirstItem(bool initialS
605843
ExpandMode = AccordionExpandMode.Single
606844
};
607845

846+
var accordionItem = new AccordionItem();
847+
accordion.IsViewLoaded = true;
608848
accordion.UpdateAccordionItemsBasedOnExpandModes(false);
609849
Assert.Equal(expectedState, accordion.Items[0]._accordionItemView?.IsExpanded);
610850
}
@@ -631,6 +871,8 @@ public void UpdateAccordionItemsBasedOnExpandModes_MultipleItemsExpanded(
631871
ExpandMode = AccordionExpandMode.Single
632872
};
633873

874+
var accordionItem = new AccordionItem();
875+
accordion.IsViewLoaded = true;
634876
accordion.UpdateAccordionItemsBasedOnExpandModes(false);
635877
Assert.Equal(firstItemExpectedState, accordion.Items[0]._accordionItemView?.IsExpanded);
636878
Assert.Equal(secondItemExpectedState, accordion.Items[1]._accordionItemView?.IsExpanded);
@@ -945,6 +1187,8 @@ public void OnBindingContextChanged_SetsContentBindingContext_WhenHeaderIsNotNul
9451187
public void OnHeaderPropertyChanged_SetsAccordionItemViewHeader_WhenHeaderIsNotNull()
9461188
{
9471189
var accordionItem = new AccordionItem();
1190+
var accordion = new SfAccordion();
1191+
accordion.IsViewLoaded = true;
9481192
var contentView = new ContentView();
9491193
var accordionItemView = new AccordionItemView();
9501194
accordionItem._accordionItemView = accordionItemView;
@@ -969,7 +1213,8 @@ public void OnContentPropertyChanged_SetsContentVisibilityAndViewContent_WhenCon
9691213
{
9701214
IsExpanded = true
9711215
};
972-
1216+
var accordion = new SfAccordion();
1217+
accordion.IsViewLoaded = true;
9731218
var contentView = new ContentView();
9741219
var accordionItemView = new AccordionItemView();
9751220
accordionItem._accordionItemView = accordionItemView;
@@ -987,6 +1232,8 @@ public void OnContentPropertyChanged_SetsContentVisibilityAndViewContent_WhenCon
9871232
IsExpanded = true
9881233
};
9891234

1235+
var accordion = new SfAccordion();
1236+
accordion.IsViewLoaded = true;
9901237
// Create a new AccordionItemView and set it to _accordionItemView
9911238
var accordionItemView = new AccordionItemView();
9921239
accordionItem._accordionItemView = accordionItemView;
@@ -1016,6 +1263,8 @@ public void OnContentPropertyChanged_SetsContentVisibilityAndViewContent_WhenCon
10161263
public void OnHeaderBackgroundPropertyChanged_UpdatesHeaderBackground(string brushColor)
10171264
{
10181265
var accordionItem = new AccordionItem();
1266+
var accordion = new SfAccordion();
1267+
accordion.IsViewLoaded = true;
10191268
var accordionItemView = new AccordionItemView();
10201269
accordionItem._accordionItemView = accordionItemView;
10211270
var newBrush = new SolidColorBrush(Color.FromArgb(brushColor));
@@ -1030,6 +1279,8 @@ public void OnHeaderBackgroundPropertyChanged_UpdatesHeaderBackground(string bru
10301279
public void OnHeaderIconColorPropertyChanged_UpdatesHeaderIconColor(string colorHex)
10311280
{
10321281
var accordionItem = new AccordionItem();
1282+
var accordion = new SfAccordion();
1283+
accordion.IsViewLoaded = true;
10331284
var accordionItemView = new AccordionItemView();
10341285
accordionItem._accordionItemView = accordionItemView;
10351286
var newColor = Color.FromArgb(colorHex);

0 commit comments

Comments
 (0)