packages feed

couchdb-conduit-0.4.0: 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 Data.Conduit
--import qualified Data.Conduit.List as CL

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" case_justConnect,
    testCase "Put DB" case_dbPut
    ]

-- | Just connect
case_justConnect :: Assertion
case_justConnect = runCouch def $ do
    H.Response (HT.Status sc _) _h _bsrc <- couch' HT.methodGet "" [] [] 
                    (H.RequestBodyBS B.empty)
    liftIO $ sc @=? 200

-- | Put and delete
case_dbPut :: Assertion    
case_dbPut =  runCouch def {couchLogin = login, 
                            couchPass=pass,
                            couchDB="cdbc_dbputdel"} $ do
    couchPutDB_
    couchDeleteDB