LeftDockerTests.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. namespace Perspex.Controls.UnitTests.DockPanelTests
  2. {
  3. using System.Collections.Generic;
  4. using Layout;
  5. using Moq;
  6. using Xunit;
  7. public class LeftDockerTests
  8. {
  9. private readonly ILayoutable _layoutable;
  10. public LeftDockerTests()
  11. {
  12. var layoutableMock = new Mock<ILayoutable>();
  13. layoutableMock.Setup(l => l.DesiredSize).Returns(new Size(40, 30));
  14. _layoutable = layoutableMock.Object;
  15. }
  16. [Theory]
  17. [MemberData("Source")]
  18. public void Dock(Margins margins, Rect expectedRect)
  19. {
  20. var sut = new LeftDocker(new Size(100, 50));
  21. var actualRect = sut.GetDockingRect(_layoutable.DesiredSize, margins, new Alignments(Alignment.Middle, Alignment.Stretch));
  22. Assert.Equal(expectedRect, actualRect);
  23. }
  24. // ReSharper disable once UnusedMember.Global
  25. public static IEnumerable<object[]> Source => new[]
  26. {
  27. new object[] { new Margins(), new Rect(0, 0, 40, 50)},
  28. new object[] { new Margins { VerticalMargin = new Segment(15, 0) }, new Rect(0, 15, 40, 35)},
  29. new object[] { new Margins { VerticalMargin = new Segment(0, 15) }, new Rect(0, 0, 40, 35)},
  30. new object[] { new Margins { VerticalMargin = new Segment(20, 15) }, new Rect(0, 20, 40, 15)},
  31. };
  32. }
  33. }