Skip to content

Commit e11b847

Browse files
author
Viktor Tochonov
committed
PR fixes
1 parent 6c621a1 commit e11b847

File tree

2 files changed

+137
-118
lines changed

2 files changed

+137
-118
lines changed

tests/FSharp.Data.GraphQL.Tests/MiddlewareTests.fs

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -702,10 +702,10 @@ let ``Object list filter: Must parse all filter operators`` () =
702702
]
703703
do
704704
let notStartsFilter = """{ "not": { "value_starts_with": "3" } }""" |> JsonDocument.Parse |> _.RootElement
705-
let dict = ImmutableDictionary<string, JsonElement>.Empty.Add ("filter", notStartsFilter)
705+
let variables = ImmutableDictionary<string, JsonElement>.Empty.Add ("filter", notStartsFilter)
706706
let filter = Not (StartsWith { FieldName = "value"; Value = "3" })
707707
let expectedFilter : KeyValuePair<obj list, _> = kvp ([ "A"; "subjects" ]) (filter)
708-
let result = executeWithCustomFilter (query, dict, filter)
708+
let result = executeWithCustomFilter (query, variables, filter)
709709
ensureDirect result <| fun data errors ->
710710
empty errors
711711
data |> equals (upcast expected)
@@ -715,10 +715,10 @@ let ``Object list filter: Must parse all filter operators`` () =
715715

716716
do
717717
let notEndsFilter = """{ "not": { "value_ends_with": "2" } }""" |> JsonDocument.Parse |> _.RootElement
718-
let dict = ImmutableDictionary<string, JsonElement>.Empty.Add ("filter", notEndsFilter)
718+
let variables = ImmutableDictionary<string, JsonElement>.Empty.Add ("filter", notEndsFilter)
719719
let filter = Not (EndsWith { FieldName = "value"; Value = "2" })
720720
let expectedFilter : KeyValuePair<obj list, _> = kvp ([ "A"; "subjects" ]) (filter)
721-
let result = executeWithCustomFilter (query, dict, filter)
721+
let result = executeWithCustomFilter (query, variables, filter)
722722
ensureDirect result <| fun data errors ->
723723
empty errors
724724
data |> equals (upcast expected)
@@ -728,10 +728,10 @@ let ``Object list filter: Must parse all filter operators`` () =
728728

729729
do
730730
let notGreaterThanOrEqualFilter = """{ "not": { "id_gte": 2 } }""" |> JsonDocument.Parse |> _.RootElement
731-
let dict = ImmutableDictionary<string, JsonElement>.Empty.Add ("filter", notGreaterThanOrEqualFilter)
731+
let variables = ImmutableDictionary<string, JsonElement>.Empty.Add ("filter", notGreaterThanOrEqualFilter)
732732
let filter = Not (GreaterThanOrEqual { FieldName = "id"; Value = 2.0 })
733733
let expectedFilter : KeyValuePair<obj list, _> = kvp ([ "A"; "subjects" ]) (filter)
734-
let result = executeWithCustomFilter (query, dict,filter)
734+
let result = executeWithCustomFilter (query, variables,filter)
735735
ensureDirect result <| fun data errors ->
736736
empty errors
737737
data |> equals (upcast expected)
@@ -741,10 +741,10 @@ let ``Object list filter: Must parse all filter operators`` () =
741741

742742
do
743743
let notLessThanOrEqualFilter = """{ "not": { "id_lte": 4 } }""" |> JsonDocument.Parse |> _.RootElement
744-
let dict = ImmutableDictionary<string, JsonElement>.Empty.Add ("filter", notLessThanOrEqualFilter)
744+
let variables = ImmutableDictionary<string, JsonElement>.Empty.Add ("filter", notLessThanOrEqualFilter)
745745
let filter = Not (LessThanOrEqual { FieldName = "id"; Value = 4.0 })
746746
let expectedFilter : KeyValuePair<obj list, _> = kvp ([ "A"; "subjects" ]) (filter)
747-
let result = executeWithCustomFilter (query, dict, filter)
747+
let result = executeWithCustomFilter (query, variables, filter)
748748
ensureDirect result <| fun data errors ->
749749
empty errors
750750
data |> equals (upcast expected)
@@ -754,10 +754,10 @@ let ``Object list filter: Must parse all filter operators`` () =
754754

