couchdb-conduit-0.8.3: test/Database/CouchDB/Conduit/Test/Base.hs
{-# LANGUAGE OverloadedStrings #-}
-- | base tests
module Database.CouchDB.Conduit.Test.Base (tests) where
import Test.Framework (testGroup, mutuallyExclusive, Test)
import Test.Framework.Providers.HUnit (testCase)
import Test.HUnit (Assertion, (@=?))
import CouchDBAuth
import Control.Monad.IO.Class (liftIO)
import qualified Data.ByteString as B
import qualified Network.HTTP.Conduit as H
import qualified Network.HTTP.Types as HT
import Database.CouchDB.Conduit
import Database.CouchDB.Conduit.DB
import Database.CouchDB.Conduit.LowLevel
tests :: Test
tests = mutuallyExclusive $ testGroup "Base" [
testCase "Just connect" caseJustConnect,
testCase "Put and delete DB" caseDbPut
]
-- | Just connect
caseJustConnect :: Assertion
caseJustConnect = runCouch def $ do
H.Response (HT.Status sc _) _ _h _bsrc <- couch HT.methodGet "" [] []
(H.RequestBodyBS B.empty) protect'
liftIO $ sc @=? 200
-- | Put and delete
caseDbPut :: Assertion
caseDbPut = runCouch def {couchLogin = login,
couchPass=pass} $ do
couchPutDB_ "cdbc_dbputdel"
couchDeleteDB "cdbc_dbputdel"