StylesTests.cs 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. // Copyright (c) The Avalonia Project. All rights reserved.
  2. // Licensed under the MIT license. See licence.md file in the project root for full license information.
  3. using System;
  4. using Xunit;
  5. namespace Avalonia.Styling.UnitTests
  6. {
  7. public class StylesTests
  8. {
  9. [Fact]
  10. public void Adding_Style_With_Resources_Should_Raise_ResourceChanged()
  11. {
  12. var style = new Style
  13. {
  14. Resources = { { "foo", "bar" } },
  15. };
  16. var target = new Styles();
  17. var raised = false;
  18. target.ResourcesChanged += (_, __) => raised = true;
  19. target.Add(style);
  20. Assert.True(raised);
  21. }
  22. [Fact]
  23. public void Removing_Style_With_Resources_Should_Raise_ResourceChanged()
  24. {
  25. var target = new Styles
  26. {
  27. new Style
  28. {
  29. Resources = { { "foo", "bar" } },
  30. }
  31. };
  32. var raised = false;
  33. target.ResourcesChanged += (_, __) => raised = true;
  34. target.Clear();
  35. Assert.True(raised);
  36. }
  37. [Fact]
  38. public void Adding_Style_Without_Resources_Should_Not_Raise_ResourceChanged()
  39. {
  40. var style = new Style();
  41. var target = new Styles();
  42. var raised = false;
  43. target.ResourcesChanged += (_, __) => raised = true;
  44. target.Add(style);
  45. Assert.False(raised);
  46. }
  47. [Fact]
  48. public void Adding_Resource_Should_Raise_Child_ResourceChanged()
  49. {
  50. Style child;
  51. var target = new Styles
  52. {
  53. (child = new Style()),
  54. };
  55. var raised = false;
  56. child.ResourcesChanged += (_, __) => raised = true;
  57. target.Resources.Add("foo", "bar");
  58. Assert.True(raised);
  59. }
  60. [Fact]
  61. public void Adding_Resource_To_Younger_Sibling_Style_Should_Raise_ResourceChanged()
  62. {
  63. Style style1;
  64. Style style2;
  65. var target = new Styles
  66. {
  67. (style1 = new Style()),
  68. (style2 = new Style()),
  69. };
  70. var raised = false;
  71. style2.ResourcesChanged += (_, __) => raised = true;
  72. style1.Resources.Add("foo", "bar");
  73. Assert.True(raised);
  74. }
  75. [Fact]
  76. public void Adding_Resource_To_Older_Sibling_Style_Should_Raise_ResourceChanged()
  77. {
  78. Style style1;
  79. Style style2;
  80. var target = new Styles
  81. {
  82. (style1 = new Style()),
  83. (style2 = new Style()),
  84. };
  85. var raised = false;
  86. style1.ResourcesChanged += (_, __) => raised = true;
  87. style2.Resources.Add("foo", "bar");
  88. Assert.False(raised);
  89. }
  90. }
  91. }