packages feed

imagesize-conduit-1.1: test/main.hs

{-# 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