packages feed

imagesize-conduit-1.0.0.3: test/main.hs

{-# LANGUAGE OverloadedStrings #-}
import qualified Data.Conduit as C
import qualified Data.Conduit.Binary as CB
import Control.Monad.Trans.Resource (runResourceT)
import Data.Conduit.ImageSize

import Test.Hspec

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