SelectorTests_Name.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using Avalonia.Controls;
  2. using Avalonia.Styling;
  3. using Moq;
  4. using Xunit;
  5. namespace Avalonia.Base.UnitTests.Styling
  6. {
  7. public class SelectorTests_Name
  8. {
  9. [Fact]
  10. public void Name_Matches_Control_With_Correct_Name()
  11. {
  12. var control = new Control1 { Name = "foo" };
  13. var target = default(Selector).Name("foo");
  14. Assert.Equal(SelectorMatchResult.AlwaysThisInstance, target.Match(control).Result);
  15. }
  16. [Fact]
  17. public void Name_Doesnt_Match_Control_Of_Wrong_Name()
  18. {
  19. var control = new Control1 { Name = "foo" };
  20. var target = default(Selector).Name("bar");
  21. Assert.Equal(SelectorMatchResult.NeverThisInstance, target.Match(control).Result);
  22. }
  23. [Fact]
  24. public void Name_Doesnt_Match_Control_With_TemplatedParent()
  25. {
  26. var control = new Control1 { TemplatedParent = new Mock<ITemplatedControl>().Object };
  27. var target = default(Selector).Name("foo");
  28. var activator = target.Match(control);
  29. Assert.Equal(SelectorMatchResult.NeverThisInstance, target.Match(control).Result);
  30. }
  31. [Fact]
  32. public void Name_Has_Correct_String_Representation()
  33. {
  34. var target = default(Selector).Name("foo");
  35. Assert.Equal("#foo", target.ToString());
  36. }
  37. [Fact]
  38. public void Type_And_Name_Has_Correct_String_Representation()
  39. {
  40. var target = default(Selector).OfType<Control1>().Name("foo");
  41. Assert.Equal("Control1#foo", target.ToString());
  42. }
  43. public class Control1 : Control
  44. {
  45. }
  46. }
  47. }