git.iko.soy/typeable/mandrill
on release-0.5.2.1 help sign in
69 lines 2.4 kB history raw
1{-# LANGUAGE CPP #-}
2module Tests where
4import Data.Aeson
5import qualified Data.ByteString.Char8 as C8
6import Data.Either
7import Network.API.Mandrill.Inbound
8import Network.API.Mandrill.Messages.Types
9import Network.API.Mandrill.Types
10import Network.API.Mandrill.Users.Types
11import RawData
12import Test.Tasty.HUnit
14#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ <= 706
15isRight :: Either a b -> Bool
16isRight (Left _) = False
17isRight _ = True
18#endif
20testMessagesSend :: Assertion
21testMessagesSend =
22 assertBool ("send.json: Parsing failed! " ++ show parsePayload)
23 (isRight parsePayload)
24 where
25 parsePayload :: Either String MessagesSendRq
26 parsePayload = eitherDecodeStrict . C8.pack $ sendData
28testUsersInfo :: Assertion
29testUsersInfo = do
30 let res = parsePayload
31 assertBool ("users/info.json (response): Parsing failed: " ++ show res)
32 (isRight parsePayload)
33 where
34 parsePayload :: Either String UsersInfoResponse
35 parsePayload = eitherDecodeStrict . C8.pack $ usersInfoData
37testUsersSenders :: Assertion
38testUsersSenders = do
39 let res = parsePayload
40 assertBool ("users/senders.json (response): Parsing failed: " ++ show res)
41 (isRight parsePayload)
42 where
43 parsePayload :: Either String UsersSendersResponse
44 parsePayload = eitherDecodeStrict . C8.pack $ usersSendersData
46testMessagesResponseRejected :: Assertion
47testMessagesResponseRejected = do
48 assertBool ("send.json response: Parsing failed" ++ show parsePayload)
49 (isRight parsePayload)
50 where
51 parsePayload :: Either String (MandrillResponse [MessagesResponse])
52 parsePayload = eitherDecodeStrict . C8.pack $ messagesResponseRejected
54testDomainAdd :: Assertion
55testDomainAdd =
56 assertBool ("inbound/add-domain.json (response): parsing failed" ++ show parsePayload)
57 (isRight parsePayload)
58 where
59 parsePayload :: Either String DomainAddResponse
60 parsePayload = eitherDecodeStrict . C8.pack $ domainAdd
63testRouteAdd :: Assertion
64testRouteAdd =
65 assertBool ("inbound/add-route.json (response): parsing failed" ++ show parsePayload)
66 (isRight parsePayload)
67 where
68 parsePayload :: Either String RouteAddResponse
69 parsePayload = eitherDecodeStrict . C8.pack $ routeAdd