Skip to content

Commit 013880c

Browse files
committed
Use InlineData instead of a stub.
1 parent c10ea57 commit 013880c

2 files changed

Lines changed: 33 additions & 83 deletions

File tree

ReClass.NET/AddressParser/Parser.cs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,6 @@ private IExpression ParseLeaf()
178178
}
179179
}
180180

181-
#region Convenience Helpers
182-
183181
public static IExpression Parse(string str)
184182
{
185183
using (var sr = new StringReader(str))
@@ -188,12 +186,10 @@ public static IExpression Parse(string str)
188186
}
189187
}
190188

191-
public static IExpression Parse(Tokenizer tokenizer)
189+
private static IExpression Parse(ITokenizer tokenizer)
192190
{
193191
var parser = new Parser(tokenizer);
194192
return parser.ParseExpression();
195193
}
196-
197-
#endregion
198194
}
199195
}
Lines changed: 32 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,4 @@
11
using System;
2-
using System.Collections.Generic;
3-
using System.IO;
4-
using System.Linq;
5-
using System.Text;
6-
using System.Threading.Tasks;
72
using NFluent;
83
using ReClassNET.AddressParser;
94
using Xunit;
@@ -12,77 +7,39 @@ namespace ReClass.NET_Tests.AddressParser
127
{
138
public class ParserTest
149
{
15-
private class TokenizerStub : ITokenizer
16-
{
17-
private readonly Tuple<Token, string, long>[] values;
18-
19-
private int index = 0;
20-
21-
public Token Token => values[index].Item1;
22-
public string Identifier => values[index].Item2;
23-
public long Number => values[index].Item3;
24-
25-
public TokenizerStub(params Tuple<Token, string, long>[] values)
26-
{
27-
this.values = values
28-
.Append(Tuple.Create<Token, string, long>(Token.None, null, 0))
29-
.ToArray();
30-
}
31-
32-
public void ReadNextToken()
33-
{
34-
if (index < values.Length - 1)
35-
{
36-
++index;
37-
}
38-
}
39-
}
40-
41-
public static IEnumerable<object[]> InvalidExpressionData()
42-
{
43-
return new List<object[]>
44-
{
45-
new object[] { new TokenizerStub() },
46-
new object[] { new TokenizerStub(Tuple.Create(Token.Add, "", 0L)) },
47-
new object[] { new TokenizerStub(Tuple.Create(Token.Subtract, "", 0L)) },
48-
new object[] { new TokenizerStub(Tuple.Create(Token.Multiply, "", 0L)) },
49-
new object[] { new TokenizerStub(Tuple.Create(Token.Divide, "", 0L)) },
50-
new object[] { new TokenizerStub(Tuple.Create(Token.Comma, "", 0L)) },
51-
new object[] { new TokenizerStub(Tuple.Create(Token.OpenParenthesis, "", 0L)) },
52-
new object[] { new TokenizerStub(Tuple.Create(Token.CloseParenthesis, "", 0L)) },
53-
new object[] { new TokenizerStub(Tuple.Create(Token.OpenBrackets, "", 0L)) },
54-
new object[] { new TokenizerStub(Tuple.Create(Token.CloseBrackets, "", 0L)) },
55-
56-
new object[] { new TokenizerStub(
57-
Tuple.Create(Token.Number, "", 0L),
58-
Tuple.Create(Token.Subtract, "", 0L)
59-
) },
60-
new object[] { new TokenizerStub(
61-
Tuple.Create(Token.Number, "", 0L),
62-
Tuple.Create(Token.OpenParenthesis, "", 0L)
63-
) },
64-
new object[] { new TokenizerStub(
65-
Tuple.Create(Token.Number, "", 0L),
66-
Tuple.Create(Token.CloseParenthesis, "", 0L)
67-
) },
68-
new object[] { new TokenizerStub(
69-
Tuple.Create(Token.OpenParenthesis, "", 0L),
70-
Tuple.Create(Token.CloseParenthesis, "", 0L)
71-
) },
72-
new object[] { new TokenizerStub(
73-
Tuple.Create(Token.OpenParenthesis, "", 0L),
74-
Tuple.Create(Token.Number, "", 0L)
75-
) },
76-
};
77-
}
78-
7910
[Theory]
80-
[MemberData(nameof(InvalidExpressionData))]
81-
public void InvalidExpressionTests(ITokenizer tokenizer)
11+
[InlineData("-")]
12+
[InlineData("+")]
13+
[InlineData("*")]
14+
[InlineData("/")]
15+
[InlineData(",")]
16+
[InlineData("(")]
17+
[InlineData(")")]
18+
[InlineData("[")]
19+
[InlineData("]")]
20+
[InlineData("1-")]
21+
[InlineData("1(")]
22+
[InlineData("1)")]
23+
[InlineData("1[")]
24+
[InlineData("1]")]
25+
[InlineData("(1")]
26+
[InlineData(")1")]
27+
[InlineData("[1")]
28+
[InlineData("]1")]
29+
[InlineData("1+(")]
30+
[InlineData("1+)")]
31+
[InlineData("1 + ()")]
32+
[InlineData("(1 + 2")]
33+
[InlineData("1 + 2)")]
34+
[InlineData("[1 + 2)")]
35+
[InlineData("(1 + 2]")]
36+
[InlineData("[1,]")]
37+
[InlineData("[1,")]
38+
[InlineData("1,")]
39+
[InlineData("1,2")]
40+
public void InvalidExpressionTests(string expression)
8241
{
83-
var parser = new Parser(tokenizer);
84-
85-
Check.ThatCode(() => parser.ParseExpression()).Throws<ParseException>();
42+
Check.ThatCode(() => Parser.Parse(expression)).Throws<ParseException>();
8643
}
8744

8845
[Theory]
@@ -94,10 +51,7 @@ public void InvalidExpressionTests(ITokenizer tokenizer)
9451
[InlineData("(1 + (2 * 3))", typeof(AddExpression))]
9552
public void ValidExpressionTests(string expression, Type type)
9653
{
97-
var tokenizer = new Tokenizer(new StringReader(expression));
98-
var parser = new Parser(tokenizer);
99-
100-
Check.That(parser.ParseExpression()).IsInstanceOfType(type);
54+
Check.That(Parser.Parse(expression)).IsInstanceOfType(type);
10155
}
10256
}
10357
}

0 commit comments

Comments
 (0)