{-# LANGUAGE TemplateHaskell #-}
import Test.QuickCheck.Simple (Test, eqTest, defaultMain)
import Export (onX, assignX, registerX, insertQueryX, deleteX)
import qualified Data.ByteString.Char8 as B
import Data.ByteString.Short (ShortByteString, fromShort)
import Database.Relational (relationalQuery)
import Database.Relational.Export
(inlineQuery_, inlineUpdate_, inlineInsertValue_, inlineInsertQuery_, inlineDelete_)
$(inlineQuery_
(const $ return ())
(relationalQuery onX)
"inlineOnX")
$(inlineUpdate_
(const $ return ())
assignX
"inlineAssignX")
$(inlineInsertValue_
(const $ return ())
registerX
"inlineRegisterX")
$(inlineInsertQuery_
(const $ return ())
insertQueryX
"inlineInsertQueryX")
$(inlineDelete_
(const $ return ())
deleteX
"inlineDeleteX")
eqInline :: Show a => String -> ShortByteString -> a -> Test
eqInline name inline orig = eqTest name (B.unpack $ fromShort inline) (show orig)
tests :: [Test]
tests =
[ eqInline "onX" inlineOnX onX
, eqInline "assignX" inlineAssignX assignX
, eqInline "registerX" inlineRegisterX registerX
, eqInline "insertQueryX" inlineInsertQueryX insertQueryX
, eqInline "deleteX" inlineDeleteX deleteX
]
main :: IO ()
main = defaultMain tests