module Database.Redis.General.Tests ( tests ) where ------------------------------------------------------------------------------ import Test.Framework (Test) import Test.Framework.Providers.HUnit -- import Test.Framework.Providers.QuickCheck2 import qualified Test.HUnit as H -- import Test.QuickCheck -- import Test.QuickCheck.Monadic import Database.Redis ------------------------------------------------------------------------------ -- N.B. These aren't proper tests yet, just checks ------------------------------------------------------------------------------ tests :: [Test] tests = [ testCase "redis-link keyExists" keyExistsTest , testCase "redis-link keyType" keyTypeTest , testCase "redis-link keys" keysTest , testCase "redis-link keyRandom" keyRandomTest ] ------------------------------------------------------------------------------ keyExistsTest :: H.Assertion keyExistsTest = do con <- connect localhost defaultPort _ <- select con 0 _ <- itemSet con "thekey" "thevalue" returning <- keyExists con "thekey" _ <- keyDelete con ["thekey"] disconnect con H.assertEqual "keyExistsTest" (Just $ RedisInteger 1) returning ------------------------------------------------------------------------------ keyTypeTest :: H.Assertion keyTypeTest = do con <- connect localhost defaultPort _ <- select con 0 _ <- itemSet con "typekey" "typevalue" returning <- keyType con "typekey" _ <- keyDelete con ["typekey"] disconnect con H.assertEqual "keyTypeTest" (Just $ RedisSingle $ toUTF8 "string") returning ------------------------------------------------------------------------------ keysTest :: H.Assertion keysTest = do con <- connect localhost defaultPort _ <- select con 0 _ <- itemSet con "keystest0" "value" _ <- itemSet con "keystest1" "value" returning <- keys con "keys*" _ <- keyDelete con ["keystest0"] _ <- keyDelete con ["keystest1"] disconnect con H.assertEqual "keysTest" (Just (RedisBulk [Just (RedisBulk [Just (RedisSingle $ toUTF8 "keystest0")]) ,Just (RedisBulk [Just (RedisSingle $ toUTF8 "keystest1")]) ,Nothing])) returning ------------------------------------------------------------------------------ keyRandomTest :: H.Assertion keyRandomTest = do con <- connect localhost defaultPort _ <- select con 0 returning <- keyRandom con disconnect con H.assertEqual "keyRandomTest" "blah" "blah"