755755
do
756756
let notGreaterThanFilter = """{ "not": { "id_gt": 2 } }""" |> JsonDocument.Parse |> _.RootElement
757-
let dict = ImmutableDictionary<string, JsonElement>.Empty.Add ("filter", notGreaterThanFilter)
757+
let variables = ImmutableDictionary<string, JsonElement>.Empty.Add ("filter", notGreaterThanFilter)
758758
let filter = Not (GreaterThan { FieldName = "id"; Value = 2.0 })
759759
let expectedFilter : KeyValuePair<obj list, _> = kvp ([ "A"; "subjects" ]) (filter)
760-
let result = executeWithCustomFilter (query, dict, filter)
760+
let result = executeWithCustomFilter (query, variables, filter)
761761
ensureDirect result <| fun data errors ->
762762
empty errors
763763
data |> equals (upcast expected)
@@ -767,10 +767,10 @@ let ``Object list filter: Must parse all filter operators`` () =
767767

768768
do
769769
let notLessThanFilter = """{ "not": { "id_lt": 4 } }""" |> JsonDocument.Parse |> _.RootElement
770-
let dict = ImmutableDictionary<string, JsonElement>.Empty.Add ("filter", notLessThanFilter)
770+
let variables = ImmutableDictionary<string, JsonElement>.Empty.Add ("filter", notLessThanFilter)
771771
let filter = Not (LessThan { FieldName = "id"; Value = 4.0 })
772-
let expectedFilter : KeyValuePair<obj list, ObjectListFilter> = kvp ([ "A"; "subjects" ]) (filter)
773-
let result = executeWithCustomFilter (query, dict, filter)
772+
let expectedFilter : KeyValuePair<obj list, _> = kvp ([ "A"; "subjects" ]) (filter)
773+
let result = executeWithCustomFilter (query, variables, filter)
774774
ensureDirect result
775775
<| fun data errors ->
776776
empty errors
@@ -781,10 +781,10 @@ let ``Object list filter: Must parse all filter operators`` () =
781781

782782
do
783783
let notContainsFilter = """{ "not": { "value_contains": "A" } }""" |> JsonDocument.Parse |> _.RootElement
784-
let dict = ImmutableDictionary<string, JsonElement>.Empty.Add ("filter", notContainsFilter)
784+
let variables = ImmutableDictionary<string, JsonElement>.Empty.Add ("filter", notContainsFilter)
785785
let filter = Not (Contains { FieldName = "value"; Value = "A" })
786-
let expectedFilter : KeyValuePair<obj list, ObjectListFilter> = kvp ([ "A"; "subjects" ]) (filter)
787-
let result = executeWithCustomFilter (query, dict, filter)
786+
let expectedFilter : KeyValuePair<obj list, _> = kvp ([ "A"; "subjects" ]) (filter)
787+
let result = executeWithCustomFilter (query, variables, filter)
788788
ensureDirect result <| fun data errors ->
789789
empty errors
790790
data |> equals (upcast expected)
@@ -794,11 +794,10 @@ let ``Object list filter: Must parse all filter operators`` () =
794794

795795
do
796796
let notEqualsFilter = """{ "not": { "value": "A2" } }""" |> JsonDocument.Parse |> _.RootElement
797-
let dict = ImmutableDictionary<string, JsonElement>.Empty.Add ("filter", notEqualsFilter)
797+
let variables = ImmutableDictionary<string, JsonElement>.Empty.Add ("filter", notEqualsFilter)
798798
let filter = Not (Equals { FieldName = "value"; Value = "A2" })
799-
let expectedFilter : KeyValuePair<obj list, ObjectListFilter> =
800-
kvp ([ "A"; "subjects" ]) (filter)
801-
let result = executeWithCustomFilter (query, dict, filter)
799+
let expectedFilter : KeyValuePair<obj list, _> = kvp ([ "A"; "subjects" ]) (filter)
800+
let result = executeWithCustomFilter (query, variables, filter)
802801
ensureDirect result <| fun data errors ->
803802
empty errors
804803
data |> equals (upcast expected)

tests/FSharp.Data.GraphQL.Tests/ObjectListFilterLinqTests.fs

