memcache-0.1.0.0: test/Full.hs
{-# LANGUAGE OverloadedStrings #-}
-- | Our testsuite, which we run expecting there to be a local memcache server
-- running on `localhost:11211`.
module Main where
import qualified Database.Memcache.Client as M
import Control.Monad
import qualified Data.ByteString.Char8 as BC
import System.Exit
main :: IO ()
main = do
c <- M.newClient [M.ServerSpec "localhost" 11211 M.NoAuth] M.defaultOptions
getTest c
exitSuccess
getTest :: M.Client -> IO ()
getTest c = do
void $ M.set c (BC.pack "key") (BC.pack "world") 0 0
Just (v', _, _) <- M.get c "key"
when (v' /= "world") $ do
putStrLn $ "bad value returned! " ++ show v'
exitFailure
deleteTest :: M.Client -> IO ()
deleteTest c = do
v1 <- M.set c "key" "world" 0 0
v2 <- M.set c "key" "world22" 0 0
when (v1 == v2) $ do
putStrLn $ "bad versions! " ++ show v1 ++ ", " ++ show v2
exitFailure
r <- M.delete c "key" 0
unless r $ do
putStrLn "delete failed!"
exitFailure