123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631 |
- <?php
- namespace Test\Integration;
- require_once dirname(__DIR__) . '/Setup.php';
- use Test;
- use Test\Setup;
- use Braintree;
- class MerchantAccountTest extends Setup
- {
- private static $deprecatedValidParams = [
- 'applicantDetails' => [
- 'companyName' => "Robot City",
- 'firstName' => "Joe",
- 'lastName' => "Bloggs",
- 'email' => "joe@bloggs.com",
- 'phone' => "555-555-5555",
- 'address' => [
- 'streetAddress' => "123 Credibility St.",
- 'postalCode' => "60606",
- 'locality' => "Chicago",
- 'region' => "IL",
- ],
- 'dateOfBirth' => "10/9/1980",
- 'ssn' => "123-00-1234",
- 'taxId' => "123456789",
- 'routingNumber' => "122100024",
- 'accountNumber' => "43759348798"
- ],
- 'tosAccepted' => true,
- 'masterMerchantAccountId' => "sandbox_master_merchant_account"
- ];
- private static $validParams = [
- 'individual' => [
- 'firstName' => "Joe",
- 'lastName' => "Bloggs",
- 'email' => "joe@bloggs.com",
- 'phone' => "555-555-5555",
- 'address' => [
- 'streetAddress' => "123 Credibility St.",
- 'postalCode' => "60606",
- 'locality' => "Chicago",
- 'region' => "IL",
- ],
- 'dateOfBirth' => "10/9/1980",
- 'ssn' => "123-00-1234",
- ],
- 'business' => [
- 'dbaName' => "Robot City",
- 'legalName' => "Robot City INC",
- 'taxId' => "123456789",
- ],
- 'funding' => [
- 'routingNumber' => "122100024",
- 'accountNumber' => "43759348798",
- 'destination' => Braintree\MerchantAccount::FUNDING_DESTINATION_BANK,
- 'descriptor' => 'Joes Bloggs MI',
- ],
- 'tosAccepted' => true,
- 'masterMerchantAccountId' => "sandbox_master_merchant_account"
- ];
- public function testCreate()
- {
- $result = Braintree\MerchantAccount::create(self::$validParams);
- $this->assertEquals(true, $result->success);
- $merchantAccount = $result->merchantAccount;
- $this->assertEquals(Braintree\MerchantAccount::STATUS_PENDING, $merchantAccount->status);
- $this->assertEquals("sandbox_master_merchant_account", $merchantAccount->masterMerchantAccount->id);
- }
- public function testGatewayCreate()
- {
- $gateway = new Braintree\Gateway([
- 'environment' => 'development',
- 'merchantId' => 'integration_merchant_id',
- 'publicKey' => 'integration_public_key',
- 'privateKey' => 'integration_private_key'
- ]);
- $result = $gateway->merchantAccount()->create(self::$validParams);
- $this->assertEquals(true, $result->success);
- $merchantAccount = $result->merchantAccount;
- $this->assertEquals(Braintree\MerchantAccount::STATUS_PENDING, $merchantAccount->status);
- $this->assertEquals("sandbox_master_merchant_account", $merchantAccount->masterMerchantAccount->id);
- }
- public function testCreateWithDeprecatedParameters()
- {
- Test\Helper::suppressDeprecationWarnings();
- $result = Braintree\MerchantAccount::create(self::$deprecatedValidParams);
- $this->assertEquals(true, $result->success);
- $merchantAccount = $result->merchantAccount;
- $this->assertEquals(Braintree\MerchantAccount::STATUS_PENDING, $merchantAccount->status);
- $this->assertEquals("sandbox_master_merchant_account", $merchantAccount->masterMerchantAccount->id);
- }
- public function testCreateWithId()
- {
- $rand = rand(1, 1000);
- $subMerchantAccountId = "sub_merchant_account_id" + $rand;
- $validParamsWithId = array_merge([], self::$validParams);
- $validParamsWithId['id'] = $subMerchantAccountId;
- $result = Braintree\MerchantAccount::create($validParamsWithId);
- $this->assertEquals(true, $result->success);
- $merchantAccount = $result->merchantAccount;
- $this->assertEquals(Braintree\MerchantAccount::STATUS_PENDING, $merchantAccount->status);
- $this->assertEquals("sandbox_master_merchant_account", $merchantAccount->masterMerchantAccount->id);
- $this->assertEquals("sub_merchant_account_id" + $rand, $merchantAccount->id);
- }
- public function testFailedCreate()
- {
- $result = Braintree\MerchantAccount::create([]);
- $this->assertEquals(false, $result->success);
- $errors = $result->errors->forKey('merchantAccount')->onAttribute('masterMerchantAccountId');
- $this->assertEquals(Braintree\Error\Codes::MERCHANT_ACCOUNT_MASTER_MERCHANT_ACCOUNT_ID_IS_REQUIRED, $errors[0]->code);
- }
- public function testCreateWithFundingDestination()
- {
- $params = array_merge([], self::$validParams);
- $params['funding']['destination'] = Braintree\MerchantAccount::FUNDING_DESTINATION_BANK;
- $result = Braintree\MerchantAccount::create($params);
- $this->assertEquals(true, $result->success);
- $params = array_merge([], self::$validParams);
- $params['funding']['destination'] = Braintree\MerchantAccount::FUNDING_DESTINATION_EMAIL;
- $params['funding']['email'] = "billgates@outlook.com";
- $result = Braintree\MerchantAccount::create($params);
- $this->assertEquals(true, $result->success);
- $params = array_merge([], self::$validParams);
- $params['funding']['destination'] = Braintree\MerchantAccount::FUNDING_DESTINATION_MOBILE_PHONE;
- $params['funding']['mobilePhone'] = "1112224444";
- $result = Braintree\MerchantAccount::create($params);
- $this->assertEquals(true, $result->success);
- }
- public function testFind()
- {
- $params = array_merge([], self::$validParams);
- $result = Braintree\MerchantAccount::create(self::$validParams);
- $this->assertEquals(true, $result->success);
- $this->assertEquals(Braintree\MerchantAccount::STATUS_PENDING, $result->merchantAccount->status);
- $id = $result->merchantAccount->id;
- $merchantAccount = Braintree\MerchantAccount::find($id);
- $this->assertEquals(Braintree\MerchantAccount::STATUS_ACTIVE, $merchantAccount->status);
- $this->assertEquals($params['individual']['firstName'], $merchantAccount->individualDetails->firstName);
- $this->assertEquals($params['individual']['lastName'], $merchantAccount->individualDetails->lastName);
- }
- public function testRetrievesMasterMerchantAccountCurrencyIsoCode()
- {
- $merchantAccount = Braintree\MerchantAccount::find("sandbox_master_merchant_account");
- $this->assertEquals("USD", $merchantAccount->currencyIsoCode);
- }
- public function testFind_throwsIfNotFound()
- {
- $this->setExpectedException('Braintree\Exception\NotFound', 'merchant account with id does-not-exist not found');
- Braintree\MerchantAccount::find('does-not-exist');
- }
- public function testUpdate()
- {
- $params = array_merge([], self::$validParams);
- unset($params["tosAccepted"]);
- unset($params["masterMerchantAccountId"]);
- $params["individual"]["firstName"] = "John";
- $params["individual"]["lastName"] = "Doe";
- $params["individual"]["email"] = "john.doe@example.com";
- $params["individual"]["dateOfBirth"] = "1970-01-01";
- $params["individual"]["phone"] = "3125551234";
- $params["individual"]["address"]["streetAddress"] = "123 Fake St";
- $params["individual"]["address"]["locality"] = "Chicago";
- $params["individual"]["address"]["region"] = "IL";
- $params["individual"]["address"]["postalCode"] = "60622";
- $params["business"]["dbaName"] = "James's Bloggs";
- $params["business"]["legalName"] = "James's Bloggs Inc";
- $params["business"]["taxId"] = "123456789";
- $params["business"]["address"]["streetAddress"] = "999 Fake St";
- $params["business"]["address"]["locality"] = "Miami";
- $params["business"]["address"]["region"] = "FL";
- $params["business"]["address"]["postalCode"] = "99999";
- $params["funding"]["accountNumber"] = "43759348798";
- $params["funding"]["routingNumber"] = "071000013";
- $params["funding"]["email"] = "check@this.com";
- $params["funding"]["mobilePhone"] = "1234567890";
- $params["funding"]["destination"] = Braintree\MerchantAccount::FUNDING_DESTINATION_BANK;
- $params["funding"]["descriptor"] = "Joes Bloggs FL";
- $result = Braintree\MerchantAccount::update("sandbox_sub_merchant_account", $params);
- $this->assertEquals(true, $result->success);
- $updatedMerchantAccount = $result->merchantAccount;
- $this->assertEquals("active", $updatedMerchantAccount->status);
- $this->assertEquals("sandbox_sub_merchant_account", $updatedMerchantAccount->id);
- $this->assertEquals("sandbox_master_merchant_account", $updatedMerchantAccount->masterMerchantAccount->id);
- $this->assertEquals("John", $updatedMerchantAccount->individualDetails->firstName);
- $this->assertEquals("Doe", $updatedMerchantAccount->individualDetails->lastName);
- $this->assertEquals("john.doe@example.com", $updatedMerchantAccount->individualDetails->email);
- $this->assertEquals("1970-01-01", $updatedMerchantAccount->individualDetails->dateOfBirth);
- $this->assertEquals("3125551234", $updatedMerchantAccount->individualDetails->phone);
- $this->assertEquals("123 Fake St", $updatedMerchantAccount->individualDetails->addressDetails->streetAddress);
- $this->assertEquals("Chicago", $updatedMerchantAccount->individualDetails->addressDetails->locality);
- $this->assertEquals("IL", $updatedMerchantAccount->individualDetails->addressDetails->region);
- $this->assertEquals("60622", $updatedMerchantAccount->individualDetails->addressDetails->postalCode);
- $this->assertEquals("James's Bloggs", $updatedMerchantAccount->businessDetails->dbaName);
- $this->assertEquals("James's Bloggs Inc", $updatedMerchantAccount->businessDetails->legalName);
- $this->assertEquals("123456789", $updatedMerchantAccount->businessDetails->taxId);
- $this->assertEquals("999 Fake St", $updatedMerchantAccount->businessDetails->addressDetails->streetAddress);
- $this->assertEquals("Miami", $updatedMerchantAccount->businessDetails->addressDetails->locality);
- $this->assertEquals("FL", $updatedMerchantAccount->businessDetails->addressDetails->region);
- $this->assertEquals("99999", $updatedMerchantAccount->businessDetails->addressDetails->postalCode);
- $this->assertEquals("8798", $updatedMerchantAccount->fundingDetails->accountNumberLast4);
- $this->assertEquals("071000013", $updatedMerchantAccount->fundingDetails->routingNumber);
- $this->assertEquals("check@this.com", $updatedMerchantAccount->fundingDetails->email);
- $this->assertEquals("1234567890", $updatedMerchantAccount->fundingDetails->mobilePhone);
- $this->assertEquals(Braintree\MerchantAccount::FUNDING_DESTINATION_BANK, $updatedMerchantAccount->fundingDetails->destination);
- $this->assertEquals("Joes Bloggs FL", $updatedMerchantAccount->fundingDetails->descriptor);
- }
- public function testUpdateDoesNotRequireAllFields()
- {
- $params = [
- 'individual' => [
- 'firstName' => "Joe"
- ]
- ];
- $result = Braintree\MerchantAccount::update("sandbox_sub_merchant_account", $params);
- $this->assertEquals(true, $result->success);
- }
- public function testUpdateWithBlankFields()
- {
- $params = [
- 'individual' => [
- 'firstName' => "",
- 'lastName' => "",
- 'email' => "",
- 'phone' => "",
- 'address' => [
- 'streetAddress' => "",
- 'postalCode' => "",
- 'locality' => "",
- 'region' => "",
- ],
- 'dateOfBirth' => "",
- 'ssn' => "",
- ],
- 'business' => [
- 'dbaName' => "",
- 'legalName' => "",
- 'taxId' => "",
- ],
- 'funding' => [
- 'routingNumber' => "",
- 'accountNumber' => "",
- 'destination' => "",
- ],
- ];
- $result = Braintree\MerchantAccount::update("sandbox_sub_merchant_account", $params);
- $this->assertEquals(false, $result->success);
- $error = $result->errors->forKey("merchantAccount")->forKey("individual")->onAttribute("firstName");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_INDIVIDUAL_FIRST_NAME_IS_REQUIRED);
- $error = $result->errors->forKey("merchantAccount")->forKey("individual")->onAttribute("lastName");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_INDIVIDUAL_LAST_NAME_IS_REQUIRED);
- $error = $result->errors->forKey("merchantAccount")->forKey("individual")->onAttribute("dateOfBirth");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_INDIVIDUAL_DATE_OF_BIRTH_IS_REQUIRED);
- $error = $result->errors->forKey("merchantAccount")->forKey("individual")->onAttribute("email");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_INDIVIDUAL_EMAIL_IS_REQUIRED);
- $error = $result->errors->forKey("merchantAccount")->forKey("individual")->forKey("address")->onAttribute("streetAddress");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_INDIVIDUAL_ADDRESS_STREET_ADDRESS_IS_REQUIRED);
- $error = $result->errors->forKey("merchantAccount")->forKey("individual")->forKey("address")->onAttribute("postalCode");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_INDIVIDUAL_ADDRESS_POSTAL_CODE_IS_REQUIRED);
- $error = $result->errors->forKey("merchantAccount")->forKey("individual")->forKey("address")->onAttribute("locality");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_INDIVIDUAL_ADDRESS_LOCALITY_IS_REQUIRED);
- $error = $result->errors->forKey("merchantAccount")->forKey("individual")->forKey("address")->onAttribute("region");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_INDIVIDUAL_ADDRESS_REGION_IS_REQUIRED);
- $error = $result->errors->forKey("merchantAccount")->forKey("funding")->onAttribute("destination");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_FUNDING_DESTINATION_IS_REQUIRED);
- }
- public function testUpdateWithInvalidFields()
- {
- $params = [
- "individual" => [
- "firstName" => "<>",
- "lastName" => "<>",
- "email" => "bad",
- "phone" => "999",
- "address" => [
- "streetAddress" => "nope",
- "postalCode" => "1",
- "region" => "QQ",
- ],
- "dateOfBirth" => "hah",
- "ssn" => "12345",
- ],
- "business" => [
- "legalName" => "``{}",
- "dbaName" => "{}``",
- "taxId" => "bad",
- "address" => [
- "streetAddress" => "nope",
- "postalCode" => "1",
- "region" => "QQ",
- ],
- ],
- "funding" => [
- "destination" => "MY WALLET",
- "routingNumber" => "LEATHER",
- "accountNumber" => "BACK POCKET",
- "email" => "BILLFOLD",
- "mobilePhone" => "TRIFOLD"
- ],
- ];
- $result = Braintree\MerchantAccount::update("sandbox_sub_merchant_account", $params);
- $this->assertEquals(false, $result->success);
- $error = $result->errors->forKey("merchantAccount")->forKey("individual")->onAttribute("firstName");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_INDIVIDUAL_FIRST_NAME_IS_INVALID);
- $error = $result->errors->forKey("merchantAccount")->forKey("individual")->onAttribute("lastName");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_INDIVIDUAL_LAST_NAME_IS_INVALID);
- $error = $result->errors->forKey("merchantAccount")->forKey("individual")->onAttribute("email");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_INDIVIDUAL_EMAIL_IS_INVALID);
- $error = $result->errors->forKey("merchantAccount")->forKey("individual")->onAttribute("phone");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_INDIVIDUAL_PHONE_IS_INVALID);
- $error = $result->errors->forKey("merchantAccount")->forKey("individual")->forKey("address")->onAttribute("streetAddress");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_INDIVIDUAL_ADDRESS_STREET_ADDRESS_IS_INVALID);
- $error = $result->errors->forKey("merchantAccount")->forKey("individual")->forKey("address")->onAttribute("postalCode");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_INDIVIDUAL_ADDRESS_POSTAL_CODE_IS_INVALID);
- $error = $result->errors->forKey("merchantAccount")->forKey("individual")->forKey("address")->onAttribute("region");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_INDIVIDUAL_ADDRESS_REGION_IS_INVALID);
- $error = $result->errors->forKey("merchantAccount")->forKey("individual")->onAttribute("ssn");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_INDIVIDUAL_SSN_IS_INVALID);
- ;
- $error = $result->errors->forKey("merchantAccount")->forKey("business")->onAttribute("legalName");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_BUSINESS_LEGAL_NAME_IS_INVALID);
- $error = $result->errors->forKey("merchantAccount")->forKey("business")->onAttribute("dbaName");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_BUSINESS_DBA_NAME_IS_INVALID);
- $error = $result->errors->forKey("merchantAccount")->forKey("business")->onAttribute("taxId");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_BUSINESS_TAX_ID_IS_INVALID);
- $error = $result->errors->forKey("merchantAccount")->forKey("business")->forKey("address")->onAttribute("streetAddress");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_BUSINESS_ADDRESS_STREET_ADDRESS_IS_INVALID);
- $error = $result->errors->forKey("merchantAccount")->forKey("business")->forKey("address")->onAttribute("postalCode");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_BUSINESS_ADDRESS_POSTAL_CODE_IS_INVALID);
- $error = $result->errors->forKey("merchantAccount")->forKey("business")->forKey("address")->onAttribute("region");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_BUSINESS_ADDRESS_REGION_IS_INVALID);
- $error = $result->errors->forKey("merchantAccount")->forKey("funding")->onAttribute("destination");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_FUNDING_DESTINATION_IS_INVALID);
- $error = $result->errors->forKey("merchantAccount")->forKey("funding")->onAttribute("routingNumber");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_FUNDING_ROUTING_NUMBER_IS_INVALID);
- $error = $result->errors->forKey("merchantAccount")->forKey("funding")->onAttribute("accountNumber");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_FUNDING_ACCOUNT_NUMBER_IS_INVALID);
- $error = $result->errors->forKey("merchantAccount")->forKey("funding")->onAttribute("email");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_FUNDING_EMAIL_IS_INVALID);
- $error = $result->errors->forKey("merchantAccount")->forKey("funding")->onAttribute("mobilePhone");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_FUNDING_MOBILE_PHONE_IS_INVALID);
- }
- public function testUpdateWithInvalidBusinessFields()
- {
- $params = [
- "business" => [
- "legalName" => "",
- "taxId" => "111223333",
- ]
- ];
- $result = Braintree\MerchantAccount::update("sandbox_sub_merchant_account", $params);
- $this->assertEquals(false, $result->success);
- $error = $result->errors->forKey("merchantAccount")->forKey("business")->onAttribute("legalName");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_BUSINESS_LEGAL_NAME_IS_REQUIRED_WITH_TAX_ID);
- $error = $result->errors->forKey("merchantAccount")->forKey("business")->onAttribute("taxId");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_BUSINESS_TAX_ID_MUST_BE_BLANK);
- $params = [
- "business" => [
- "legalName" => "legal name",
- "taxId" => "",
- ]
- ];
- $result = Braintree\MerchantAccount::update("sandbox_sub_merchant_account", $params);
- $this->assertEquals(false, $result->success);
- $error = $result->errors->forKey("merchantAccount")->forKey("business")->onAttribute("taxId");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_BUSINESS_TAX_ID_IS_REQUIRED_WITH_LEGAL_NAME);
- }
- public function testUpdateWithInvalidFundingFields()
- {
- $params = [
- "funding" => [
- "destination" => Braintree\MerchantAccount::FUNDING_DESTINATION_EMAIL,
- "email" => "",
- ]
- ];
- $result = Braintree\MerchantAccount::update("sandbox_sub_merchant_account", $params);
- $this->assertEquals(false, $result->success);
- $error = $result->errors->forKey("merchantAccount")->forKey("funding")->onAttribute("email");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_FUNDING_EMAIL_IS_REQUIRED);
- $params = [
- "funding" => [
- "destination" => Braintree\MerchantAccount::FUNDING_DESTINATION_MOBILE_PHONE,
- "mobilePhone" => "",
- ]
- ];
- $result = Braintree\MerchantAccount::update("sandbox_sub_merchant_account", $params);
- $this->assertEquals(false, $result->success);
- $error = $result->errors->forKey("merchantAccount")->forKey("funding")->onAttribute("mobilePhone");
- $this->assertEquals($error[0]->code, Braintree\Error\Codes::MERCHANT_ACCOUNT_FUNDING_MOBILE_PHONE_IS_REQUIRED);
- }
- public function testCreateForCurrency()
- {
- $gateway = new Braintree\Gateway([
- 'clientId' => 'client_id$development$signup_client_id',
- 'clientSecret' => 'client_secret$development$signup_client_secret',
- ]);
- $result = $gateway->merchant()->create([
- 'email' => 'name@email.com',
- 'countryCodeAlpha3' => 'GBR',
- 'paymentMethods' => ['credit_card', 'paypal'],
- ]);
- $this->assertEquals(true, $result->success);
- $gateway = new Braintree\Gateway([
- 'accessToken' => $result->credentials->accessToken,
- ]);
- $result = $gateway->merchantAccount()->createForCurrency([
- 'currency' => "USD",
- ]);
- $this->assertEquals(true, $result->success);
- $merchantAccount = $result->merchantAccount;
- $this->assertEquals("USD", $merchantAccount->currencyIsoCode);
- $this->assertEquals("USD", $merchantAccount->id);
- }
- public function testCreateForCurrencyWithDuplicateCurrency()
- {
- $gateway = new Braintree\Gateway([
- 'clientId' => 'client_id$development$signup_client_id',
- 'clientSecret' => 'client_secret$development$signup_client_secret',
- ]);
- $result = $gateway->merchant()->create([
- 'email' => 'name@email.com',
- 'countryCodeAlpha3' => 'GBR',
- 'paymentMethods' => ['credit_card', 'paypal'],
- ]);
- $this->assertEquals(true, $result->success);
- $gateway = new Braintree\Gateway([
- 'accessToken' => $result->credentials->accessToken,
- ]);
- $merchantAccount = $result->merchant->merchantAccounts[0];
- $result = $gateway->merchantAccount()->createForCurrency([
- 'currency' => "GBP",
- ]);
- $this->assertEquals(false, $result->success);
- $errors = $result->errors->forKey('merchant')->onAttribute('currency');
- $this->assertEquals(Braintree\Error\Codes::MERCHANT_MERCHANT_ACCOUNT_EXISTS_FOR_CURRENCY, $errors[0]->code);
- }
- public function testCreateForCurrencyWithInvalidCurrency()
- {
- $gateway = new Braintree\Gateway([
- 'clientId' => 'client_id$development$signup_client_id',
- 'clientSecret' => 'client_secret$development$signup_client_secret',
- ]);
- $result = $gateway->merchant()->create([
- 'email' => 'name@email.com',
- 'countryCodeAlpha3' => 'GBR',
- 'paymentMethods' => ['credit_card', 'paypal'],
- ]);
- $this->assertEquals(true, $result->success);
- $gateway = new Braintree\Gateway([
- 'accessToken' => $result->credentials->accessToken,
- ]);
- $result = $gateway->merchantAccount()->createForCurrency([
- 'currency' => "FAKE_CURRENCY",
- ]);
- $this->assertEquals(false, $result->success);
- $errors = $result->errors->forKey('merchant')->onAttribute('currency');
- $this->assertEquals(Braintree\Error\Codes::MERCHANT_CURRENCY_IS_INVALID, $errors[0]->code);
- }
- public function testCreateForCurrencyWithoutCurrency()
- {
- $gateway = new Braintree\Gateway([
- 'clientId' => 'client_id$development$signup_client_id',
- 'clientSecret' => 'client_secret$development$signup_client_secret',
- ]);
- $result = $gateway->merchant()->create([
- 'email' => 'name@email.com',
- 'countryCodeAlpha3' => 'GBR',
- 'paymentMethods' => ['credit_card', 'paypal'],
- ]);
- $this->assertEquals(true, $result->success);
- $gateway = new Braintree\Gateway([
- 'accessToken' => $result->credentials->accessToken,
- ]);
- $result = $gateway->merchantAccount()->createForCurrency([]);
- $this->assertEquals(false, $result->success);
- $errors = $result->errors->forKey('merchant')->onAttribute('currency');
- $this->assertEquals(Braintree\Error\Codes::MERCHANT_CURRENCY_IS_REQUIRED, $errors[0]->code);
- }
- public function testCreateForCurrencyWithDuplicateId()
- {
- $gateway = new Braintree\Gateway([
- 'clientId' => 'client_id$development$signup_client_id',
- 'clientSecret' => 'client_secret$development$signup_client_secret',
- ]);
- $result = $gateway->merchant()->create([
- 'email' => 'name@email.com',
- 'countryCodeAlpha3' => 'GBR',
- 'paymentMethods' => ['credit_card', 'paypal'],
- ]);
- $this->assertEquals(true, $result->success);
- $gateway = new Braintree\Gateway([
- 'accessToken' => $result->credentials->accessToken,
- ]);
- $merchantAccount = $result->merchant->merchantAccounts[0];
- $result = $gateway->merchantAccount()->createForCurrency([
- 'currency' => "USD",
- 'id' => $merchantAccount->id,
- ]);
- $this->assertEquals(false, $result->success);
- $errors = $result->errors->forKey('merchant')->onAttribute('id');
- $this->assertEquals(Braintree\Error\Codes::MERCHANT_MERCHANT_ACCOUNT_EXISTS_FOR_ID, $errors[0]->code);
- }
- public function testAllReturnsAllMerchantAccounts()
- {
- $gateway = new Braintree\Gateway([
- 'clientId' => 'client_id$development$integration_client_id',
- 'clientSecret' => 'client_secret$development$integration_client_secret',
- ]);
- $code = Test\Braintree\OAuthTestHelper::createGrant($gateway, [
- 'merchant_public_id' => 'integration_merchant_id',
- 'scope' => 'read_write'
- ]);
- $credentials = $gateway->oauth()->createTokenFromCode([
- 'code' => $code,
- ]);
- $gateway = new Braintree\Gateway([
- 'accessToken' => $credentials->accessToken
- ]);
- $result = $gateway->merchantAccount()->all();
- $merchantAccounts = [];
- foreach($result as $ma) {
- array_push($merchantAccounts, $ma);
- }
- $this->assertEquals(true, count($merchantAccounts) > 20);
- }
- public function testAllReturnsMerchantAccountWithCorrectAttributes()
- {
- $gateway = new Braintree\Gateway([
- 'clientId' => 'client_id$development$integration_client_id',
- 'clientSecret' => 'client_secret$development$integration_client_secret',
- ]);
- $result = $gateway->merchant()->create([
- 'email' => 'name@email.com',
- 'countryCodeAlpha3' => 'USA',
- 'paymentMethods' => ['credit_card', 'paypal'],
- ]);
- $gateway = new Braintree\Gateway([
- 'accessToken' => $result->credentials->accessToken,
- ]);
- $result = $gateway->merchantAccount()->all();
- $merchantAccounts = [];
- foreach($result as $ma) {
- array_push($merchantAccounts, $ma);
- }
- $this->assertEquals(1, count($merchantAccounts));
- $merchantAccount = $merchantAccounts[0];
- $this->assertEquals("USD", $merchantAccount->currencyIsoCode);
- $this->assertEquals(Braintree\MerchantAccount::STATUS_ACTIVE, $merchantAccount->status);
- $this->assertTrue($merchantAccount->default);
- }
- }
|