ExpressionNodeBuilderTests_Errors.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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 Avalonia.Data.Core;
  4. using Xunit;
  5. namespace Avalonia.Base.UnitTests.Data.Core
  6. {
  7. public class ExpressionNodeBuilderTests_Errors
  8. {
  9. [Fact]
  10. public void Identifier_Cannot_Start_With_Digit()
  11. {
  12. Assert.Throws<ExpressionParseException>(
  13. () => ExpressionNodeBuilder.Build("1Foo"));
  14. }
  15. [Fact]
  16. public void Identifier_Cannot_Start_With_Symbol()
  17. {
  18. Assert.Throws<ExpressionParseException>(
  19. () => ExpressionNodeBuilder.Build("Foo.%Bar"));
  20. }
  21. [Fact]
  22. public void Expression_Cannot_End_With_Period()
  23. {
  24. Assert.Throws<ExpressionParseException>(
  25. () => ExpressionNodeBuilder.Build("Foo.Bar."));
  26. }
  27. [Fact]
  28. public void Expression_Cannot_Have_Empty_Indexer()
  29. {
  30. Assert.Throws<ExpressionParseException>(
  31. () => ExpressionNodeBuilder.Build("Foo.Bar[]"));
  32. }
  33. [Fact]
  34. public void Expression_Cannot_Have_Extra_Comma_At_Start_Of_Indexer()
  35. {
  36. Assert.Throws<ExpressionParseException>(
  37. () => ExpressionNodeBuilder.Build("Foo.Bar[,3,4]"));
  38. }
  39. [Fact]
  40. public void Expression_Cannot_Have_Extra_Comma_In_Indexer()
  41. {
  42. Assert.Throws<ExpressionParseException>(
  43. () => ExpressionNodeBuilder.Build("Foo.Bar[3,,4]"));
  44. }
  45. [Fact]
  46. public void Expression_Cannot_Have_Extra_Comma_At_End_Of_Indexer()
  47. {
  48. Assert.Throws<ExpressionParseException>(
  49. () => ExpressionNodeBuilder.Build("Foo.Bar[3,4,]"));
  50. }
  51. [Fact]
  52. public void Expression_Cannot_Have_Digit_After_Indexer()
  53. {
  54. Assert.Throws<ExpressionParseException>(
  55. () => ExpressionNodeBuilder.Build("Foo.Bar[3,4]5"));
  56. }
  57. [Fact]
  58. public void Expression_Cannot_Have_Letter_After_Indexer()
  59. {
  60. Assert.Throws<ExpressionParseException>(
  61. () => ExpressionNodeBuilder.Build("Foo.Bar[3,4]A"));
  62. }
  63. }
  64. }