Pos.FuncTests.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. using Xunit.Abstractions;
  2. namespace UnitTests_Parallelizable.LayoutTests;
  3. public class PosFuncTests (ITestOutputHelper output)
  4. {
  5. private readonly ITestOutputHelper _output = output;
  6. [Fact]
  7. public void PosFunc_Equal ()
  8. {
  9. Func<View, int> f1 = _ => 0;
  10. Func<View, int> f2 = _ => 0;
  11. Pos pos1 = Pos.Func (f1);
  12. Pos pos2 = Pos.Func (f1);
  13. Assert.Equal (pos1, pos2);
  14. f2 = _ => 1;
  15. pos2 = Pos.Func (f2);
  16. Assert.NotEqual (pos1, pos2);
  17. }
  18. [Fact]
  19. public void PosFunc_SetsValue ()
  20. {
  21. var text = "Test";
  22. Pos pos = Pos.Func (_ => text.Length);
  23. Assert.Equal ("PosFunc(4)", pos.ToString ());
  24. text = "New Test";
  25. Assert.Equal ("PosFunc(8)", pos.ToString ());
  26. text = "";
  27. Assert.Equal ("PosFunc(0)", pos.ToString ());
  28. }
  29. [Fact]
  30. public void PosFunc_Calculate_ReturnsCorrectValue ()
  31. {
  32. var pos = new PosFunc (_ => 10);
  33. int result = pos.Calculate (0, 100, null, Dimension.None);
  34. Assert.Equal (10, result);
  35. }
  36. [Fact]
  37. public void PosFunc_View_Equal ()
  38. {
  39. Func<View, int> f1 = v => v.Frame.X;
  40. Func<View, int> f2 = v => v.Frame.X;
  41. View view1 = new ();
  42. View view2 = new ();
  43. Pos pos1 = Pos.Func (f1, view1);
  44. Pos pos2 = Pos.Func (f1, view1);
  45. Assert.Equal (pos1, pos2);
  46. f2 = _ => 1;
  47. pos2 = Pos.Func (f2, view2);
  48. Assert.NotEqual (pos1, pos2);
  49. view2.X = 1;
  50. Assert.NotEqual (pos1, pos2);
  51. Assert.Equal (1, f2 (view2));
  52. }
  53. [Fact]
  54. public void PosFunc_View_SetsValue ()
  55. {
  56. View view = new () { Text = "Test" };
  57. Pos pos = Pos.Func (v => v.Text.Length, view);
  58. Assert.Equal ("PosFunc(4)", pos.ToString ());
  59. view.Text = "New Test";
  60. Assert.Equal ("PosFunc(8)", pos.ToString ());
  61. view.Text = "";
  62. Assert.Equal ("PosFunc(0)", pos.ToString ());
  63. }
  64. [Fact]
  65. public void PosFunc_View_Calculate_ReturnsCorrectValue ()
  66. {
  67. View view = new () { X = 10 };
  68. var pos = new PosFunc (v => v.Frame.X, view);
  69. int result = pos.Calculate (0, 100, view, Dimension.None);
  70. Assert.Equal (10, result);
  71. }
  72. }