Lines changed: 118 additions & 98 deletions
Original file line numberDiff line numberDiff line change
@@ -39,18 +39,20 @@ let ``ObjectListFilter works with GreaterThanOrEqual operator``() =
3939
let queryable = data.AsQueryable()
4040
let filteredData = queryable.Apply(filter) |> Seq.toList
4141
List.length filteredData |> equals 2
42-
let result = List.head filteredData
43-
result.ID |> equals 4
44-
result.FirstName |> equals "Ben"
45-
result.LastName |> equals "Adams"
46-
result.Contact |> equals { Email = "[email protected]" }
47-
result.Friends |> equals [ { Email = "[email protected]" }; { Email = "[email protected]" } ]
48-
let result1 = List.last filteredData
49-
result1.ID |> equals 7
50-
result1.FirstName |> equals "Jeneffer"
51-
result1.LastName |> equals "Trif"
52-
result1.Contact |> equals { Email = "[email protected]" }
53-
result1.Friends |> equals [ { Email = "[email protected]" } ]
42+
do
43+
let result = List.head filteredData
44+
result.ID |> equals 4
45+
result.FirstName |> equals "Ben"
46+
result.LastName |> equals "Adams"
47+
result.Contact |> equals { Email = "[email protected]" }
48+
result.Friends |> equals [ { Email = "[email protected]" }; { Email = "[email protected]" } ]
49+
do
50+
let result = List.last filteredData
51+
result.ID |> equals 7
52+
result.FirstName |> equals "Jeneffer"
53+
result.LastName |> equals "Trif"
54+
result.Contact |> equals { Email = "[email protected]" }
55+
result.Friends |> equals [ { Email = "[email protected]" } ]
5456

5557
[<Fact>]
5658
let ``ObjectListFilter works with LessThan operator``() =
@@ -71,18 +73,20 @@ let ``ObjectListFilter works with LessThanOrEqual operator``() =
7173
let queryable = data.AsQueryable()
7274
let filteredData = queryable.Apply(filter) |> Seq.toList
7375
List.length filteredData |> equals 2
74-
let result1 = List.head filteredData
75-
result1.ID |> equals 4
76-
result1.FirstName |> equals "Ben"
77-
result1.LastName |> equals "Adams"
78-
result1.Contact |> equals { Email = "[email protected]" }
79-
result1.Friends |> equals [ { Email = "[email protected]" }; { Email = "[email protected]" } ]
80-
let result = List.last filteredData
81-
result.ID |> equals 2
82-
result.FirstName |> equals "Jonathan"
83-
result.LastName |> equals "Abrams"
84-
result.Contact |> equals { Email = "[email protected]" }
85-
result.Friends |> equals []
76+
do
77+
let result = List.head filteredData
78+
result.ID |> equals 4
79+
result.FirstName |> equals "Ben"
80+
result.LastName |> equals "Adams"
81+
result.Contact |> equals { Email = "[email protected]" }
82+
result.Friends |> equals [ { Email = "[email protected]" }; { Email = "[email protected]" } ]
83+
do
84+
let result = List.last filteredData
85+
result.ID |> equals 2
86+
result.FirstName |> equals "Jonathan"
87+
result.LastName |> equals "Abrams"
88+
result.Contact |> equals { Email = "[email protected]" }
89+
result.Friends |> equals []
8690

8791
[<Fact>]
8892
let ``ObjectListFilter works with StartsWith operator``() =
@@ -164,18 +168,20 @@ let ``ObjectListFilter works with IN operator for string type field``() =
164168
let queryable = data.AsQueryable()
165169
let filteredData = queryable.Apply(filter) |> Seq.toList
166170
List.length filteredData |> equals 2
167-
let result = List.head filteredData
168-
result.ID |> equals 4
169-
result.FirstName |> equals "Ben"
170-
result.LastName |> equals "Adams"
171-
result.Contact |> equals { Email = "[email protected]" }
172-
result.Friends |> equals [ { Email = "[email protected]" }; { Email = "[email protected]" } ]
173-
let result2 = List.last filteredData
174-
result2.ID |> equals 7
175-
result2.FirstName |> equals "Jeneffer"
176-
result2.LastName |> equals "Trif"
177-
result2.Contact |> equals { Email = "[email protected]" }
178-
result2.Friends |> equals [ { Email = "[email protected]" } ]
171+
do
172+
let result = List.head filteredData
173+
result.ID |> equals 4
174+
result.FirstName |> equals "Ben"
175+
result.LastName |> equals "Adams"
176+
result.Contact |> equals { Email = "[email protected]" }
177+
result.Friends |> equals [ { Email = "[email protected]" }; { Email = "[email protected]" } ]
178+
do
179+
let result = List.last filteredData
180+
result.ID |> equals 7
181+
result.FirstName |> equals "Jeneffer"
182+
result.LastName |> equals "Trif"
183+
result.Contact |> equals { Email = "[email protected]" }
184+
result.Friends |> equals [ { Email = "[email protected]" } ]
179185

