packages feed

couchdb-conduit-0.10.0: test/Database/CouchDB/Conduit/Test/Query.hs

{-# LANGUAGE OverloadedStrings #-} 

-- | Query tests

module Database.CouchDB.Conduit.Test.Query (tests) where

import Test.Framework (testGroup, mutuallyExclusive, Test)
import Test.Framework.Providers.HUnit (testCase)
import Test.HUnit (Assertion, (@=?))

import Control.Monad.IO.Class (liftIO)

import Database.CouchDB.Conduit.View.Query

tests :: Test
tests = mutuallyExclusive $ testGroup "Generic" [
    testCase "Descending" caseDescending
    ]

caseDescending :: Assertion    
caseDescending = liftIO $ do
    mkQuery False [QPInt "i" 0] @=? [("i", Just "0")]
    mkQuery True [QPInt "i" 0] @=? 
            [desc, ("i", Just "0")]
    let swappable = [QPStartKey (0::Int), QPEndKey (1::Int)]
    mkQuery False swappable @=? 
            [("startkey", Just "0"), ("endkey", Just "1")]
    mkQuery True swappable @=? 
            [desc, ("endkey", Just "0"), ("startkey", Just "1")]
  where
    desc = ("descending", Just "true")