Skip to content

Commit c2e6779

Browse files
authored
Merge pull request #278 from fxa109/fix277
FIxes #277, Added changes for fix and fixed tests
2 parents 89838b0 + 030f188 commit c2e6779

File tree

3 files changed

+30
-6
lines changed

3 files changed

+30
-6
lines changed

Diff for: src/JsonApiDotNetCore/JsonApiDotNetCore.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<VersionPrefix>2.2.2</VersionPrefix>
3+
<VersionPrefix>2.2.3</VersionPrefix>
44
<TargetFrameworks>$(NetStandardVersion)</TargetFrameworks>
55
<AssemblyName>JsonApiDotNetCore</AssemblyName>
66
<PackageId>JsonApiDotNetCore</PackageId>

Diff for: src/JsonApiDotNetCore/Services/QueryComposer.cs

+2-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ public string Compose(IJsonApiContext jsonApiContext)
3131
private string ComposeSingleFilter(FilterQuery query)
3232
{
3333
var result = "&filter";
34-
result += QueryConstants.OPEN_BRACKET + query.Attribute + QueryConstants.CLOSE_BRACKET + query.Operation + query.Value;
34+
var operation = string.IsNullOrWhiteSpace(query.Operation) ? query.Operation : query.Operation + ":";
35+
result += QueryConstants.OPEN_BRACKET + query.Attribute + QueryConstants.CLOSE_BRACKET + "=" + operation + query.Value;
3536
return result;
3637
}
3738
}

Diff for: test/UnitTests/Services/QueryComposerTests.cs

+27-4
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ public QueryComposerTests()
1717
}
1818

1919
[Fact]
20-
public void Can_Compose_FilterStringForUrl()
20+
public void Can_ComposeEqual_FilterStringForUrl()
2121
{
2222
// arrange
23-
var filter = new FilterQuery("attribute", "value", "=");
23+
var filter = new FilterQuery("attribute", "value", "eq");
2424
var querySet = new QuerySet();
2525
List<FilterQuery> filters = new List<FilterQuery>();
2626
filters.Add(filter);
@@ -34,7 +34,30 @@ public void Can_Compose_FilterStringForUrl()
3434
// act
3535
var filterString = queryComposer.Compose(_jsonApiContext.Object);
3636
// assert
37-
Assert.Equal("&filter[attribute]=value", filterString);
37+
Assert.Equal("&filter[attribute]=eq:value", filterString);
38+
}
39+
40+
[Fact]
41+
public void Can_ComposeLessThan_FilterStringForUrl()
42+
{
43+
// arrange
44+
var filter = new FilterQuery("attribute", "value", "le");
45+
var filter2 = new FilterQuery("attribute2", "value2", "");
46+
var querySet = new QuerySet();
47+
List<FilterQuery> filters = new List<FilterQuery>();
48+
filters.Add(filter);
49+
filters.Add(filter2);
50+
querySet.Filters = filters;
51+
52+
_jsonApiContext
53+
.Setup(m => m.QuerySet)
54+
.Returns(querySet);
55+
56+
var queryComposer = new QueryComposer();
57+
// act
58+
var filterString = queryComposer.Compose(_jsonApiContext.Object);
59+
// assert
60+
Assert.Equal("&filter[attribute]=le:value&filter[attribute2]=value2", filterString);
3861
}
3962

4063
[Fact]
@@ -54,4 +77,4 @@ public void NoFilter_Compose_EmptyStringReturned()
5477
Assert.Equal("", filterString);
5578
}
5679
}
57-
}
80+
}

0 commit comments

Comments
 (0)