yesod/yesod-core/test/YesodCoreTest/Cache.hs
2012-05-06 12:18:49 +10:00

52 lines
1.0 KiB
Haskell

{-# LANGUAGE QuasiQuotes, TypeFamilies, TemplateHaskell, MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE FlexibleInstances #-}
module YesodCoreTest.Cache (cacheTest, Widget) where
import Test.Hspec
import Test.Hspec.Core (UnevaluatedSpec)
import Test.Hspec.HUnit()
import Network.Wai
import Network.Wai.Test
import Yesod.Core
data C = C
key :: CacheKey Int
key = $(mkCacheKey)
key2 :: CacheKey Int
key2 = $(mkCacheKey)
mkYesod "C" [parseRoutes|/ RootR GET|]
instance Yesod C
getRootR :: Handler ()
getRootR = do
Nothing <- cacheLookup key
cacheInsert key 5
Just 5 <- cacheLookup key
cacheInsert key 7
Just 7 <- cacheLookup key
Nothing <- cacheLookup key2
cacheDelete key
Nothing <- cacheLookup key
return ()
cacheTest :: UnevaluatedSpec
cacheTest =
describe "Test.Cache"
[ it "works" works
]
runner :: Session () -> IO ()
runner f = toWaiApp C >>= runSession f
works :: IO ()
works = runner $ do
res <- request defaultRequest { pathInfo = [] }
assertStatus 200 res