{-# OPTIONS_GHC -F -pgmF htfpp #-} -- | entry module for tests module Main where import Test.Framework import {-@ HTF_TESTS @-} Web.MangoPay.AccessTest import {-@ HTF_TESTS @-} Web.MangoPay.UsersTest import {-@ HTF_TESTS @-} Web.MangoPay.WalletsTest import {-@ HTF_TESTS @-} Web.MangoPay.DocumentsTest import {-@ HTF_TESTS @-} Web.MangoPay.PayinsTest import {-@ HTF_TESTS @-} Web.MangoPay.CardsTest import {-@ HTF_TESTS @-} Web.MangoPay.RefundsTest import {-@ HTF_TESTS @-} Web.MangoPay.AccountsTest import {-@ HTF_TESTS @-} Web.MangoPay.PayoutsTest import Web.MangoPay.TestUtils import Control.Exception (bracket) import Network.HTTP.Conduit as H import Control.Concurrent (killThread, threadDelay) import Control.Monad.IO.Class (liftIO) import Data.IORef (modifyIORef, readIORef) import Test.HUnit (Assertion) import Control.Monad (liftM) -- | test entry point main :: IO() main = H.withManager (\mgr->liftIO $ do hook<-getHookEndPoint res<-newReceivedEvents -- initial state modifyIORef testState (\ts->ts{tsManager=mgr,tsHookEndPoint=hook,tsReceivedEvents=res}) bracket (startHTTPServer (hepPort hook) res) killThread (\_->htfMain $ htf_importedTests ++ [htf_thisModulesTests]) ) -- | test there are no unprocessed events test_Final :: Assertion test_Final=do -- wait in case events still arrive threadDelay $ 5 * 1000000 res<-liftM tsReceivedEvents $ readIORef testState evts<-popReceivedEvents res assertEqual [] evts