{-# LANGUAGE OverloadedStrings #-} module Main where import Control.Monad.IO.Class (MonadIO (liftIO)) import Control.Monad.Trans.Resource (MonadResource, runResourceT) import Data.Default import System.Process (system) import System.IO.Temp (withSystemTempDirectory) import Test.Hspec import Test.Hspec.Expectations import Test.Hspec.QuickCheck (prop) import Test.QuickCheck import Database.RocksDB initializeDB :: MonadResource m => FilePath -> m DB initializeDB path = open path defaultOptions {createIfMissing = True, compression = NoCompression} main :: IO () main = hspec $ do describe "Basic DB Functionality" $ do it "should put items into the database and retrieve them" $ do runResourceT $ withSystemTempDirectory "rocksdb" $ \path -> do db <- initializeDB path put db def "zzz" "zzz" get db def "zzz" `shouldReturn` (Just "zzz")