ExpressionNodeBuilderTests.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // Copyright (c) The Perspex 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.Collections.Generic;
  4. using Perspex.Markup.Binding;
  5. using Xunit;
  6. namespace Perspex.Markup.UnitTests.Binding
  7. {
  8. public class ExpressionNodeBuilderTests
  9. {
  10. [Fact]
  11. public void Should_Build_Single_Property()
  12. {
  13. var result = ToList(ExpressionNodeBuilder.Build("Foo"));
  14. Assert.Equal(1, result.Count);
  15. Assert.IsType<PropertyAccessorNode>(result[0]);
  16. }
  17. [Fact]
  18. public void Should_Build_Property_Chain()
  19. {
  20. var result = ToList(ExpressionNodeBuilder.Build("Foo.Bar.Baz"));
  21. Assert.Equal(3, result.Count);
  22. Assert.IsType<PropertyAccessorNode>(result[0]);
  23. }
  24. private List<ExpressionNode> ToList(ExpressionNode node)
  25. {
  26. var result = new List<ExpressionNode>();
  27. while (node != null)
  28. {
  29. result.Add(node);
  30. node = node.Next;
  31. }
  32. return result;
  33. }
  34. }
  35. }