packages feed

haskell-ffprobe-0.1.0.0: test/FFProbe/Data/TestFormat.hs

module FFProbe.Data.TestFormat (specs) where

import Data.Aeson
import FFProbe.Data.Format
import FFProbe.Data.Tags
import Test.Hspec
import Utils
import Prelude hiding (id)

specs :: Spec
specs = describe "Format Parsing" $ do
    it "Should Parse the correct values" $ do
        rawJson <- getAssetContent "format.json"
        shouldBeRight
            (eitherDecodeStrict rawJson)
            ( \format -> do
                filename format `shouldBe` "A.mkv"
                streamsCount format `shouldBe` 5
                programsCount format `shouldBe` 0
                streamGroupsCount format `shouldBe` 0
                formatName format `shouldBe` "matroska,webm"
                formatLongName format `shouldBe` "Matroska / WebM"
                startTime format `shouldBe` 0.0
                duration format `shouldBe` 5272.96
                bitrate format `shouldBe` 5406763
                length (tags format) `shouldBe` 1
                lookupTag "ENCODER" format `shouldBe` Just (StringTag "Lavf60.16.100")
            )