Skip to content

Commit 692101b

Browse files
committed
Simplify query string parse assertions
1 parent 74859bc commit 692101b

File tree

2 files changed

+50
-52
lines changed

2 files changed

+50
-52
lines changed

test/JsonApiDotNetCoreTests/UnitTests/QueryStringParameters/FilterParseTests.cs

Lines changed: 33 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -152,40 +152,39 @@ public void Reader_Read_ParameterValue_Fails(string parameterName, string parame
152152
}
153153

154154
[Theory]
155-
[InlineData("filter", "equals(title,'Brian O''Quote')", null, "equals(title,'Brian O''Quote')")]
156-
[InlineData("filter", "equals(title,'!@#$%^&*()-_=+\"''[]{}<>()/|\\:;.,`~')", null, "equals(title,'!@#$%^&*()-_=+\"''[]{}<>()/|\\:;.,`~')")]
157-
[InlineData("filter", "equals(title,'')", null, "equals(title,'')")]
158-
[InlineData("filter", "startsWith(owner.displayName,'GivenName ')", null, "startsWith(owner.displayName,'GivenName ')")]
159-
[InlineData("filter", "endsWith(owner.displayName,' Surname')", null, "endsWith(owner.displayName,' Surname')")]
160-
[InlineData("filter", "contains(owner.displayName,' ')", null, "contains(owner.displayName,' ')")]
161-
[InlineData("filter[posts]", "equals(caption,'this, that & more')", "posts", "equals(caption,'this, that & more')")]
162-
[InlineData("filter[owner.posts]", "equals(caption,'some')", "owner.posts", "equals(caption,'some')")]
163-
[InlineData("filter[posts.comments]", "equals(createdAt,'2000-01-01')", "posts.comments", "equals(createdAt,'2000-01-01')")]
164-
[InlineData("filter", "equals(count(posts),'1')", null, "equals(count(posts),'1')")]
165-
[InlineData("filter", "equals(count(posts),count(owner.posts))", null, "equals(count(posts),count(owner.posts))")]
166-
[InlineData("filter[posts]", "equals(caption,null)", "posts", "equals(caption,null)")]
167-
[InlineData("filter[posts]", "equals(author,null)", "posts", "equals(author,null)")]
168-
[InlineData("filter[posts]", "equals(author.userName,author.displayName)", "posts", "equals(author.userName,author.displayName)")]
169-
[InlineData("filter[posts.comments]", "lessThan(createdAt,'2000-01-01')", "posts.comments", "lessThan(createdAt,'2000-01-01')")]
170-
[InlineData("filter[posts.comments]", "lessOrEqual(createdAt,'2000-01-01')", "posts.comments", "lessOrEqual(createdAt,'2000-01-01')")]
171-
[InlineData("filter[posts.comments]", "greaterThan(createdAt,'2000-01-01')", "posts.comments", "greaterThan(createdAt,'2000-01-01')")]
172-
[InlineData("filter[posts.comments]", "greaterOrEqual(createdAt,'2000-01-01')", "posts.comments", "greaterOrEqual(createdAt,'2000-01-01')")]
173-
[InlineData("filter", "has(posts)", null, "has(posts)")]
174-
[InlineData("filter", "has(posts,not(equals(url,null)))", null, "has(posts,not(equals(url,null)))")]
175-
[InlineData("filter", "contains(title,'this')", null, "contains(title,'this')")]
176-
[InlineData("filter", "startsWith(title,'this')", null, "startsWith(title,'this')")]
177-
[InlineData("filter", "endsWith(title,'this')", null, "endsWith(title,'this')")]
178-
[InlineData("filter", "any(title,'this')", null, "any(title,'this')")]
179-
[InlineData("filter", "any(title,'this','that','there')", null, "any(title,'that','there','this')")]
180-
[InlineData("filter", "and(contains(title,'sales'),contains(title,'marketing'),contains(title,'advertising'))", null,
181-
"and(contains(title,'sales'),contains(title,'marketing'),contains(title,'advertising'))")]
155+
[InlineData("filter", "equals(title,'Brian O''Quote')", null)]
156+
[InlineData("filter", "equals(title,'!@#$%^&*()-_=+\"''[]{}<>()/|\\:;.,`~')", null)]
157+
[InlineData("filter", "equals(title,'')", null)]
158+
[InlineData("filter", "startsWith(owner.displayName,'GivenName ')", null)]
159+
[InlineData("filter", "endsWith(owner.displayName,' Surname')", null)]
160+
[InlineData("filter", "contains(owner.displayName,' ')", null)]
161+
[InlineData("filter[posts]", "equals(caption,'this, that & more')", "posts")]
162+
[InlineData("filter[owner.posts]", "equals(caption,'some')", "owner.posts")]
163+
[InlineData("filter[posts.comments]", "equals(createdAt,'2000-01-01')", "posts.comments")]
164+
[InlineData("filter", "equals(count(posts),'1')", null)]
165+
[InlineData("filter", "equals(count(posts),count(owner.posts))", null)]
166+
[InlineData("filter[posts]", "equals(caption,null)", "posts")]
167+
[InlineData("filter[posts]", "equals(author,null)", "posts")]
168+
[InlineData("filter[posts]", "equals(author.userName,author.displayName)", "posts")]
169+
[InlineData("filter[posts.comments]", "lessThan(createdAt,'2000-01-01')", "posts.comments")]
170+
[InlineData("filter[posts.comments]", "lessOrEqual(createdAt,'2000-01-01')", "posts.comments")]
171+
[InlineData("filter[posts.comments]", "greaterThan(createdAt,'2000-01-01')", "posts.comments")]
172+
[InlineData("filter[posts.comments]", "greaterOrEqual(createdAt,'2000-01-01')", "posts.comments")]
173+
[InlineData("filter", "has(posts)", null)]
174+
[InlineData("filter", "has(posts,not(equals(url,null)))", null)]
175+
[InlineData("filter", "contains(title,'this')", null)]
176+
[InlineData("filter", "startsWith(title,'this')", null)]
177+
[InlineData("filter", "endsWith(title,'this')", null)]
178+
[InlineData("filter", "any(title,'this')", null)]
179+
[InlineData("filter", "any(title,'that','there','this')", null)]
180+
[InlineData("filter", "and(contains(title,'sales'),contains(title,'marketing'),contains(title,'advertising'))", null)]
182181
[InlineData("filter[posts]", "or(and(not(equals(author.userName,null)),not(equals(author.displayName,null))),not(has(comments,startsWith(text,'A'))))",
183-
"posts", "or(and(not(equals(author.userName,null)),not(equals(author.displayName,null))),not(has(comments,startsWith(text,'A'))))")]
184-
[InlineData("filter", "isType(owner.person,men)", null, "isType(owner.person,men)")]
185-
[InlineData("filter", "isType(owner.person,men,equals(hasBeard,'true'))", null, "isType(owner.person,men,equals(hasBeard,'true'))")]
186-
[InlineData("filter[posts.contributors]", "isType(,women)", "posts.contributors", "isType(,women)")]
187-
[InlineData("filter[posts.contributors]", "isType(,women,equals(maidenName,'Austen'))", "posts.contributors", "isType(,women,equals(maidenName,'Austen'))")]
188-
public void Reader_Read_Succeeds(string parameterName, string parameterValue, string scopeExpected, string valueExpected)
182+
"posts")]
183+
[InlineData("filter", "isType(owner.person,men)", null)]
184+
[InlineData("filter", "isType(owner.person,men,equals(hasBeard,'true'))", null)]
185+
[InlineData("filter[posts.contributors]", "isType(,women)", "posts.contributors")]
186+
[InlineData("filter[posts.contributors]", "isType(,women,equals(maidenName,'Austen'))", "posts.contributors")]
187+
public void Reader_Read_Succeeds(string parameterName, string parameterValue, string scopeExpected)
189188
{
190189
// Act
191190
_reader.Read(parameterName, parameterValue);
@@ -197,6 +196,6 @@ public void Reader_Read_Succeeds(string parameterName, string parameterValue, st
197196
scope?.ToString().Should().Be(scopeExpected);
198197

199198
QueryExpression value = constraints.Select(expressionInScope => expressionInScope.Expression).Single();
200-
value.ToString().Should().Be(valueExpected);
199+
value.ToString().Should().Be(parameterValue);
201200
}
202201
}

