mangopay-1.5: test/Web/MangoPay/UsersTest.hs
{-# LANGUAGE OverloadedStrings #-}
{-# OPTIONS_GHC -F -pgmF htfpp #-}
module Web.MangoPay.UsersTest where
import Web.MangoPay
import Web.MangoPay.TestUtils
import Test.Framework
import Test.HUnit (Assertion)
import Data.Maybe (fromJust, isJust)
import Data.CountryCodes (CountryCode(FR))
testNaturalUser :: NaturalUser
testNaturalUser=NaturalUser Nothing Nothing "jpmoresmau@gmail.com" "JP" "Moresmau" Nothing 11111 FR FR
(Just "Haskell contractor") (Just IncomeRange2) Nothing Nothing Nothing
test_NaturalUser :: Assertion
test_NaturalUser = do
u<-testMP $ storeNaturalUser testNaturalUser
assertBool (isJust $ uId u)
assertBool (isJust $ uCreationDate u)
uf<-testMP $ fetchNaturalUser (fromJust $ uId u)
assertEqual (uEmail testNaturalUser) (uEmail uf)
assertEqual Nothing (uAddress uf)
ue<-testMP $ storeNaturalUser (uf{uAddress=Just "St Guilhem"})
assertEqual (Just "St Guilhem") (uAddress ue)
assertEqual (Just IncomeRange2) (uIncomeRange ue)
eu<-testMP $ getUser (fromJust $ uId u)
assertEqual (Left ue) eu
usL<-testMP $ listUsers (Just $ Pagination 1 100)
assertEqual 1 (length $ filter (((fromJust $ uId u)==) . urId) $ plData usL)
testLegalUser :: LegalUser
testLegalUser = LegalUser Nothing Nothing "jpmoresmau@gmail.com" "JP Moresmau" Business Nothing
"JP" "Moresmau" (Just "my house") Nothing 222222 FR FR Nothing Nothing Nothing Nothing
test_LegalUser :: Assertion
test_LegalUser = do
l<-testMP $ storeLegalUser testLegalUser
assertBool (isJust $ lId l)
assertBool (isJust $ lCreationDate l)
lf<-testMP $ fetchLegalUser (fromJust $ lId l)
assertEqual (lEmail testLegalUser) (lEmail lf)
assertEqual Nothing (lHeadquartersAddress lf)
le<-testMP $ storeLegalUser (lf{lHeadquartersAddress=Just "St Guilhem"})
assertEqual (Just "St Guilhem") (lHeadquartersAddress le)
assertEqual "Moresmau" (lLegalRepresentativeLastName le)
assertEqual (Just "my house") (lLegalRepresentativeAddress le) -- this is lost, see https://mangopay.desk.com/customer/portal/questions/5980417-legalrepresentativeaddress-in-legaluser-api
assertEqual Nothing (lProofOfRegistration le)
assertEqual Nothing (lShareholderDeclaration le)
el<-testMP $ getUser (fromJust $ lId l)
assertEqual (Right le) el
usL<-testMP $ listUsers (Just $ Pagination 1 100)
assertEqual 1 (length $ filter (((fromJust $ lId l)==) . urId) $ plData usL)
test_PaginationUsers :: Assertion
test_PaginationUsers = do
usL<-testMP $ listUsers (Just $ Pagination 1 1)
--print usL
assertEqual 1 (length $ plData usL)
assertEqual 2 (plItemCount usL)
assertEqual 2 (plPageCount usL)
usL2<-testMP $ listUsers (Just $ Pagination 1 10)
assertEqual 2 (length $ plData usL2)
assertEqual 2 (plItemCount usL2)
assertEqual 1 (plPageCount usL2)
us<-testMP $ getAll listUsers
assertEqual 2 (length us)