packages feed

pipes-transduce-0.3.1.0: tests/tests.hs

{-# LANGUAGE OverloadedStrings #-}

module Main where

import Prelude hiding (splitAt,lines,words)
import Data.Char
import Data.String hiding (lines,words)
import Data.Monoid
import Data.Bifunctor
import qualified Data.List (intersperse,splitAt)
import Test.Tasty
import Test.Tasty.HUnit

import Control.Concurrent (threadDelay)

import Pipes
import Pipes.Transduce
import qualified Pipes.Transduce.Text as PT
import qualified Data.Text as T
import qualified Data.Text.Lazy as TL

import qualified Control.Foldl as L

main :: IO ()
main = defaultMain tests

tests :: TestTree
tests = 
    testGroup "Tests" 
    [
        testMissingDataInCombined
    ]

testMissingDataInCombined :: TestTree
testMissingDataInCombined = testCase "collectStdoutStderrAsByteString" $ do
    r <- fold2 combinedLines producer1 producer2 
    case r of
        ("aa\nbb\ncc\ndd\n",_,_) -> return ()
        _ -> assertFailure $ "did not expect" ++ show r
    where
    producer1 = do
        yield "aa\nbb\n"
    producer2 = do
        liftIO $ threadDelay 300000
        yield "cc\ndd\n"
    combinedLines = combined (PT.lines PT.utf8x) (PT.lines PT.utf8x) PT.intoLazyText