Skip to content

Commit 7132200

Browse files
committed
Add null-source and related tests for all other TaskSeq functions
1 parent f598331 commit 7132200

21 files changed

+186
-13
lines changed

src/FSharp.Control.TaskSeq.Test/TaskSeq.ExactlyOne.Tests.fs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@ open FSharp.Control
1313
//
1414

1515
module EmptySeq =
16+
[<Fact>]
17+
let ``Null source is invalid`` () =
18+
assertNullArg <| fun () -> TaskSeq.exactlyOne null
19+
assertNullArg <| fun () -> TaskSeq.tryExactlyOne null
20+
1621
[<Theory; ClassData(typeof<TestEmptyVariants>)>]
1722
let ``TaskSeq-exactlyOne throws`` variant = task {
1823
fun () ->

src/FSharp.Control.TaskSeq.Test/TaskSeq.Except.Tests.fs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,20 @@ open FSharp.Control
1414

1515

1616
module EmptySeq =
17+
[<Fact>]
18+
let ``Null source is invalid`` () =
19+
assertNullArg <| fun () -> TaskSeq.except null TaskSeq.empty
20+
assertNullArg <| fun () -> TaskSeq.except TaskSeq.empty null
21+
assertNullArg <| fun () -> TaskSeq.except null null
22+
23+
assertNullArg
24+
<| fun () -> TaskSeq.exceptOfSeq null TaskSeq.empty
25+
26+
assertNullArg
27+
<| fun () -> TaskSeq.exceptOfSeq Seq.empty null
28+
29+
assertNullArg <| fun () -> TaskSeq.exceptOfSeq null null
30+
1731
[<Theory; ClassData(typeof<TestEmptyVariants>)>]
1832
let ``TaskSeq-except`` variant =
1933
Gen.getEmptyVariant variant

src/FSharp.Control.TaskSeq.Test/TaskSeq.Exists.Tests.fs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,14 @@ open FSharp.Control
1212
//
1313

1414
module EmptySeq =
15+
[<Fact>]
16+
let ``Null source is invalid`` () =
17+
assertNullArg
18+
<| fun () -> TaskSeq.exists (fun _ -> false) null
19+
20+
assertNullArg
21+
<| fun () -> TaskSeq.existsAsync (fun _ -> Task.fromResult false) null
22+
1523
[<Theory; ClassData(typeof<TestEmptyVariants>)>]
1624
let ``TaskSeq-exists returns false`` variant =
1725
Gen.getEmptyVariant variant

src/FSharp.Control.TaskSeq.Test/TaskSeq.Filter.Tests.fs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,15 @@ open FSharp.Control
1414

1515

1616
module EmptySeq =
17+
[<Fact>]
18+
let ``Null source is invalid`` () =
19+
assertNullArg
20+
<| fun () -> TaskSeq.filter (fun _ -> false) null
21+
22+
assertNullArg
23+
<| fun () -> TaskSeq.filterAsync (fun _ -> Task.fromResult false) null
24+
25+
1726
[<Theory; ClassData(typeof<TestEmptyVariants>)>]
1827
let ``TaskSeq-filter has no effect`` variant =
1928
Gen.getEmptyVariant variant

src/FSharp.Control.TaskSeq.Test/TaskSeq.Find.Tests.fs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,20 @@ open System.Collections.Generic
1515
//
1616

1717
module EmptySeq =
18+
[<Fact>]
19+
let ``Null source is invalid`` () =
20+
assertNullArg
21+
<| fun () -> TaskSeq.find (fun _ -> false) null
22+
23+
assertNullArg
24+
<| fun () -> TaskSeq.findAsync (fun _ -> Task.fromResult false) null
25+
26+
assertNullArg
27+
<| fun () -> TaskSeq.tryFind (fun _ -> false) null
28+
29+
assertNullArg
30+
<| fun () -> TaskSeq.tryFindAsync (fun _ -> Task.fromResult false) null
31+
1832
[<Theory; ClassData(typeof<TestEmptyVariants>)>]
1933
let ``TaskSeq-find raises KeyNotFoundException`` variant =
2034
fun () ->

src/FSharp.Control.TaskSeq.Test/TaskSeq.FindIndex.Tests.fs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,20 @@ open System.Collections.Generic
1515
//
1616

1717
module EmptySeq =
18+
[<Fact>]
19+
let ``Null source is invalid`` () =
20+
assertNullArg
21+
<| fun () -> TaskSeq.findIndex (fun _ -> false) null
22+
23+
assertNullArg
24+
<| fun () -> TaskSeq.findIndexAsync (fun _ -> Task.fromResult false) null
25+
26+
assertNullArg
27+
<| fun () -> TaskSeq.tryFindIndex (fun _ -> false) null
28+
29+
assertNullArg
30+
<| fun () -> TaskSeq.tryFindIndexAsync (fun _ -> Task.fromResult false) null
31+
1832
[<Theory; ClassData(typeof<TestEmptyVariants>)>]
1933
let ``TaskSeq-findIndex raises KeyNotFoundException`` variant =
2034
fun () ->

src/FSharp.Control.TaskSeq.Test/TaskSeq.Fold.Tests.fs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,14 @@ open FSharp.Control
1313
//
1414

1515
module EmptySeq =
16+
[<Fact>]
17+
let ``Null source is invalid`` () =
18+
assertNullArg
19+
<| fun () -> TaskSeq.fold (fun _ _ -> 42) 0 null
20+
21+
assertNullArg
22+
<| fun () -> TaskSeq.foldAsync (fun _ _ -> Task.fromResult 42) 0 null
23+
1624
[<Theory; ClassData(typeof<TestEmptyVariants>)>]
1725
let ``TaskSeq-fold takes state when empty`` variant = task {
1826
let! empty =

src/FSharp.Control.TaskSeq.Test/TaskSeq.Head.Tests.fs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ open FSharp.Control
1313
//
1414

1515
module EmptySeq =
16+
[<Fact>]
17+
let ``Null source is invalid`` () =
18+
assertNullArg <| fun () -> TaskSeq.head null
19+
assertNullArg <| fun () -> TaskSeq.tryHead null
1620

1721
[<Theory; ClassData(typeof<TestEmptyVariants>)>]
1822
let ``TaskSeq-head throws`` variant = task {

src/FSharp.Control.TaskSeq.Test/TaskSeq.Indexed.Tests.fs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ open FSharp.Control
1111
//
1212

1313
module EmptySeq =
14+
[<Fact>]
15+
let ``Null source is invalid`` () = assertNullArg <| fun () -> TaskSeq.indexed null
16+
1417
[<Theory; ClassData(typeof<TestEmptyVariants>)>]
1518
let ``TaskSeq-indexed on empty`` variant =
1619
Gen.getEmptyVariant variant

src/FSharp.Control.TaskSeq.Test/TaskSeq.IsEmpty.fs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,13 @@ open FsToolkit.ErrorHandling
77

88
open FSharp.Control
99

10+
//
11+
// TaskSeq.isEmpty
12+
//
13+
1014
module EmptySeq =
15+
[<Fact>]
16+
let ``Null source is invalid`` () = assertNullArg <| fun () -> TaskSeq.head null
1117

1218
[<Theory; ClassData(typeof<TestEmptyVariants>)>]
1319
let ``TaskSeq-isEmpty returns true for empty`` variant =

0 commit comments

Comments
 (0)