spec/mangopay/shared_resources.rb in mangopay-3.0.31 vs spec/mangopay/shared_resources.rb in mangopay-3.0.32
- old
+ new
@@ -1,397 +1,421 @@
###############################################
shared_context 'users' do
-###############################################
+ ###############################################
let(:new_natural_user) { create_new_natural_user }
def define_new_natural_user
{
- Tag: 'Test natural user',
- Email: 'my@email.com',
- FirstName: 'John',
- LastName: 'Doe',
- Address: {
+ Tag: 'Test natural user',
+ Email: 'my@email.com',
+ FirstName: 'John',
+ LastName: 'Doe',
+ Address: {
AddressLine1: 'Le Palais Royal',
AddressLine2: '8 Rue de Montpensier',
City: 'Paris',
Region: '',
PostalCode: '75001',
Country: 'FR'
},
- Birthday: 1300186358,
- Birthplace: 'Paris',
- Nationality: 'FR',
- CountryOfResidence: 'FR',
- Occupation: 'Worker',
- IncomeRange: 1
+ Birthday: 1_300_186_358,
+ Birthplace: 'Paris',
+ Nationality: 'FR',
+ CountryOfResidence: 'FR',
+ Occupation: 'Worker',
+ IncomeRange: 1
}
end
+
def create_new_natural_user
MangoPay::NaturalUser.create(define_new_natural_user)
end
- let(:new_legal_user) {
- MangoPay::LegalUser.create({
- Name: 'Super',
- Email: 'super@email.com',
- LegalPersonType: 'BUSINESS',
- HeadquartersAddress: {
- AddressLine1: '6 Parvis Notre-Dame',
- AddressLine2: 'Pl. Jean-Paul II',
- City: 'Paris',
- Region: '',
- PostalCode: '75004',
- Country: 'FR'
+ let(:new_legal_user) do
+ MangoPay::LegalUser.create(
+ Name: 'Super',
+ Email: 'super@email.com',
+ LegalPersonType: 'BUSINESS',
+ HeadquartersAddress: {
+ AddressLine1: '6 Parvis Notre-Dame',
+ AddressLine2: 'Pl. Jean-Paul II',
+ City: 'Paris',
+ Region: 'FR',
+ PostalCode: '75004',
+ Country: 'FR'
},
- LegalRepresentativeFirstName: 'John',
- LegalRepresentativeLastName: 'Doe',
- LegalRepresentativeAdress: {
+ LegalRepresentativeFirstName: 'John',
+ LegalRepresentativeLastName: 'Doe',
+ LegalRepresentativeAdress: {
AddressLine1: '38 Rue de Montpensier',
AddressLine2: '',
City: 'Paris',
Region: '',
PostalCode: '75001',
Country: 'FR'
},
- LegalRepresentativeEmail: 'john@doe.com',
- LegalRepresentativeBirthday: 1300186358,
- LegalRepresentativeNationality: 'FR',
- LegalRepresentativeCountryOfResidence: 'FR',
- Statute: '',
- ProofOfRegistration: '',
- ShareholderDeclaration: ''
- })
- }
+ LegalRepresentativeEmail: 'john@doe.com',
+ LegalRepresentativeBirthday: 1_300_186_358,
+ LegalRepresentativeNationality: 'FR',
+ LegalRepresentativeCountryOfResidence: 'FR',
+ Statute: '',
+ ProofOfRegistration: '',
+ ShareholderDeclaration: ''
+ )
+ end
end
###############################################
shared_context 'wallets' do
-###############################################
+ ###############################################
include_context 'users'
let(:new_wallet) { create_new_wallet(new_natural_user) }
let(:new_wallet_legal) { create_new_wallet(new_legal_user) }
def create_new_wallet(user)
- MangoPay::Wallet.create({
+ MangoPay::Wallet.create(
Owners: [user['Id']],
Description: 'A test wallet',
Currency: 'EUR',
Tag: 'Test wallet'
- })
+ )
end
def wallets_check_amounts(wlt1, amnt1, wlt2 = nil, amnt2 = nil)
expect(wlt1['Balance']['Amount']).to eq amnt1
expect(wlt2['Balance']['Amount']).to eq amnt2 if wlt2
end
def wallets_reload_and_check_amounts(wlt1, amnt1, wlt2 = nil, amnt2 = nil)
- wlt1 = MangoPay::Wallet::fetch(wlt1['Id'])
- wlt2 = MangoPay::Wallet::fetch(wlt2['Id']) if wlt2
+ wlt1 = MangoPay::Wallet.fetch(wlt1['Id'])
+ wlt2 = MangoPay::Wallet.fetch(wlt2['Id']) if wlt2
wallets_check_amounts(wlt1, amnt1, wlt2, amnt2)
end
end
+shared_context 'ubo' do
+ def new_ubo(user, ubo_declaration)
+ ubo = {
+ FirstName: 'John',
+ LastName: 'Doe',
+ Address: {
+ AddressLine1: '6 Parvis Notre-Dame',
+ AddressLine2: 'Pl. Jean-Paul II',
+ City: 'Paris',
+ Region: '',
+ PostalCode: '75004',
+ Country: 'FR'
+ },
+ Nationality: 'FR',
+ Birthday: 1_300_186_358,
+ Birthplace: {
+ City: 'Paris',
+ Country: 'FR'
+ }
+ }
+ MangoPay::Ubo.create(user['Id'], ubo_declaration['Id'], ubo)
+ end
+end
+
###############################################
shared_context 'bank_accounts' do
-###############################################
+ ###############################################
include_context 'users'
- let(:new_bank_account) {
- MangoPay::BankAccount.create(new_natural_user['Id'], {
- Type: 'IBAN',
- OwnerName: 'John',
- OwnerAddress: {
- AddressLine1: 'Le Palais Royal',
- AddressLine2: '8 Rue de Montpensier',
- City: 'Paris',
- Region: '',
- PostalCode: '75001',
- Country: 'FR'
- },
- IBAN: 'FR7618829754160173622224154',
- BIC: 'CMBRFR2BCME',
- Tag: 'Test bank account'
- })
- }
+ let(:new_bank_account) do
+ MangoPay::BankAccount.create(new_natural_user['Id'],
+ Type: 'IBAN',
+ OwnerName: 'John',
+ OwnerAddress: {
+ AddressLine1: 'Le Palais Royal',
+ AddressLine2: '8 Rue de Montpensier',
+ City: 'Paris',
+ Region: '',
+ PostalCode: '75001',
+ Country: 'FR'
+ },
+ IBAN: 'FR7618829754160173622224154',
+ BIC: 'CMBRFR2BCME',
+ Tag: 'Test bank account')
+ end
end
###############################################
shared_context 'mandates' do
-###############################################
+ ###############################################
include_context 'bank_accounts'
- let(:new_mandate) { create_new_mandate() }
- def create_new_mandate()
- MangoPay::Mandate.create({
+ let(:new_mandate) {create_new_mandate}
+
+ def create_new_mandate
+ MangoPay::Mandate.create(
BankAccountId: new_bank_account['Id'],
Culture: 'FR',
ReturnURL: MangoPay.configuration.root_url,
Tag: 'Test mandate'
- })
+ )
end
end
###############################################
shared_context 'kyc_documents' do
-###############################################
+ ###############################################
include_context 'users'
let(:new_document) { create_new_document(new_natural_user) }
def create_new_document(user)
- MangoPay::KycDocument.create(user['Id'], {
- Type: 'IDENTITY_PROOF',
- Tag: 'Test document'
- })
+ MangoPay::KycDocument.create(user['Id'],
+ Type: 'IDENTITY_PROOF',
+ Tag: 'Test document')
end
end
###############################################
shared_context 'payins' do
-###############################################
+ ###############################################
include_context 'users'
include_context 'wallets'
include_context 'mandates'
###############################################
# directdebit/web
###############################################
- let(:new_payin_directdebit_web) {
- MangoPay::PayIn::DirectDebit::Web.create({
+ let(:new_payin_directdebit_web) do
+ MangoPay::PayIn::DirectDebit::Web.create(
AuthorId: new_natural_user['Id'],
CreditedUserId: new_wallet['Owners'][0],
CreditedWalletId: new_wallet['Id'],
DebitedFunds: { Currency: 'EUR', Amount: 1000 },
Fees: { Currency: 'EUR', Amount: 0 },
DirectDebitType: 'GIROPAY',
ReturnURL: MangoPay.configuration.root_url,
Culture: 'FR',
Tag: 'Test PayIn/DirectDebit/Web'
- })
- }
+ )
+ end
###############################################
# paypal/web
###############################################
- let(:new_payin_paypal_web) {
- MangoPay::PayIn::PayPal::Web.create({
+ let(:new_payin_paypal_web) do
+ MangoPay::PayIn::PayPal::Web.create(
AuthorId: new_natural_user['Id'],
CreditedUserId: new_wallet['Owners'][0],
CreditedWalletId: new_wallet['Id'],
DebitedFunds: { Currency: 'EUR', Amount: 1000 },
Fees: { Currency: 'EUR', Amount: 0 },
ReturnURL: MangoPay.configuration.root_url,
Tag: 'Test PayIn/PayPal/Web'
- })
- }
-
- ###############################################
+ )
+ end
+
+ ###############################################
# directdebit/direct
###############################################
- let(:new_payin_directdebit_direct) {
- MangoPay::PayIn::DirectDebit::Direct.create({
+ let(:new_payin_directdebit_direct) do
+ MangoPay::PayIn::DirectDebit::Direct.create(
AuthorId: new_natural_user['Id'],
CreditedUserId: new_wallet['Owners'][0],
CreditedWalletId: new_wallet['Id'],
DebitedFunds: { Currency: 'EUR', Amount: 1000 },
Fees: { Currency: 'EUR', Amount: 0 },
MandateId: new_mandate['Id'],
ReturnURL: MangoPay.configuration.root_url,
Tag: 'Test PayIn/DirectDebit/Direct'
- })
- }
-
+ )
+ end
+
###############################################
# card/web
###############################################
- let(:new_payin_card_web) {
- MangoPay::PayIn::Card::Web.create({
+ let(:new_payin_card_web) do
+ MangoPay::PayIn::Card::Web.create(
AuthorId: new_natural_user['Id'],
CreditedUserId: new_wallet['Owners'][0],
CreditedWalletId: new_wallet['Id'],
DebitedFunds: { Currency: 'EUR', Amount: 1000 },
Fees: { Currency: 'EUR', Amount: 0 },
CardType: 'CB_VISA_MASTERCARD',
ReturnURL: MangoPay.configuration.root_url,
Culture: 'FR',
Tag: 'Test PayIn/Card/Web'
- })
- }
+ )
+ end
###############################################
# card/direct
###############################################
- let(:new_card_registration) {
- MangoPay::CardRegistration.create({
+ let(:new_card_registration) do
+ MangoPay::CardRegistration.create(
UserId: new_natural_user['Id'],
Currency: 'EUR',
Tag: 'Test Card Registration'
- })
- }
+ )
+ end
- let(:new_card_registration_completed) {
+ let(:new_card_registration_completed) do
# 1st step: create
cardreg = new_card_registration
# 2nd step: tokenize by payline (fills-in RegistrationData)
data = {
data: cardreg['PreregistrationData'],
accessKeyRef: cardreg['AccessKey'],
cardNumber: 4970100000000154,
- cardExpirationDate: 1218,
+ cardExpirationDate: 1226,
cardCvx: 123}
+
res = Net::HTTP.post_form(URI(cardreg['CardRegistrationURL']), data)
- raise Exception, [res, res.body] unless (res.is_a?(Net::HTTPOK) && res.body.start_with?('data='))
+ raise Exception, [res, res.body] unless res.is_a?(Net::HTTPOK) && res.body.start_with?('data=')
+
cardreg['RegistrationData'] = res.body
# 3rd step: update (fills-in CardId) and return it
- MangoPay::CardRegistration.update(cardreg['Id'], {
- RegistrationData: cardreg['RegistrationData']
- })
- }
+ MangoPay::CardRegistration.update(cardreg['Id'],
+ RegistrationData: cardreg['RegistrationData'])
+ end
let(:new_payin_card_direct) { create_new_payin_card_direct(new_wallet) }
def create_new_payin_card_direct(to_wallet, amnt = 1000)
cardreg = new_card_registration_completed
- MangoPay::PayIn::Card::Direct.create({
+ MangoPay::PayIn::Card::Direct.create(
AuthorId: new_natural_user['Id'],
CreditedUserId: to_wallet['Owners'][0],
CreditedWalletId: to_wallet['Id'],
DebitedFunds: { Currency: 'EUR', Amount: amnt },
Fees: { Currency: 'EUR', Amount: 0 },
CardType: 'CB_VISA_MASTERCARD',
CardId: cardreg['CardId'],
SecureModeReturnURL: 'http://test.com',
Tag: 'Test PayIn/Card/Direct'
- })
+ )
end
###############################################
# card/direct with pre-authorization
###############################################
let(:new_card_preauthorization) { create_new_card_preauthorization(new_card_registration_completed) }
def create_new_card_preauthorization(cardreg, amnt = 1000)
- MangoPay::PreAuthorization.create({
+ MangoPay::PreAuthorization.create(
AuthorId: new_natural_user['Id'],
DebitedFunds: { Currency: 'EUR', Amount: amnt },
CardId: cardreg['CardId'],
SecureMode: 'DEFAULT',
SecureModeReturnURL: 'http://test.com',
Tag: 'Test Card PreAuthorization'
- })
+ )
end
let(:new_payin_preauthorized_direct) { create_new_payin_preauthorized_direct(new_wallet) }
def create_new_payin_preauthorized_direct(to_wallet, amnt = 1000)
preauth = new_card_preauthorization
- MangoPay::PayIn::PreAuthorized::Direct.create({
+ MangoPay::PayIn::PreAuthorized::Direct.create(
AuthorId: new_natural_user['Id'],
CreditedUserId: to_wallet['Owners'][0],
CreditedWalletId: to_wallet['Id'],
DebitedFunds: { Currency: 'EUR', Amount: amnt },
Fees: { Currency: 'EUR', Amount: 0 },
PreauthorizationId: preauth['Id'],
Tag: 'Test PayIn/PreAuthorized/Direct'
- })
+ )
end
###############################################
# bankwire/direct
###############################################
let(:new_payin_bankwire_direct) { create_new_payin_bankwire_direct(new_wallet) }
def create_new_payin_bankwire_direct(to_wallet, amnt = 1000)
- MangoPay::PayIn::BankWire::Direct.create({
+ MangoPay::PayIn::BankWire::Direct.create(
AuthorId: new_natural_user['Id'],
CreditedUserId: to_wallet['Owners'][0],
CreditedWalletId: to_wallet['Id'],
DeclaredDebitedFunds: { Currency: 'EUR', Amount: amnt },
DeclaredFees: { Currency: 'EUR', Amount: 0 },
Tag: 'Test PayIn/BankWire/Direct'
- })
+ )
end
-
end
###############################################
shared_context 'payouts' do
-###############################################
+ ###############################################
include_context 'bank_accounts'
let(:new_payout_bankwire) { create_new_payout_bankwire(new_payin_card_direct) }
def create_new_payout_bankwire(payin, amnt = 500)
- MangoPay::PayOut::BankWire.create({
+ MangoPay::PayOut::BankWire.create(
AuthorId: payin['CreditedUserId'],
DebitedWalletId: payin['CreditedWalletId'],
DebitedFunds: { Currency: 'EUR', Amount: amnt },
Fees: { Currency: 'EUR', Amount: 0 },
BankAccountId: new_bank_account['Id'],
Communication: 'This is a test',
Tag: 'Test PayOut/Bank/Wire'
- })
+ )
end
end
###############################################
shared_context 'transfers' do
-###############################################
+ ###############################################
include_context 'users'
include_context 'wallets'
include_context 'payins'
- let(:new_transfer) {
+ let(:new_transfer) do
wlt1 = new_wallet
wlt2 = new_wallet_legal
create_new_payin_card_direct(wlt1, 1000) # feed wlt1 with money
create_new_transfer(wlt1, wlt2, 500) # transfer wlt1 => wlt2
- }
+ end
def create_new_transfer(from_wallet, to_wallet, amnt = 500)
- MangoPay::Transfer.create({
- AuthorId: from_wallet['Owners'][0],
- DebitedWalletId: from_wallet['Id'],
- CreditedUserId: to_wallet['Owners'][0],
- CreditedWalletId: to_wallet['Id'],
- DebitedFunds: { Currency: 'EUR', Amount: amnt},
- Fees: { Currency: 'EUR', Amount: 0},
- Tag: 'Test transfer'
- })
+ MangoPay::Transfer.create(
+ AuthorId: from_wallet['Owners'][0],
+ DebitedWalletId: from_wallet['Id'],
+ CreditedUserId: to_wallet['Owners'][0],
+ CreditedWalletId: to_wallet['Id'],
+ DebitedFunds: {Currency: 'EUR', Amount: amnt},
+ Fees: {Currency: 'EUR', Amount: 0},
+ Tag: 'Test transfer'
+ )
end
end
###############################################
shared_context 'hooks' do
-###############################################
- let(:new_hook) {
- hooks = MangoPay::Hook.fetch({'page' => 1, 'per_page' => 1})
- if hooks.length == 0
- MangoPay::Hook.create({
+ ###############################################
+ let(:new_hook) do
+ hooks = MangoPay::Hook.fetch('page' => 1, 'per_page' => 1)
+ if hooks.empty?
+ MangoPay::Hook.create(
EventType: 'PAYIN_NORMAL_CREATED',
Url: 'http://test.com',
Tag: 'Test hook'
- })
+ )
else
hooks[0]
end
- }
+ end
end
###############################################
shared_context 'bankigaliases' do
-###############################################
+ ###############################################
include_context 'users'
include_context 'wallets'
- let(:new_banking_alias) {
+ let(:new_banking_alias) do
MangoPay::BankingAliasesIBAN.create({
- CreditedUserId: new_natural_user['Id'],
- WalletId: new_wallet['Id'],
- OwnerName: new_natural_user['FirstName'],
- Country: 'LU'
- }, new_wallet['Id'])
- }
+ CreditedUserId: new_natural_user['Id'],
+ WalletId: new_wallet['Id'],
+ OwnerName: new_natural_user['FirstName'],
+ Country: 'LU'
+ }, new_wallet['Id'])
+ end
end