180186
[<Fact>]
181187
let ``ObjectListFilter works with IN operator for int type field``() =
@@ -212,12 +218,12 @@ let ``ObjectListFilter works with NOT operator``() =
212218
let queryable = data.AsQueryable()
213219
let filteredData = queryable.Apply(filter) |> Seq.toList
214220
List.length filteredData |> equals 2
215-
let result1 = List.head filteredData
216-
result1.ID |> equals 2
217-
result1.FirstName |> equals "Jonathan"
218-
result1.LastName |> equals "Abrams"
219-
result1.Contact |> equals { Email = "[email protected]" }
220-
result1.Friends |> equals []
221+
let result = List.head filteredData
222+
result.ID |> equals 2
223+
result.FirstName |> equals "Jonathan"
224+
result.LastName |> equals "Abrams"
225+
result.Contact |> equals { Email = "[email protected]" }
226+
result.Friends |> equals []
221227

222228
type Complex =
223229
{ ID : int
@@ -263,18 +269,20 @@ let ``ObjectListFilter works with getDiscriminator for Complex``() =
263269
| Community c -> c.Discriminator))
264270
let filteredData = queryable.Apply(filter, options) |> Seq.toList
265271
List.length filteredData |> equals 2
266-
let result1 = List.head filteredData
267-
match result1 with
268-
| Complex c ->
269-
c.ID |> equals 1
270-
c.Name |> equals "Complex A"
271-
| _ -> failwith "Expected Complex"
272-
let result2 = List.last filteredData
273-
match result2 with
274-
| Complex c ->
275-
c.ID |> equals 4
276-
c.Name |> equals "Complex AA"
277-
| _ -> failwith "Expected Complex"
272+
do
273+
let result = List.head filteredData
274+
match result with
275+
| Complex c ->
276+
c.ID |> equals 1
277+
c.Name |> equals "Complex A"
278+
| _ -> failwith "Expected Complex"
279+
do
280+
let result = List.last filteredData
281+
match result with
282+
| Complex c ->
283+
c.ID |> equals 4
284+
c.Name |> equals "Complex AA"
285+
| _ -> failwith "Expected Complex"
278286

279287

280288
[<Fact>]
@@ -304,18 +312,20 @@ let ``ObjectListFilter works with getDiscriminator and getDiscriminatorValue for
304312
)
305313
let filteredData = queryable.Apply(filter, options) |> Seq.toList
306314
List.length filteredData |> equals 2
307-
let result1 = List.head filteredData
308-
match result1 with
309-
| Complex c ->
310-
c.ID |> equals 1
311-
c.Name |> equals "Complex A"
312-
| _ -> failwith "Expected Complex"
313-
let result2 = List.last filteredData
314-
match result2 with
315-
| Complex c ->
316-
c.ID |> equals 4
317-
c.Name |> equals "Complex AA"
318-
| _ -> failwith "Expected Complex"
315+
do
316+
let result = List.head filteredData
317+
match result with
318+
| Complex c ->
319+
c.ID |> equals 1
320+
c.Name |> equals "Complex A"
321+
| _ -> failwith "Expected Complex"
322+
do
323+
let result = List.last filteredData
324+
match result with
325+
| Complex c ->
326+
c.ID |> equals 4
327+
c.Name |> equals "Complex AA"
328+
| _ -> failwith "Expected Complex"
319329

