lmdb-simple-0.2.0.0: test/Database/LMDB/Simple/DBRefSpec.hs
module Database.LMDB.Simple.DBRefSpec
( spec
) where
import Database.LMDB.Simple.DBRef
import Harness
import Test.Hspec
spec :: Spec
spec = beforeAll (setup >>= \(env, db) -> newDBRef env db 0) $ do
it "starts empty" $ \ref ->
readDBRef ref
`shouldReturn` Nothing
it "reads what is written" $ \ref ->
(writeDBRef ref (Just "foo") >> readDBRef ref)
`shouldReturn` Just "foo"
it "reads what is modified" $ \ref ->
(modifyDBRef_ ref (fmap (++ "bar")) >> readDBRef ref)
`shouldReturn` Just "foobar"
it "can be made empty again" $ \ref ->
(writeDBRef ref Nothing >> readDBRef ref)
`shouldReturn` Nothing