module Main where
import Test.HUnit
import Test.HUnit.Text
import Text.Subtitles.SUB
import Data.Text (pack)
import Data.Text.IO as TI (readFile)
import Data.Attoparsec.Text (parseOnly)
main :: IO ()
main = runTestTT (test assertSUB) >> return ()
expectedSUB :: Subtitles
expectedSUB = [Line 13187 13215 (Just Italic) (pack "Áno!"),
Line 13430 13456 Nothing (pack "Áno!"),
Line 13935 14020 (Just (C (pack "$0000ff"))) (pack "Nezdie¾am vašu rados..."),
Line 14034 14147 Nothing (pack "- Dobrá práca, agentka Marcusová.|- Ïakujem.")]
assertSUB :: Assertion
assertSUB = do
example <- TI.readFile "./test/example.sub"
case parseOnly parseSUB example of
Left _ -> assertFailure "parseSUB failed on example"
Right r -> assertEqual "parseSUB result didn't match expected" expectedSUB r