git.iko.soy/typeable/mandrill
on release-0.5.2.2 help sign in
78 lines 2.7 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.Senders
10import Network.API.Mandrill.Types
11import Network.API.Mandrill.Users.Types
12import RawData
13import Test.Tasty.HUnit
15#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ <= 706
16isRight :: Either a b -> Bool
17isRight (Left _) = False
18isRight _ = True
19#endif
21testMessagesSend :: Assertion
22testMessagesSend =
23 assertBool ("send.json: Parsing failed! " ++ show parsePayload)
24 (isRight parsePayload)
25 where
26 parsePayload :: Either String MessagesSendRq
27 parsePayload = eitherDecodeStrict . C8.pack $ sendData
29testUsersInfo :: Assertion
30testUsersInfo = do
31 let res = parsePayload
32 assertBool ("users/info.json (response): Parsing failed: " ++ show res)
33 (isRight parsePayload)
34 where
35 parsePayload :: Either String UsersInfoResponse
36 parsePayload = eitherDecodeStrict . C8.pack $ usersInfoData
38testUsersSenders :: Assertion
39testUsersSenders = do
40 let res = parsePayload
41 assertBool ("users/senders.json (response): Parsing failed: " ++ show res)
42 (isRight parsePayload)
43 where
44 parsePayload :: Either String UsersSendersResponse
45 parsePayload = eitherDecodeStrict . C8.pack $ usersSendersData
47testMessagesResponseRejected :: Assertion
48testMessagesResponseRejected = do
49 assertBool ("send.json response: Parsing failed" ++ show parsePayload)
50 (isRight parsePayload)
51 where
52 parsePayload :: Either String (MandrillResponse [MessagesResponse])
53 parsePayload = eitherDecodeStrict . C8.pack $ messagesResponseRejected
55testDomainAdd :: Assertion
56testDomainAdd =
57 assertBool ("inbound/add-domain.json (response): parsing failed" ++ show parsePayload)
58 (isRight parsePayload)
59 where
60 parsePayload :: Either String DomainAddResponse
61 parsePayload = eitherDecodeStrict . C8.pack $ domainAdd
64testRouteAdd :: Assertion
65testRouteAdd =
66 assertBool ("inbound/add-route.json (response): parsing failed" ++ show parsePayload)
67 (isRight parsePayload)
68 where
69 parsePayload :: Either String RouteAddResponse
70 parsePayload = eitherDecodeStrict . C8.pack $ routeAdd
72testVerifyDomain :: Assertion
73testVerifyDomain =
74 assertBool ("senders/verify-domain.json" ++ show parsePayload)
75 (isRight parsePayload)
76 where
77 parsePayload :: Either String VerifyDomainResponse
78 parsePayload = eitherDecodeStrict . C8.pack $ domainVerify