ReversibleStackPanelTests.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using Avalonia.UnitTests;
  2. using Xunit;
  3. namespace Avalonia.Controls.UnitTests
  4. {
  5. public class ReversibleStackPanelTests : ScopedTestBase
  6. {
  7. [Fact]
  8. public void Arranges_In_Reverse_Order()
  9. {
  10. var target = new ReversibleStackPanel
  11. {
  12. ReverseOrder = true,
  13. Children =
  14. {
  15. new Border { Height = 30, Width = 10 },
  16. new Border { Height = 50 },
  17. }
  18. };
  19. target.Measure(Size.Infinity);
  20. target.Arrange(new Rect(target.DesiredSize));
  21. Assert.Equal(new Rect(0, 50, 10, 30), target.Children[0].Bounds);
  22. Assert.Equal(new Rect(0, 0, 10, 50), target.Children[1].Bounds);
  23. }
  24. [Fact]
  25. public void Invalidates_Arrange_On_Reverse_Order_Change()
  26. {
  27. var target = new ReversibleStackPanel
  28. {
  29. Children =
  30. {
  31. new Border(),
  32. new Border(),
  33. }
  34. };
  35. target.Measure(Size.Infinity);
  36. target.Arrange(new Rect(target.DesiredSize));
  37. target.ReverseOrder = true;
  38. Assert.True(target.IsMeasureValid);
  39. Assert.False(target.IsArrangeValid);
  40. }
  41. }
  42. }