packages feed

mandrill-0.1.0.0: test/Tests.hs

{-# LANGUAGE CPP #-}
module Tests where

import Test.Tasty.HUnit
import Data.Either
import Data.Aeson
import Network.API.Mandrill.Messages.Types
import Network.API.Mandrill.Users.Types
import qualified Data.ByteString.Char8 as C8
import RawData

#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ <= 706
isRight :: Either a b -> Bool
isRight (Left _) = False
isRight _ = True
#endif

testMessagesSend :: Assertion
testMessagesSend = 
  assertBool ("send.json: Parsing failed! " ++ show parsePayload)
             (isRight parsePayload)
  where
    parsePayload :: Either String MessagesSendRq
    parsePayload = eitherDecodeStrict . C8.pack $ sendData

testUsersInfo :: Assertion
testUsersInfo = do
  let res = parsePayload
  assertBool ("users/info.json (response): Parsing failed: " ++ show res)
             (isRight parsePayload)
  where
    parsePayload :: Either String UsersInfoResponse
    parsePayload = eitherDecodeStrict . C8.pack $ usersInfoData

testUsersSenders :: Assertion
testUsersSenders = do
  let res = parsePayload
  assertBool ("users/senders.json (response): Parsing failed: " ++ show res)
             (isRight parsePayload)
  where
    parsePayload :: Either String UsersSendersResponse
    parsePayload = eitherDecodeStrict . C8.pack $ usersSendersData