packages feed

xml-query-xml-types-0.4: tasty/Main.hs

module Main where

import BasePrelude hiding (assert)
import Data.Default.Class
import Test.QuickCheck.Instances
import Test.Tasty
import Test.Tasty.HUnit
import Test.Tasty.SmallCheck
import Test.Tasty.QuickCheck
import Data.Text (Text)
import qualified Test.QuickCheck as QuickCheck
import qualified Main.Queries as Queries
import qualified XMLQuery as XMLQuery
import qualified XMLQuery.XMLTypes as XMLQueryXMLTypes
import qualified Text.XML as XMLConduit
import qualified Data.XML.Types as XMLTypes


main =
  defaultMain tree

tree =
  testGroup "All tests"
  [
    testCase "sample 1" $
      queryFile Queries.query1 "samples/1.xml" >>=
      \x -> assertEqual (show x) (Right ("Ehrlin, Carl-Johan Forssén", "9788202505929", ["Bøker", "Barnas ARK"])) x
  ]

queryFile :: XMLQuery.Element a -> String -> IO (Either (Maybe Text) a)
queryFile query filename =
  XMLConduit.readFile def filename >>=
  pure . XMLQueryXMLTypes.element query . XMLTypes.documentRoot . XMLConduit.toXMLDocument