git.iko.soy/typeable/mandrill
on v0.5.3.2 help sign in
88 lines 3.0 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 Network.API.Mandrill.Webhooks
13import RawData
14import Test.Tasty.HUnit
16#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ <= 706
17isRight :: Either a b -> Bool
18isRight (Left _) = False
19isRight _ = True
20#endif
22testMessagesSend :: Assertion
23testMessagesSend =
24 assertBool ("send.json: Parsing failed! " ++ show parsePayload)
25 (isRight parsePayload)
26 where
27 parsePayload :: Either String MessagesSendRq
28 parsePayload = eitherDecodeStrict . C8.pack $ sendData
30testUsersInfo :: Assertion
31testUsersInfo = do
32 let res = parsePayload
33 assertBool ("users/info.json (response): Parsing failed: " ++ show res)
34 (isRight parsePayload)
35 where
36 parsePayload :: Either String UsersInfoResponse
37 parsePayload = eitherDecodeStrict . C8.pack $ usersInfoData
39testUsersSenders :: Assertion
40testUsersSenders = do
41 let res = parsePayload
42 assertBool ("users/senders.json (response): Parsing failed: " ++ show res)
43 (isRight parsePayload)
44 where
45 parsePayload :: Either String UsersSendersResponse
46 parsePayload = eitherDecodeStrict . C8.pack $ usersSendersData
48testMessagesResponseRejected :: Assertion
49testMessagesResponseRejected = do
50 assertBool ("send.json response: Parsing failed" ++ show parsePayload)
51 (isRight parsePayload)
52 where
53 parsePayload :: Either String (MandrillResponse [MessagesResponse])
54 parsePayload = eitherDecodeStrict . C8.pack $ messagesResponseRejected
56testDomainAdd :: Assertion
57testDomainAdd =
58 assertBool ("inbound/add-domain.json (response): parsing failed" ++ show parsePayload)
59 (isRight parsePayload)
60 where
61 parsePayload :: Either String DomainAddResponse
62 parsePayload = eitherDecodeStrict . C8.pack $ domainAdd
65testRouteAdd :: Assertion
66testRouteAdd =
67 assertBool ("inbound/add-route.json (response): parsing failed" ++ show parsePayload)
68 (isRight parsePayload)
69 where
70 parsePayload :: Either String RouteAddResponse
71 parsePayload = eitherDecodeStrict . C8.pack $ routeAdd
73testVerifyDomain :: Assertion
74testVerifyDomain =
75 assertBool ("senders/verify-domain.json" ++ show parsePayload)
76 (isRight parsePayload)
77 where
78 parsePayload :: Either String VerifyDomainResponse
79 parsePayload = eitherDecodeStrict . C8.pack $ domainVerify
82testWebhookAdd :: Assertion
83testWebhookAdd =
84 assertBool ("webhooks/add.json (request): parsing failed" ++ show parsePayload)
85 (isRight parsePayload)
86 where
87 parsePayload :: Either String WebhookAddRq
88 parsePayload = eitherDecodeStrict . C8.pack $ webhookAdd