{-# LANGUAGE OverloadedStrings #-} import Control.Monad.Trans.Resource (runResourceT) import Test.Hspec import qualified Data.Conduit as C import qualified Data.Conduit.Binary as CB import Data.Conduit.ImageSize main :: IO () main = hspec $ do describe "image size" $ do it "png" $ check (Just (Size 271 61, PNG)) "test/logo.png" it "jpg" $ check (Just (Size 271 61, JPG)) "test/logo.jpg" it "gif" $ check (Just (Size 271 61, GIF)) "test/logo.gif" it "invalid" $ check Nothing "test/main.hs" check :: Maybe (Size, FileFormat) -> FilePath -> Expectation check ex fp = do size <- runResourceT $ CB.sourceFile fp C.$$ sinkImageInfo size `shouldBe` ex