module Database.Redis.Set.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 setAdd" setAddTest , testCase "redis-link setContains" setContainsTest , testCase "redis-link setMembers" setMembersTest , testCase "redis-link setRemove" setRemoveTest ] ------------------------------------------------------------------------------ setAddTest :: H.Assertion setAddTest = do con <- connect localhost defaultPort _ <- select con 0 returning <- setAdd con "theset" "bob" _ <- keyDelete con ["theset"] disconnect con H.assertEqual "setAdd" (Just $ RedisInteger 1) returning ------------------------------------------------------------------------------ setContainsTest :: H.Assertion setContainsTest = do con <- connect localhost defaultPort _ <- select con 0 _ <- setAdd con "setkey" "bob" returning <- setContains con "setkey" "bob" _ <- keyDelete con ["setkey"] disconnect con H.assertEqual "setContains" (Just $ RedisInteger 1) returning ------------------------------------------------------------------------------ setMembersTest :: H.Assertion setMembersTest = do con <- connect localhost defaultPort _ <- select con 0 _ <- setAdd con "nameset" "Bob" _ <- setAdd con "nameset" "Jane" returning <- setMembers con "nameset" _ <- keyDelete con ["setkey"] disconnect con H.assertEqual "setContains" (Just (RedisBulk [Just (RedisBulk [Just (RedisSingle $ toUTF8 "Bob")]) ,Just (RedisBulk [Just (RedisSingle $ toUTF8 "Jane")]) ,Nothing])) returning ------------------------------------------------------------------------------ setRemoveTest :: H.Assertion setRemoveTest = do con <- connect localhost defaultPort _ <- select con 0 _ <- setAdd con "setit" "Bob" _ <- setAdd con "setit" "Frank" _ <- setAdd con "setit" "Jane" _ <- setRemove con "setit" "Frank" returning <- setMembers con "setit" _ <- keyDelete con ["setit"] disconnect con H.assertEqual "setRemove" (Just (RedisBulk [Just (RedisBulk [Just (RedisSingle $ toUTF8 "Bob")]) ,Just (RedisBulk [Just (RedisSingle $ toUTF8 "Jane")]) ,Nothing])) returning