Redmine-0.0.8: testsuite/testGet.hs
{-# LANGUAGE OverloadedStrings #-}
import Test.HUnit
import Data.Aeson
import Data.Map
import Data.Time (Day, fromGregorian)
import Redmine.Get
import Redmine.Types
test1 = TestCase (do let m = fromList [("toto","a"),("offset","20"), ("limit","100")]
ref = "?toto=a&offset=20&limit=100&"
assertEqual "Option expansion failed" ref (expandOptions m))
test2 = TestCase (do let m = fromList [("offset","20"), ("limit","100")]
ref = fromList [("offset","120"), ("limit","100")]
assertEqual "increaseQueryRange a échouée" ref (increaseQueryRange m))
test3 = TestCase $ assertEqual "Test de parsing d'un Day" (Just $ fromGregorian 1999 01 12) (decode "\"1999-01-12\"")
test4 = TestCase $ assertEqual "Test de parsing d'un Day" "\"1999-01-12\"" (encode $ fromGregorian 1999 01 12)
refCustomField = Just $ CustomField 1 "name" ""
customFieldWithValue = "{\"id\":1,\"name\":\"name\",\"value\":\"\"}"
testCustomFieldWithValue = TestCase $ assertEqual "Parse CustomField with value failed" refCustomField (decode customFieldWithValue)
customFieldWithOutValue = "{\"id\":1,\"name\":\"name\"}"
testCustomFieldWithOutValue = TestCase $ assertEqual "Parse CustomField without value failed" refCustomField (decode customFieldWithOutValue)
--decodeIssue
tests = TestList [TestLabel "test1" test1, TestLabel "test2" test2, TestLabel "test3" test3, TestLabel "test4" test4
, TestLabel "testCustomFieldWithValue" testCustomFieldWithValue, TestLabel "testCustomFieldWithOutValue" testCustomFieldWithOutValue]
main = runTestTT tests