TextBlockTests.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. using System;
  2. using Avalonia.Controls.Documents;
  3. using Avalonia.Data;
  4. using Avalonia.Media;
  5. using Avalonia.Rendering;
  6. using Avalonia.UnitTests;
  7. using Moq;
  8. using Xunit;
  9. namespace Avalonia.Controls.UnitTests
  10. {
  11. public class TextBlockTests
  12. {
  13. [Fact]
  14. public void DefaultBindingMode_Should_Be_OneWay()
  15. {
  16. Assert.Equal(
  17. BindingMode.OneWay,
  18. TextBlock.TextProperty.GetMetadata(typeof(TextBlock)).DefaultBindingMode);
  19. }
  20. [Fact]
  21. public void Default_Text_Value_Should_Be_EmptyString()
  22. {
  23. var textBlock = new TextBlock();
  24. Assert.Equal(
  25. "",
  26. textBlock.Text);
  27. }
  28. [Fact]
  29. public void Changing_Background_Brush_Color_Should_Invalidate_Visual()
  30. {
  31. var target = new TextBlock()
  32. {
  33. Background = new SolidColorBrush(Colors.Red),
  34. };
  35. var root = new TestRoot(target);
  36. var renderer = Mock.Get(root.Renderer);
  37. renderer.Invocations.Clear();
  38. ((SolidColorBrush)target.Background).Color = Colors.Green;
  39. renderer.Verify(x => x.AddDirty(target), Times.Once);
  40. }
  41. [Fact]
  42. public void Changing_Foreground_Brush_Color_Should_Invalidate_Visual()
  43. {
  44. var target = new TextBlock()
  45. {
  46. Foreground = new SolidColorBrush(Colors.Red),
  47. };
  48. var root = new TestRoot(target);
  49. var renderer = Mock.Get(root.Renderer);
  50. renderer.Invocations.Clear();
  51. ((SolidColorBrush)target.Foreground).Color = Colors.Green;
  52. renderer.Verify(x => x.AddDirty(target), Times.Once);
  53. }
  54. [Fact]
  55. public void Changing_InlinesCollection_Should_Invalidate_Measure()
  56. {
  57. using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
  58. {
  59. var target = new TextBlock();
  60. target.Measure(Size.Infinity);
  61. Assert.True(target.IsMeasureValid);
  62. target.Inlines.Add(new Run("Hello"));
  63. Assert.False(target.IsMeasureValid);
  64. target.Measure(Size.Infinity);
  65. Assert.True(target.IsMeasureValid);
  66. }
  67. }
  68. [Fact]
  69. public void Changing_Inlines_Properties_Should_Invalidate_Measure()
  70. {
  71. using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
  72. {
  73. var target = new TextBlock();
  74. var inline = new Run("Hello");
  75. target.Inlines.Add(inline);
  76. target.Measure(Size.Infinity);
  77. Assert.True(target.IsMeasureValid);
  78. inline.Text = "1337";
  79. Assert.False(target.IsMeasureValid);
  80. }
  81. }
  82. }
  83. }