|
@@ -12,7 +12,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
|
|
|
[Fact]
|
|
[Fact]
|
|
|
public void Parses_Name()
|
|
public void Parses_Name()
|
|
|
{
|
|
{
|
|
|
- var target = new PropertyParser();
|
|
|
|
|
var reader = new CharacterReader("Foo".AsSpan());
|
|
var reader = new CharacterReader("Foo".AsSpan());
|
|
|
var (ns, owner, name) = PropertyParser.Parse(reader);
|
|
var (ns, owner, name) = PropertyParser.Parse(reader);
|
|
|
|
|
|
|
@@ -24,7 +23,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
|
|
|
[Fact]
|
|
[Fact]
|
|
|
public void Parses_Owner_And_Name()
|
|
public void Parses_Owner_And_Name()
|
|
|
{
|
|
{
|
|
|
- var target = new PropertyParser();
|
|
|
|
|
var reader = new CharacterReader("Foo.Bar".AsSpan());
|
|
var reader = new CharacterReader("Foo.Bar".AsSpan());
|
|
|
var (ns, owner, name) = PropertyParser.Parse(reader);
|
|
var (ns, owner, name) = PropertyParser.Parse(reader);
|
|
|
|
|
|
|
@@ -36,7 +34,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
|
|
|
[Fact]
|
|
[Fact]
|
|
|
public void Parses_Namespace_Owner_And_Name()
|
|
public void Parses_Namespace_Owner_And_Name()
|
|
|
{
|
|
{
|
|
|
- var target = new PropertyParser();
|
|
|
|
|
var reader = new CharacterReader("foo:Bar.Baz".AsSpan());
|
|
var reader = new CharacterReader("foo:Bar.Baz".AsSpan());
|
|
|
var (ns, owner, name) = PropertyParser.Parse(reader);
|
|
var (ns, owner, name) = PropertyParser.Parse(reader);
|
|
|
|
|
|
|
@@ -48,7 +45,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
|
|
|
[Fact]
|
|
[Fact]
|
|
|
public void Parses_Owner_And_Name_With_Parentheses()
|
|
public void Parses_Owner_And_Name_With_Parentheses()
|
|
|
{
|
|
{
|
|
|
- var target = new PropertyParser();
|
|
|
|
|
var reader = new CharacterReader("(Foo.Bar)".AsSpan());
|
|
var reader = new CharacterReader("(Foo.Bar)".AsSpan());
|
|
|
var (ns, owner, name) = PropertyParser.Parse(reader);
|
|
var (ns, owner, name) = PropertyParser.Parse(reader);
|
|
|
|
|
|
|
@@ -60,7 +56,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
|
|
|
[Fact]
|
|
[Fact]
|
|
|
public void Parses_Namespace_Owner_And_Name_With_Parentheses()
|
|
public void Parses_Namespace_Owner_And_Name_With_Parentheses()
|
|
|
{
|
|
{
|
|
|
- var target = new PropertyParser();
|
|
|
|
|
var reader = new CharacterReader("(foo:Bar.Baz)".AsSpan());
|
|
var reader = new CharacterReader("(foo:Bar.Baz)".AsSpan());
|
|
|
var (ns, owner, name) = PropertyParser.Parse(reader);
|
|
var (ns, owner, name) = PropertyParser.Parse(reader);
|
|
|
|
|
|
|
@@ -72,8 +67,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
|
|
|
[Fact]
|
|
[Fact]
|
|
|
public void Fails_With_Empty_String()
|
|
public void Fails_With_Empty_String()
|
|
|
{
|
|
{
|
|
|
- var target = new PropertyParser();
|
|
|
|
|
-
|
|
|
|
|
var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader(ReadOnlySpan<char>.Empty)));
|
|
var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader(ReadOnlySpan<char>.Empty)));
|
|
|
Assert.Equal(0, ex.Column);
|
|
Assert.Equal(0, ex.Column);
|
|
|
Assert.Equal("Expected property name.", ex.Message);
|
|
Assert.Equal("Expected property name.", ex.Message);
|
|
@@ -82,8 +75,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
|
|
|
[Fact]
|
|
[Fact]
|
|
|
public void Fails_With_Only_Whitespace()
|
|
public void Fails_With_Only_Whitespace()
|
|
|
{
|
|
{
|
|
|
- var target = new PropertyParser();
|
|
|
|
|
-
|
|
|
|
|
var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader(" ".AsSpan())));
|
|
var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader(" ".AsSpan())));
|
|
|
Assert.Equal(0, ex.Column);
|
|
Assert.Equal(0, ex.Column);
|
|
|
Assert.Equal("Unexpected ' '.", ex.Message);
|
|
Assert.Equal("Unexpected ' '.", ex.Message);
|
|
@@ -92,8 +83,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
|
|
|
[Fact]
|
|
[Fact]
|
|
|
public void Fails_With_Leading_Whitespace()
|
|
public void Fails_With_Leading_Whitespace()
|
|
|
{
|
|
{
|
|
|
- var target = new PropertyParser();
|
|
|
|
|
-
|
|
|
|
|
var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader(" Foo".AsSpan())));
|
|
var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader(" Foo".AsSpan())));
|
|
|
Assert.Equal(0, ex.Column);
|
|
Assert.Equal(0, ex.Column);
|
|
|
Assert.Equal("Unexpected ' '.", ex.Message);
|
|
Assert.Equal("Unexpected ' '.", ex.Message);
|
|
@@ -102,8 +91,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
|
|
|
[Fact]
|
|
[Fact]
|
|
|
public void Fails_With_Trailing_Whitespace()
|
|
public void Fails_With_Trailing_Whitespace()
|
|
|
{
|
|
{
|
|
|
- var target = new PropertyParser();
|
|
|
|
|
-
|
|
|
|
|
var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("Foo ".AsSpan())));
|
|
var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("Foo ".AsSpan())));
|
|
|
Assert.Equal(3, ex.Column);
|
|
Assert.Equal(3, ex.Column);
|
|
|
Assert.Equal("Unexpected ' '.", ex.Message);
|
|
Assert.Equal("Unexpected ' '.", ex.Message);
|
|
@@ -112,8 +99,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
|
|
|
[Fact]
|
|
[Fact]
|
|
|
public void Fails_With_Invalid_Property_Name()
|
|
public void Fails_With_Invalid_Property_Name()
|
|
|
{
|
|
{
|
|
|
- var target = new PropertyParser();
|
|
|
|
|
-
|
|
|
|
|
var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("123".AsSpan())));
|
|
var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("123".AsSpan())));
|
|
|
Assert.Equal(0, ex.Column);
|
|
Assert.Equal(0, ex.Column);
|
|
|
Assert.Equal("Unexpected '1'.", ex.Message);
|
|
Assert.Equal("Unexpected '1'.", ex.Message);
|
|
@@ -122,8 +107,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
|
|
|
[Fact]
|
|
[Fact]
|
|
|
public void Fails_With_Trailing_Junk()
|
|
public void Fails_With_Trailing_Junk()
|
|
|
{
|
|
{
|
|
|
- var target = new PropertyParser();
|
|
|
|
|
-
|
|
|
|
|
var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("Foo%".AsSpan())));
|
|
var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("Foo%".AsSpan())));
|
|
|
Assert.Equal(3, ex.Column);
|
|
Assert.Equal(3, ex.Column);
|
|
|
Assert.Equal("Unexpected '%'.", ex.Message);
|
|
Assert.Equal("Unexpected '%'.", ex.Message);
|
|
@@ -132,8 +115,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
|
|
|
[Fact]
|
|
[Fact]
|
|
|
public void Fails_With_Invalid_Property_Name_After_Owner()
|
|
public void Fails_With_Invalid_Property_Name_After_Owner()
|
|
|
{
|
|
{
|
|
|
- var target = new PropertyParser();
|
|
|
|
|
-
|
|
|
|
|
var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("Foo.123".AsSpan())));
|
|
var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("Foo.123".AsSpan())));
|
|
|
Assert.Equal(4, ex.Column);
|
|
Assert.Equal(4, ex.Column);
|
|
|
Assert.Equal("Unexpected '1'.", ex.Message);
|
|
Assert.Equal("Unexpected '1'.", ex.Message);
|
|
@@ -142,8 +123,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
|
|
|
[Fact]
|
|
[Fact]
|
|
|
public void Fails_With_Whitespace_Between_Owner_And_Name()
|
|
public void Fails_With_Whitespace_Between_Owner_And_Name()
|
|
|
{
|
|
{
|
|
|
- var target = new PropertyParser();
|
|
|
|
|
-
|
|
|
|
|
var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("Foo. Bar".AsSpan())));
|
|
var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("Foo. Bar".AsSpan())));
|
|
|
Assert.Equal(4, ex.Column);
|
|
Assert.Equal(4, ex.Column);
|
|
|
Assert.Equal("Unexpected ' '.", ex.Message);
|
|
Assert.Equal("Unexpected ' '.", ex.Message);
|
|
@@ -152,8 +131,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
|
|
|
[Fact]
|
|
[Fact]
|
|
|
public void Fails_With_Too_Many_Segments()
|
|
public void Fails_With_Too_Many_Segments()
|
|
|
{
|
|
{
|
|
|
- var target = new PropertyParser();
|
|
|
|
|
-
|
|
|
|
|
var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("Foo.Bar.Baz".AsSpan())));
|
|
var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("Foo.Bar.Baz".AsSpan())));
|
|
|
Assert.Equal(8, ex.Column);
|
|
Assert.Equal(8, ex.Column);
|
|
|
Assert.Equal("Unexpected '.'.", ex.Message);
|
|
Assert.Equal("Unexpected '.'.", ex.Message);
|
|
@@ -162,8 +139,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
|
|
|
[Fact]
|
|
[Fact]
|
|
|
public void Fails_With_Too_Many_Namespaces()
|
|
public void Fails_With_Too_Many_Namespaces()
|
|
|
{
|
|
{
|
|
|
- var target = new PropertyParser();
|
|
|
|
|
-
|
|
|
|
|
var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("foo:bar:Baz".AsSpan())));
|
|
var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("foo:bar:Baz".AsSpan())));
|
|
|
Assert.Equal(8, ex.Column);
|
|
Assert.Equal(8, ex.Column);
|
|
|
Assert.Equal("Unexpected ':'.", ex.Message);
|
|
Assert.Equal("Unexpected ':'.", ex.Message);
|
|
@@ -172,8 +147,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
|
|
|
[Fact]
|
|
[Fact]
|
|
|
public void Fails_With_Parens_But_No_Owner()
|
|
public void Fails_With_Parens_But_No_Owner()
|
|
|
{
|
|
{
|
|
|
- var target = new PropertyParser();
|
|
|
|
|
-
|
|
|
|
|
var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("(Foo)".AsSpan())));
|
|
var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("(Foo)".AsSpan())));
|
|
|
Assert.Equal(1, ex.Column);
|
|
Assert.Equal(1, ex.Column);
|
|
|
Assert.Equal("Expected property owner.", ex.Message);
|
|
Assert.Equal("Expected property owner.", ex.Message);
|
|
@@ -182,8 +155,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
|
|
|
[Fact]
|
|
[Fact]
|
|
|
public void Fails_With_Parens_And_Namespace_But_No_Owner()
|
|
public void Fails_With_Parens_And_Namespace_But_No_Owner()
|
|
|
{
|
|
{
|
|
|
- var target = new PropertyParser();
|
|
|
|
|
-
|
|
|
|
|
var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("(foo:Bar)".AsSpan())));
|
|
var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("(foo:Bar)".AsSpan())));
|
|
|
Assert.Equal(1, ex.Column);
|
|
Assert.Equal(1, ex.Column);
|
|
|
Assert.Equal("Expected property owner.", ex.Message);
|
|
Assert.Equal("Expected property owner.", ex.Message);
|
|
@@ -192,8 +163,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
|
|
|
[Fact]
|
|
[Fact]
|
|
|
public void Fails_With_Missing_Close_Parens()
|
|
public void Fails_With_Missing_Close_Parens()
|
|
|
{
|
|
{
|
|
|
- var target = new PropertyParser();
|
|
|
|
|
-
|
|
|
|
|
var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("(Foo.Bar".AsSpan())));
|
|
var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("(Foo.Bar".AsSpan())));
|
|
|
Assert.Equal(8, ex.Column);
|
|
Assert.Equal(8, ex.Column);
|
|
|
Assert.Equal("Expected ')'.", ex.Message);
|
|
Assert.Equal("Expected ')'.", ex.Message);
|
|
@@ -202,8 +171,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
|
|
|
[Fact]
|
|
[Fact]
|
|
|
public void Fails_With_Unexpected_Close_Parens()
|
|
public void Fails_With_Unexpected_Close_Parens()
|
|
|
{
|
|
{
|
|
|
- var target = new PropertyParser();
|
|
|
|
|
-
|
|
|
|
|
var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("Foo.Bar)".AsSpan())));
|
|
var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("Foo.Bar)".AsSpan())));
|
|
|
Assert.Equal(7, ex.Column);
|
|
Assert.Equal(7, ex.Column);
|
|
|
Assert.Equal("Unexpected ')'.", ex.Message);
|
|
Assert.Equal("Unexpected ')'.", ex.Message);
|