mangopay-1.10: test/Web/MangoPay/AccountsTest.hs
{-# LANGUAGE OverloadedStrings #-}
{-# OPTIONS_GHC -F -pgmF htfpp #-}
-- | test accounts
module Web.MangoPay.AccountsTest where
import Web.MangoPay
import Web.MangoPay.TestUtils
import Data.Default
import Control.Monad (guard)
import Data.Maybe (isJust, fromJust)
import Test.Framework
import Test.HUnit (Assertion)
-- | Test bank account creation using IBAN with BIC.
test_BankAccount_IBAN_BIC :: Assertion
test_BankAccount_IBAN_BIC = doBankAccountTest True
-- | Test bank account creation using IBAN without BIC.
test_BankAccount_IBAN_only :: Assertion
test_BankAccount_IBAN_only = doBankAccountTest False
-- | Do the bank account test, using the BIC or not.
doBankAccountTest :: Bool -> Assertion
doBankAccountTest useBIC = do
usL<-testMP $ listUsers def (Just $ Pagination 1 1)
assertEqual 1 (length $ plData usL)
let uid = urId $ head $ plData usL
iban = "FR3020041010124530725S03383"
bic = "CRLYFRPP"
details = IBAN iban (guard useBIC >> return bic)
acc1=BankAccount Nothing Nothing (Just uid) Nothing details "JP Moresmau" (Just "Earth")
acc2<-testMP $ createAccount acc1
assertBool $ isJust $ baId acc2
assertBool $ isJust $ baCreationDate acc2
assertEqual iban $ atIBAN $ baDetails acc2
if useBIC
then assertEqual (Just bic) $ atBIC $ baDetails acc2
else assertBool $ isJust $ atBIC $ baDetails acc2 -- MangoPay fills in the BIC.
acc3<-testMP $ fetchAccount uid $ fromJust $ baId acc2
assertEqual (baDetails acc2) (baDetails acc3)
accs<-testMP $ listAccounts uid def Nothing
assertBool $ acc3 `elem` (plData accs)