themoviedb-1.0.0.0: test/TestHelper.hs
--------------------------------------------------------------------------------
module TestHelper
( fakeTMDB
, fileRequest
, fakeNetworkError
, mkDay
) where
--------------------------------------------------------------------------------
import Control.Applicative
import qualified Data.ByteString.Lazy as B
import Data.Time (Day (..), fromGregorian)
import Network.API.TheMovieDB.Internal.TheMovieDB
import Network.API.TheMovieDB.Internal.Types
import Test.Tasty.HUnit
--------------------------------------------------------------------------------
fakeTMDB :: FilePath -> TheMovieDB a -> IO a
fakeTMDB path m = do
result <- runTheMovieDBWithRequestFunction (fileRequest path) m
case result of
Left e -> assertFailure (show e) >> fail (show e)
Right a -> return a
--------------------------------------------------------------------------------
fileRequest :: FilePath -> RequestFunction
fileRequest path _ _ = Right <$> B.readFile path
--------------------------------------------------------------------------------
fakeNetworkError :: RequestFunction
fakeNetworkError _ _ = return $ Left $ ServiceError "fake outage"
--------------------------------------------------------------------------------
mkDay :: Integer -> Int -> Int -> Maybe Day
mkDay y m d = Just (fromGregorian y m d)