postgresql-binary-0.15.0.1: tasty/Main/Properties.hs
module Main.Properties where
import qualified Database.PostgreSQL.LibPQ as LibPQ
import qualified Main.IO as IO
import Main.Prelude hiding (isLeft, isRight)
import qualified Main.TextEncoder as C
import qualified PostgreSQL.Binary.Decoding as A
import qualified PostgreSQL.Binary.Encoding as B
import Test.QuickCheck
roundtrip ::
(Show a, Eq a) =>
LibPQ.Oid ->
(Bool -> (a -> B.Encoding)) ->
(Bool -> A.Value a) ->
a ->
Property
roundtrip oid encoder decoder value =
Right value === unsafePerformIO (IO.roundtrip oid encoder decoder value)
stdRoundtrip :: (Show a, Eq a) => LibPQ.Oid -> (a -> B.Encoding) -> A.Value a -> a -> Property
stdRoundtrip oid encoder decoder value =
roundtrip oid (const encoder) (const decoder) value
textRoundtrip :: (Show a, Eq a) => LibPQ.Oid -> C.Encoder a -> (Bool -> A.Value a) -> a -> Property
textRoundtrip oid encoder decoder value =
Right value === unsafePerformIO (IO.textRoundtrip oid encoder decoder value)