packages feed

couchdb-conduit-0.10.1: 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 [QPInt "i" 0] @=? [("i", Just "0")]
    mkQuery [QPDescending, QPInt "i" 0] @=? 
            [desc, ("i", Just "0")]
    let swappable = [QPStartKey (0::Int), QPEndKey (1::Int)]
    mkQuery swappable @=? 
            [("startkey", Just "0"), ("endkey", Just "1")]
    mkQuery (QPDescending : swappable) @=? 
            [desc, ("endkey", Just "0"), ("startkey", Just "1")]
  where
    desc = ("descending", Just "true")