test/JsonApiDotNetCoreTests/UnitTests/QueryStringParameters/SortParseTests.cs

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -124,23 +124,22 @@ public void Reader_Read_ParameterValue_Fails(string parameterName, string parame
124124
}
125125

126126
[Theory]
127-
[InlineData("sort", "id", null, "id")]
128-
[InlineData("sort", "count(posts),-id", null, "count(posts),-id")]
129-
[InlineData("sort", "-count(posts),id", null, "-count(posts),id")]
130-
[InlineData("sort[posts]", "count(comments),-id", "posts", "count(comments),-id")]
131-
[InlineData("sort[owner.posts]", "-caption", "owner.posts", "-caption")]
132-
[InlineData("sort[posts]", "author.userName", "posts", "author.userName")]
133-
[InlineData("sort[posts]", "-caption,-author.userName", "posts", "-caption,-author.userName")]
134-
[InlineData("sort[posts]", "caption,author.userName,-id", "posts", "caption,author.userName,-id")]
135-
[InlineData("sort[posts.labels]", "id,name", "posts.labels", "id,name")]
136-
[InlineData("sort[posts.comments]", "-createdAt,author.displayName,author.preferences.useDarkTheme", "posts.comments",
137-
"-createdAt,author.displayName,author.preferences.useDarkTheme")]
138-
[InlineData("sort[posts.contributors]", "name,-maidenName,hasBeard", "posts.contributors", "name,-maidenName,hasBeard")]
139-
[InlineData("sort[posts.contributors]", "husband.hasBeard,wife.maidenName", "posts.contributors", "husband.hasBeard,wife.maidenName")]
140-
[InlineData("sort[posts.contributors]", "count(wife.husband.drinkingBuddies)", "posts.contributors", "count(wife.husband.drinkingBuddies)")]
141-
[InlineData("sort[posts.contributors]", "wife.age", "posts.contributors", "wife.age")]
142-
[InlineData("sort[posts.contributors]", "count(father.friends)", "posts.contributors", "count(father.friends)")]
143-
public void Reader_Read_Succeeds(string parameterName, string parameterValue, string scopeExpected, string valueExpected)
127+
[InlineData("sort", "id", null)]
128+
[InlineData("sort", "count(posts),-id", null)]
129+
[InlineData("sort", "-count(posts),id", null)]
130+
[InlineData("sort[posts]", "count(comments),-id", "posts")]
131+
[InlineData("sort[owner.posts]", "-caption", "owner.posts")]
132+
[InlineData("sort[posts]", "author.userName", "posts")]
133+
[InlineData("sort[posts]", "-caption,-author.userName", "posts")]
134+
[InlineData("sort[posts]", "caption,author.userName,-id", "posts")]
135+
[InlineData("sort[posts.labels]", "id,name", "posts.labels")]
136+
[InlineData("sort[posts.comments]", "-createdAt,author.displayName,author.preferences.useDarkTheme", "posts.comments")]
137+
[InlineData("sort[posts.contributors]", "name,-maidenName,hasBeard", "posts.contributors")]
138+
[InlineData("sort[posts.contributors]", "husband.hasBeard,wife.maidenName", "posts.contributors")]
139+
[InlineData("sort[posts.contributors]", "count(wife.husband.drinkingBuddies)", "posts.contributors")]
140+
[InlineData("sort[posts.contributors]", "wife.age", "posts.contributors")]
141+
[InlineData("sort[posts.contributors]", "count(father.friends)", "posts.contributors")]
142+
public void Reader_Read_Succeeds(string parameterName, string parameterValue, string scopeExpected)
144143
{
145144
// Act
146145
_reader.Read(parameterName, parameterValue);
@@ -152,6 +151,6 @@ public void Reader_Read_Succeeds(string parameterName, string parameterValue, st
152151
scope?.ToString().Should().Be(scopeExpected);
153152

154153
QueryExpression value = constraints.Select(expressionInScope => expressionInScope.Expression).Single();
155-
value.ToString().Should().Be(valueExpected);
154+
value.ToString().Should().Be(parameterValue);
156155
}
157156
}

0 commit comments

Comments
 (0)