@@ -367,35 +367,50 @@ let ``AsyncSeq.while should allow do at end``() =
367367 Assert.True( true )
368368
369369let observe vs err =
370+ let discarded = ref false
370371 { new IObservable< 'U> with
371372 member x.Subscribe ( observer ) =
372373 for v in vs do
373374 observer.OnNext v
374375 if err then
375376 observer.OnError ( Failure " fail" )
376377 observer.OnCompleted()
377- { new IDisposable with member __.Dispose () = () } }
378+ { new IDisposable with member __.Dispose () = discarded := true } },
379+ ( fun _ -> discarded.Value)
378380
379381[<Test>]
380- let ``AsyncSeq.ofObservable should work ( empty ) ``() =
381- Assert.True( observe [] false |> AsyncSeq.ofObservableBuffered |> AsyncSeq.toList |> Async.RunSynchronously = [])
382+ let ``AsyncSeq.ofObservableBuffered should work ( empty ) ``() =
383+ let src , discarded = observe [] false
384+ Assert.True( src |> AsyncSeq.ofObservableBuffered |> AsyncSeq.toList |> Async.RunSynchronously = [])
385+ Assert.True( discarded())
382386
383387[<Test>]
384- let ``AsyncSeq.ofObservable should work ( sinngleton ) ``() =
385- Assert.True( observe [ 1 ] false |> AsyncSeq.ofObservableBuffered |> AsyncSeq.toList |> Async.RunSynchronously = [ 1 ])
388+ let ``AsyncSeq.ofObservableBuffered should work ( sinngleton ) ``() =
389+ let src , discarded = observe [ 1 ] false
390+ Assert.True( src |> AsyncSeq.ofObservableBuffered |> AsyncSeq.toList |> Async.RunSynchronously = [ 1 ])
391+ Assert.True( discarded())
386392
387393[<Test>]
388- let ``AsyncSeq.ofObservable should work ( ten ) ``() =
389- Assert.True( observe [ 1 .. 10 ] false |> AsyncSeq.ofObservableBuffered |> AsyncSeq.toList |> Async.RunSynchronously = [ 1 .. 10 ])
394+ let ``AsyncSeq.ofObservableBuffered should work ( ten ) ``() =
395+ let src , discarded = observe [ 1 .. 10 ] false
396+ Assert.True( src |> AsyncSeq.ofObservableBuffered |> AsyncSeq.toList |> Async.RunSynchronously = [ 1 .. 10 ])
397+ Assert.True( discarded())
390398
391399[<Test>]
392- let ``AsyncSeq.ofObservable should work ( empty , fail ) ``() =
393- Assert.True( try ( observe [] true |> AsyncSeq.ofObservableBuffered |> AsyncSeq.toList |> Async.RunSynchronously |> ignore); false with _ -> true )
400+ let ``AsyncSeq.ofObservableBuffered should work ( empty , fail ) ``() =
401+ let src , discarded = observe [] true
402+ Assert.True( try ( src |> AsyncSeq.ofObservableBuffered |> AsyncSeq.toList |> Async.RunSynchronously |> ignore); false with _ -> true )
403+ Assert.True( discarded())
394404
395405[<Test>]
396- let ``AsyncSeq.ofObservable should work ( one , fail ) ``() =
397- Assert.True( try ( observe [ 1 ] true |> AsyncSeq.ofObservableBuffered |> AsyncSeq.toList |> Async.RunSynchronously |> ignore); false with _ -> true )
406+ let ``AsyncSeq.ofObservableBuffered should work ( one , fail ) ``() =
407+ let src , discarded = observe [ 1 ] true
408+ Assert.True( try ( src |> AsyncSeq.ofObservableBuffered |> AsyncSeq.toList |> Async.RunSynchronously |> ignore); false with _ -> true )
409+ Assert.True( discarded())
398410
399411[<Test>]
400- let ``AsyncSeq.ofObservable should work ( one , take ) ``() =
401- Assert.True( observe [ 1 ] false |> AsyncSeq.ofObservableBuffered |> AsyncSeq.take 1 |> AsyncSeq.toList |> Async.RunSynchronously = [ 1 ])
412+ let ``AsyncSeq.ofObservableBuffered should work ( one , take ) ``() =
413+ let src , discarded = observe [ 1 ] true
414+ Assert.True( src |> AsyncSeq.ofObservableBuffered |> AsyncSeq.take 1 |> AsyncSeq.toList |> Async.RunSynchronously = [ 1 ])
415+ // Take doesn't correctly run finally clauses, see https://github.com/fsprojects/FSharp.Control.AsyncSeq/issues/15
416+ //Assert.True(discarded())
0 commit comments