320330
type Cow =
321331
{ ID : int
@@ -357,16 +367,18 @@ let ``ObjectListFilter works with getDiscriminatorValue for Horse``() =
357367
)
358368
let filteredData = queryable.Apply(filter, options) |> Seq.toList
359369
List.length filteredData |> equals 2
360-
let result1 = List.head filteredData
361-
match result1 with
362-
| h ->
363-
h.ID |> equals 2
364-
h.Name |> equals "Horse B"
365-
let result2 = List.last filteredData
366-
match result2 with
367-
| h ->
368-
h.ID |> equals 4
369-
h.Name |> equals "Horse D"
370+
do
371+
let result = List.head filteredData
372+
match result with
373+
| h ->
374+
h.ID |> equals 2
375+
h.Name |> equals "Horse B"
376+
do
377+
let result = List.last filteredData
378+
match result with
379+
| h ->
380+
h.ID |> equals 4
381+
h.Name |> equals "Horse D"
370382

371383
[<Fact>]
372384
let ``ObjectListFilter works with getDiscriminatorValue startsWith for Horse and Hamster``() =
@@ -385,16 +397,18 @@ let ``ObjectListFilter works with getDiscriminatorValue startsWith for Horse and
385397
)
386398
let filteredData = queryable.Apply(filter, options) |> Seq.toList
387399
List.length filteredData |> equals 3
388-
let result1 = List.head filteredData
389-
match result1 with
390-
| c ->
391-
c.ID |> equals 2
392-
c.Name |> equals "Horse B"
393-
let result2 = List.last filteredData
394-
match result2 with
395-
| c ->
396-
c.ID |> equals 5
397-
c.Name |> equals "Hamster E"
400+
do
401+
let result = List.head filteredData
402+
match result with
403+
| c ->
404+
c.ID |> equals 2
405+
c.Name |> equals "Horse B"
406+
do
407+
let result = List.last filteredData
408+
match result with
409+
| c ->
410+
c.ID |> equals 5
411+
c.Name |> equals "Hamster E"
398412

399413
type ListTagsProduct = {
400414
Name : string
@@ -414,10 +428,12 @@ let ``ObjectListFilter works with Contains operator on list collection propertie
414428
let filter = Contains { FieldName = "Tags"; Value = "Tag3" }
415429
let filteredData = queryable.Apply(filter) |> Seq.toList
416430
List.length filteredData |> equals 2
417-
let result1 = List.head filteredData
418-
result1.Name |> equals "Product B"
419-
let result2 = List.last filteredData
420-
result2.Name |> equals "Product C"
431+
do
432+
let result = List.head filteredData
433+
result.Name |> equals "Product B"
434+
do
435+
let result = List.last filteredData
436+
result.Name |> equals "Product C"
421437

422438
type ArrayTagsProduct = {
423439
Name : string
@@ -438,10 +454,12 @@ let ``ObjectListFilter works with Contains operator on array collection properti
438454
let filter = Contains { FieldName = "Tags"; Value = "Tag3" }
439455
let filteredData = queryable.Apply(filter) |> Seq.toList
440456
List.length filteredData |> equals 2
441-
let result1 = List.head filteredData
442-
result1.Name |> equals "Product B"
443-
let result2 = List.last filteredData
444-
result2.Name |> equals "Product C"
457+
do
458+
let result = List.head filteredData
459+
result.Name |> equals "Product B"
460+
do
461+
let result = List.last filteredData
462+
result.Name |> equals "Product C"
445463

446464
type SetTagsProduct = {
447465
Name : string
@@ -462,7 +480,9 @@ let ``ObjectListFilter works with Contains operator on set collection properties
462480
let filter = Contains { FieldName = "Tags"; Value = "Tag3" }
463481
let filteredData = queryable.Apply(filter) |> Seq.toList
464482
List.length filteredData |> equals 2
465-
let result1 = List.head filteredData
466-
result1.Name |> equals "Product B"
467-
let result2 = List.last filteredData
468-
result2.Name |> equals "Product C"
483+
do
484+
let result = List.head filteredData
485+
result.Name |> equals "Product B"
486+
do
487+
let result = List.last filteredData
488+
result.Name |> equals "Product C"

0 commit comments

Comments
 (0)