VisualNodeTests.cs 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. using System;
  2. using Avalonia.Rendering.SceneGraph;
  3. using Avalonia.VisualTree;
  4. using Moq;
  5. using Xunit;
  6. namespace Avalonia.Visuals.UnitTests.Rendering.SceneGraph
  7. {
  8. public class VisualNodeTests
  9. {
  10. [Fact]
  11. public void Empty_Children_Collections_Should_Be_Shared()
  12. {
  13. var node1 = new VisualNode(Mock.Of<IVisual>(), null);
  14. var node2 = new VisualNode(Mock.Of<IVisual>(), null);
  15. Assert.Same(node1.Children, node2.Children);
  16. }
  17. [Fact]
  18. public void Adding_Child_Should_Create_Collection()
  19. {
  20. var node = new VisualNode(Mock.Of<IVisual>(), null);
  21. var collection = node.Children;
  22. node.AddChild(Mock.Of<IVisualNode>());
  23. Assert.NotSame(collection, node.Children);
  24. }
  25. [Fact]
  26. public void Empty_DrawOperations_Collections_Should_Be_Shared()
  27. {
  28. var node1 = new VisualNode(Mock.Of<IVisual>(), null);
  29. var node2 = new VisualNode(Mock.Of<IVisual>(), null);
  30. Assert.Same(node1.DrawOperations, node2.DrawOperations);
  31. }
  32. [Fact]
  33. public void Adding_DrawOperation_Should_Create_Collection()
  34. {
  35. var node = new VisualNode(Mock.Of<IVisual>(), null);
  36. var collection = node.DrawOperations;
  37. node.AddDrawOperation(Mock.Of<IDrawOperation>());
  38. Assert.NotSame(collection, node.DrawOperations);
  39. }
  40. [Fact]
  41. public void Cloned_Nodes_Should_Share_DrawOperations_Collection()
  42. {
  43. var node1 = new VisualNode(Mock.Of<IVisual>(), null);
  44. node1.AddDrawOperation(Mock.Of<IDrawOperation>());
  45. var node2 = node1.Clone(null);
  46. Assert.Same(node1.DrawOperations, node2.DrawOperations);
  47. }
  48. [Fact]
  49. public void Adding_DrawOperation_To_Cloned_Node_Should_Create_New_Collection()
  50. {
  51. var node1 = new VisualNode(Mock.Of<IVisual>(), null);
  52. var operation1 = Mock.Of<IDrawOperation>();
  53. node1.AddDrawOperation(operation1);
  54. var node2 = node1.Clone(null);
  55. var operation2 = Mock.Of<IDrawOperation>();
  56. node2.ReplaceDrawOperation(0, operation2);
  57. Assert.NotSame(node1.DrawOperations, node2.DrawOperations);
  58. Assert.Equal(1, node1.DrawOperations.Count);
  59. Assert.Equal(1, node2.DrawOperations.Count);
  60. Assert.Same(operation1, node1.DrawOperations[0]);
  61. Assert.Same(operation2, node2.DrawOperations[0]);
  62. }
  63. }
  64. }