From c626508502a9051a1196e691c3220a108fe2ad23 Mon Sep 17 00:00:00 2001 From: eltinMeli Date: Fri, 25 Aug 2023 16:04:14 -0300 Subject: [PATCH 1/6] initial implementation --- .../Client/Payment/PaymentRefundClient.php | 109 ++++++++++++++++++ .../Payment/PaymentRefundCreateRequest.php | 10 ++ src/MercadoPago/Resources/Common/Source.php | 16 +++ src/MercadoPago/Resources/PaymentRefund.php | 55 +++++++++ .../Resources/PaymentRefundResult.php | 11 ++ tests/MercadoPago/Client/Base/BaseClient.php | 22 ++++ .../Client/Payment/PaymentClientUnitTest.php | 21 +--- .../Payment/PaymentRefundClientUnitTest.php | 105 +++++++++++++++++ .../Preference/PreferenceClientUnitTest.php | 17 +-- .../Response/Payment/payment_refund.json | 24 ++++ .../Response/Payment/payment_refund_list.json | 50 ++++++++ 11 files changed, 410 insertions(+), 30 deletions(-) create mode 100644 src/MercadoPago/Client/Payment/PaymentRefundClient.php create mode 100644 src/MercadoPago/Client/Payment/PaymentRefundCreateRequest.php create mode 100644 src/MercadoPago/Resources/Common/Source.php create mode 100644 src/MercadoPago/Resources/PaymentRefund.php create mode 100644 src/MercadoPago/Resources/PaymentRefundResult.php create mode 100644 tests/MercadoPago/Client/Base/BaseClient.php create mode 100644 tests/MercadoPago/Client/Payment/PaymentRefundClientUnitTest.php create mode 100644 tests/MercadoPago/Resources/Mocks/Response/Payment/payment_refund.json create mode 100644 tests/MercadoPago/Resources/Mocks/Response/Payment/payment_refund_list.json diff --git a/src/MercadoPago/Client/Payment/PaymentRefundClient.php b/src/MercadoPago/Client/Payment/PaymentRefundClient.php new file mode 100644 index 00000000..1988d1d1 --- /dev/null +++ b/src/MercadoPago/Client/Payment/PaymentRefundClient.php @@ -0,0 +1,109 @@ + amount = $amount; + $response = parent::send(sprintf(self::$URL_WITH_PAYMENT_ID, strval($payment_id)), HttpMethod::POST, json_encode($payload), null, $request_options); + $result = Serializer::deserializeFromJson(PaymentRefund::class, $response->getContent()); + $result->setResponse($response); + return $result; + } catch (MPApiException | \Exception $e) { + throw $e; + } + } + + /** + * Method responsible for refunding a payment. + * @param int $payment_id payment id. + * @param float $amount refund amount. + * @param mixed $request_options request options to be sent. + * @return \MercadoPago\Resources\PaymentRefund payment refunded. + * @see https://www.mercadopago.com.br/developers/en/reference/chargebacks/_payments_id_refunds/post + */ + public function refundTotal(int $payment_id, ?MPRequestOptions $request_options = null): PaymentRefund + { + try { + $response = parent::send(sprintf(self::$URL_WITH_PAYMENT_ID, strval($payment_id)), HttpMethod::POST, null, null, $request_options); + $result = Serializer::deserializeFromJson(PaymentRefund::class, $response->getContent()); + $result->setResponse($response); + return $result; + } catch (MPApiException | \Exception $e) { + throw $e; + } + } + + /** + * Method responsible for getting payment. + * @param int $payment_id payment id. + * @param int $refund_id refund id. + * @param mixed $request_options request options to be sent. + * @return \MercadoPago\Resources\PaymentRefund refund found. + * @see https://www.mercadopago.com.br/developers/en/reference/chargebacks/_payments_id_refunds_refund_id/get + */ + + public function get(int $payment_id, int $refund_id, ?MPRequestOptions $request_options = null): PaymentRefund + { + try { + $response = parent::send(sprintf(self::$URL_WITH_REFUND_ID, strval($payment_id), strval($refund_id)), HttpMethod::GET, null, null, $request_options); + $result = Serializer::deserializeFromJson(PaymentRefund::class, $response->getContent()); + $result->setResponse($response); + return $result; + } catch (MPApiException | \Exception $e) { + throw $e; + } + } + + /** + * Method responsible for getting payment. + * @param int $payment_id payment id. + * @param mixed $request_options request options to be sent. + * @return \MercadoPago\Resources\PaymentRefundResult refund found. + * @see https://www.mercadopago.com.br/developers/en/reference/chargebacks/_payments_id_refunds/get + */ + public function list(int $payment_id, ?MPRequestOptions $request_options = null): PaymentRefundResult + { + try { + $response = parent::send(sprintf(self::$URL_WITH_PAYMENT_ID, strval($payment_id)), HttpMethod::GET, null, null, $request_options); + $result = new PaymentRefundResult(); + $result->data = $response->getContent(); + $result->setResponse($response); + return $result; + } catch (MPApiException | \Exception $e) { + throw $e; + } + } +} diff --git a/src/MercadoPago/Client/Payment/PaymentRefundCreateRequest.php b/src/MercadoPago/Client/Payment/PaymentRefundCreateRequest.php new file mode 100644 index 00000000..ba6ea79e --- /dev/null +++ b/src/MercadoPago/Client/Payment/PaymentRefundCreateRequest.php @@ -0,0 +1,10 @@ + "MercadoPago\Resources\Common\Source" + ]; + + /** + * Method responsible for getting map of entities. + */ + public function getMap(): array + { + return $this->map; + } +} diff --git a/src/MercadoPago/Resources/PaymentRefundResult.php b/src/MercadoPago/Resources/PaymentRefundResult.php new file mode 100644 index 00000000..d51d9361 --- /dev/null +++ b/src/MercadoPago/Resources/PaymentRefundResult.php @@ -0,0 +1,11 @@ +getMockBuilder(\MercadoPago\Net\HttpRequest::class)->getMock(); + + $responseJson = file_get_contents(__DIR__ . $filepath); + $mockHttpRequest->method('execute')->willReturn($responseJson); + $mockHttpRequest->method('getInfo')->willReturn($status_code); + return $mockHttpRequest; + } +} diff --git a/tests/MercadoPago/Client/Payment/PaymentClientUnitTest.php b/tests/MercadoPago/Client/Payment/PaymentClientUnitTest.php index d8eea4c4..5b9a8e77 100644 --- a/tests/MercadoPago/Client/Payment/PaymentClientUnitTest.php +++ b/tests/MercadoPago/Client/Payment/PaymentClientUnitTest.php @@ -4,12 +4,12 @@ use MercadoPago\MercadoPagoConfig; use MercadoPago\Net\MPDefaultHttpClient; -use PHPUnit\Framework\TestCase; +use MercadoPago\Client\Base\BaseClient; /** - * PaymentClient unit tests. + * Payment Client unit tests. */ -final class PaymentClientUnitTest extends TestCase +final class PaymentClientUnitTest extends BaseClient { public function testCreateSuccess(): void { @@ -91,8 +91,8 @@ public function testSearchSuccess(): void $search_result = $client->search($search_request); $this->assertEquals(200, $search_result->getResponse()->getStatusCode()); $this->assertEquals(5, $search_result->paging["limit"]); - $this->assertNotNull(0, $search_result->paging["offset"]); - $this->assertNotNull(102, $search_result->paging["total"]); + $this->assertEquals(0, $search_result->paging["offset"]); + $this->assertEquals(102, $search_result->paging["total"]); $this->assertEquals(5, count($search_result->results)); $this->assertEquals(1241012238, $search_result->results[0]["id"]); } @@ -109,15 +109,4 @@ private function createRequest(): array ]; return $request; } - - private function mockHttpRequest(string $filepath, int $status_code): \PHPUnit\Framework\MockObject\MockObject|\MercadoPago\Net\HttpRequest - { - /** @var \PHPUnit\Framework\MockObject\MockObject|\MercadoPago\Net\HttpRequest $mockHttpRequest */ - $mockHttpRequest = $this->getMockBuilder(\MercadoPago\Net\HttpRequest::class)->getMock(); - - $responseJson = file_get_contents(__DIR__ . $filepath); - $mockHttpRequest->method('execute')->willReturn($responseJson); - $mockHttpRequest->method('getInfo')->willReturn($status_code); - return $mockHttpRequest; - } } diff --git a/tests/MercadoPago/Client/Payment/PaymentRefundClientUnitTest.php b/tests/MercadoPago/Client/Payment/PaymentRefundClientUnitTest.php new file mode 100644 index 00000000..51a723cf --- /dev/null +++ b/tests/MercadoPago/Client/Payment/PaymentRefundClientUnitTest.php @@ -0,0 +1,105 @@ +mockHttpRequest($filepath, 200); + + $httpClient = new MPDefaultHttpClient($mockHttpRequest); + MercadoPagoConfig::setHttpClient($httpClient); + + $client = new PaymentRefundClient(); + $payment_id = 18552260055; + $amount = 10; + + $refund_result = $client->refund($payment_id, $amount); + $this->assertEquals(200, $refund_result->getResponse()->getStatusCode()); + $this->assertEquals($payment_id, $refund_result->payment_id); + $this->assertEquals($amount, $refund_result->amount); + $this->assertEquals("2023-08-24T15:35:15.783-04:00", $refund_result->date_created); + $this->assertEquals("approved", $refund_result->status); + $this->assertEquals("Firstname Lastname", $refund_result->source->name); + } + + public function testCreateRefundTotalSuccess(): void + { + $filepath = '../../../Resources/Mocks/Response/Payment/payment_refund.json'; + $mockHttpRequest = $this->mockHttpRequest($filepath, 200); + + $httpClient = new MPDefaultHttpClient($mockHttpRequest); + MercadoPagoConfig::setHttpClient($httpClient); + + $client = new PaymentRefundClient(); + $payment_id = 18552260055; + + $refund_result = $client->refundTotal($payment_id); + $this->assertEquals(200, $refund_result->getResponse()->getStatusCode()); + $this->assertEquals($payment_id, $refund_result->payment_id); + $this->assertEquals(10, $refund_result->amount); + $this->assertEquals("2023-08-24T15:35:15.783-04:00", $refund_result->date_created); + $this->assertEquals("approved", $refund_result->status); + $this->assertEquals("Firstname Lastname", $refund_result->source->name); + } + + public function testGetRefundSuccess(): void + { + $filepath = '../../../Resources/Mocks/Response/Payment/payment_refund.json'; + $mockHttpRequest = $this->mockHttpRequest($filepath, 200); + + $httpClient = new MPDefaultHttpClient($mockHttpRequest); + MercadoPagoConfig::setHttpClient($httpClient); + + $client = new PaymentRefundClient(); + $payment_id = 18552260055; + $refund_id = 1009042015; + + $refund_result = $client->get($payment_id, $refund_id); + $this->assertEquals(200, $refund_result->getResponse()->getStatusCode()); + $this->assertEquals($payment_id, $refund_result->payment_id); + $this->assertEquals(10, $refund_result->amount); + $this->assertEquals("2023-08-24T15:35:15.783-04:00", $refund_result->date_created); + $this->assertEquals("approved", $refund_result->status); + $this->assertEquals("Firstname Lastname", $refund_result->source->name); + } + + public function testListRefundSuccess(): void + { + $filepath = '../../../Resources/Mocks/Response/Payment/payment_refund_list.json'; + $mockHttpRequest = $this->mockHttpRequest($filepath, 200); + + $httpClient = new MPDefaultHttpClient($mockHttpRequest); + MercadoPagoConfig::setHttpClient($httpClient); + + $client = new PaymentRefundClient(); + $payment_id = 18552260055; + + $refund_result = $client->list($payment_id); + $this->assertEquals(200, $refund_result->getResponse()->getStatusCode()); + $this->assertEquals(2, count($refund_result->data)); + + $this->assertEquals($payment_id, $refund_result->data[0]["payment_id"]); + $this->assertEquals(1009042015, $refund_result->data[0]["id"]); + $this->assertEquals(5, $refund_result->data[0]["amount"]); + $this->assertEquals("2023-08-24T15:35:15.783-04:00", $refund_result->data[0]["date_created"]); + $this->assertEquals("approved", $refund_result->data[0]["status"]); + $this->assertEquals("Test Test", $refund_result->data[0]["source"]["name"]); + + $this->assertEquals($payment_id, $refund_result->data[1]["payment_id"]); + $this->assertEquals(1009042016, $refund_result->data[1]["id"]); + $this->assertEquals(5, $refund_result->data[1]["amount"]); + $this->assertEquals("2023-08-24T15:35:15.783-04:00", $refund_result->data[1]["date_created"]); + $this->assertEquals("approved", $refund_result->data[1]["status"]); + $this->assertEquals("Test Test", $refund_result->data[1]["source"]["name"]); + } +} diff --git a/tests/MercadoPago/Client/Preference/PreferenceClientUnitTest.php b/tests/MercadoPago/Client/Preference/PreferenceClientUnitTest.php index ebe2f372..ecfb6cbb 100644 --- a/tests/MercadoPago/Client/Preference/PreferenceClientUnitTest.php +++ b/tests/MercadoPago/Client/Preference/PreferenceClientUnitTest.php @@ -4,12 +4,12 @@ use MercadoPago\MercadoPagoConfig; use MercadoPago\Net\MPDefaultHttpClient; -use PHPUnit\Framework\TestCase; +use MercadoPago\Client\Base\BaseClient; /** - * PreferenceClient unit tests. + * Preference Client unit tests. */ -final class PreferenceClientUnitTest extends TestCase +final class PreferenceClientUnitTest extends BaseClient { public function testCreateSuccess(): void { @@ -131,15 +131,4 @@ private function updateRequest(): array ]; return $request; } - - private function mockHttpRequest(string $filepath, int $status_code): \PHPUnit\Framework\MockObject\MockObject|\MercadoPago\Net\HttpRequest - { - /** @var \PHPUnit\Framework\MockObject\MockObject|\MercadoPago\Net\HttpRequest $mockHttpRequest */ - $mockHttpRequest = $this->getMockBuilder(\MercadoPago\Net\HttpRequest::class)->getMock(); - - $responseJson = file_get_contents(__DIR__ . $filepath); - $mockHttpRequest->method('execute')->willReturn($responseJson); - $mockHttpRequest->method('getInfo')->willReturn($status_code); - return $mockHttpRequest; - } } diff --git a/tests/MercadoPago/Resources/Mocks/Response/Payment/payment_refund.json b/tests/MercadoPago/Resources/Mocks/Response/Payment/payment_refund.json new file mode 100644 index 00000000..2188c56d --- /dev/null +++ b/tests/MercadoPago/Resources/Mocks/Response/Payment/payment_refund.json @@ -0,0 +1,24 @@ +{ + "id": 1009042015, + "payment_id": 18552260055, + "amount": 10, + "metadata": { + "status_detail": null + }, + "source": { + "id": "831921084", + "name": "Firstname Lastname", + "type": "collector" + }, + "date_created": "2023-08-24T15:35:15.783-04:00", + "expiration_date": null, + "unique_sequence_number": null, + "refund_mode": "standard", + "adjustment_amount": 0, + "status": "approved", + "reason": null, + "labels": [], + "amount_refunded_to_payer": 10, + "additional_data": null, + "partition_details": [] +} diff --git a/tests/MercadoPago/Resources/Mocks/Response/Payment/payment_refund_list.json b/tests/MercadoPago/Resources/Mocks/Response/Payment/payment_refund_list.json new file mode 100644 index 00000000..0f15ade6 --- /dev/null +++ b/tests/MercadoPago/Resources/Mocks/Response/Payment/payment_refund_list.json @@ -0,0 +1,50 @@ +[ + { + "id": 1009042015, + "payment_id": 18552260055, + "amount": 5, + "metadata": { + "status_detail": null + }, + "source": { + "id": "831921084", + "name": "Test Test", + "type": "collector" + }, + "date_created": "2023-08-24T15:35:15.783-04:00", + "expiration_date": null, + "unique_sequence_number": null, + "refund_mode": "standard", + "adjustment_amount": 0, + "status": "approved", + "reason": null, + "labels": [], + "amount_refunded_to_payer": 5, + "additional_data": null, + "partition_details": [] + }, + { + "id": 1009042016, + "payment_id": 18552260055, + "amount": 5, + "metadata": { + "status_detail": null + }, + "source": { + "id": "831921084", + "name": "Test Test", + "type": "collector" + }, + "date_created": "2023-08-24T15:35:15.783-04:00", + "expiration_date": null, + "unique_sequence_number": null, + "refund_mode": "standard", + "adjustment_amount": 0, + "status": "approved", + "reason": null, + "labels": [], + "amount_refunded_to_payer": 5, + "additional_data": null, + "partition_details": [] + } +] From 39db3e9d49cecfdc361d678f9d0a3e74eccfdfb2 Mon Sep 17 00:00:00 2001 From: eltinMeli Date: Fri, 25 Aug 2023 17:45:48 -0300 Subject: [PATCH 2/6] add integrated tests --- phpunit.xml | 1 + .../Payment/PaymentRefundClientITTest.php | 212 ++++++++++++++++++ 2 files changed, 213 insertions(+) create mode 100644 tests/MercadoPago/Client/Payment/PaymentRefundClientITTest.php diff --git a/phpunit.xml b/phpunit.xml index 26087fc4..659f5f65 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -7,6 +7,7 @@ ./tests/MercadoPago ./tests/MercadoPago/Client/Payment/PaymentClientITTest.php + ./tests/MercadoPago/Client/Payment/PaymentRefundClientITTest.php ./tests/MercadoPago/Client/Preference/PreferenceClientITTest.php ./tests/MercadoPago/Client/Cardtoken/CardTokenClientITTest.php diff --git a/tests/MercadoPago/Client/Payment/PaymentRefundClientITTest.php b/tests/MercadoPago/Client/Payment/PaymentRefundClientITTest.php new file mode 100644 index 00000000..dda28375 --- /dev/null +++ b/tests/MercadoPago/Client/Payment/PaymentRefundClientITTest.php @@ -0,0 +1,212 @@ +create($this->createCardTokenRequest()); + $this->assertNotNull($card_token->id); + + $payment_client = new PaymentClient(); + $payment = $payment_client->create($this->createPaymentRequest($card_token->id)); + $this->assertNotNull($payment->id); + + $refund_client = new PaymentRefundClient(); + $refund = $refund_client->refund($payment->id, 50); + $this->assertNotNull($refund->id); + $this->assertEquals(50, $refund->amount); + $this->assertEquals("approved", $refund->status); + } + + public function testRefundPartialWithRequestOptionsFailure(): void + { + $this->expectException(MPApiException::class); + + $client = new CardTokenClient(); + $card_token = $client->create($this->createCardTokenRequest()); + $this->assertNotNull($card_token->id); + + $payment_client = new PaymentClient(); + $payment = $payment_client->create($this->createPaymentRequest($card_token->id)); + $this->assertNotNull($payment->id); + + $request_options = new MPRequestOptions(); + $request_options->setAccessToken("invalid_access_token"); + $refund_client = new PaymentRefundClient(); + $refund_client->refund($payment->id, 50, $request_options); + } + + public function testRefundTotalSuccess(): void + { + $client = new CardTokenClient(); + $card_token = $client->create($this->createCardTokenRequest()); + $this->assertNotNull($card_token->id); + + $payment_client = new PaymentClient(); + $payment = $payment_client->create($this->createPaymentRequest($card_token->id)); + $this->assertNotNull($payment->id); + + $refund_client = new PaymentRefundClient(); + $refund = $refund_client->refundTotal($payment->id); + $this->assertNotNull($refund->id); + $this->assertEquals(100, $refund->amount); + $this->assertEquals("approved", $refund->status); + } + + public function testRefundTotalWithRequestOptionsFailure(): void + { + $this->expectException(MPApiException::class); + + $client = new CardTokenClient(); + $card_token = $client->create($this->createCardTokenRequest()); + $this->assertNotNull($card_token->id); + + $payment_client = new PaymentClient(); + $payment = $payment_client->create($this->createPaymentRequest($card_token->id)); + $this->assertNotNull($payment->id); + + $request_options = new MPRequestOptions(); + $request_options->setAccessToken("invalid_access_token"); + $refund_client = new PaymentRefundClient(); + $refund_client->refundTotal($payment->id, $request_options); + } + + public function testGetRefundSuccess(): void + { + $client = new CardTokenClient(); + $card_token = $client->create($this->createCardTokenRequest()); + $this->assertNotNull($card_token->id); + + $payment_client = new PaymentClient(); + $payment = $payment_client->create($this->createPaymentRequest($card_token->id)); + $this->assertNotNull($payment->id); + + $refund_client = new PaymentRefundClient(); + $refund = $refund_client->refundTotal($payment->id); + $this->assertNotNull($refund->id); + + $get_refund = $refund_client->get($payment->id, $refund->id); + $this->assertEquals(100, $get_refund->amount); + $this->assertEquals("approved", $get_refund->status); + } + + public function testGetRefundWithRequestOptionsFailure(): void + { + $this->expectException(MPApiException::class); + + $client = new CardTokenClient(); + $card_token = $client->create($this->createCardTokenRequest()); + $this->assertNotNull($card_token->id); + + $payment_client = new PaymentClient(); + $payment = $payment_client->create($this->createPaymentRequest($card_token->id)); + $this->assertNotNull($payment->id); + + $refund_client = new PaymentRefundClient(); + $refund = $refund_client->refundTotal($payment->id); + $this->assertNotNull($refund->id); + + $request_options = new MPRequestOptions(); + $request_options->setAccessToken("invalid_access_token"); + $refund_client->get($payment->id, $refund->id, $request_options); + } + + public function testListRefundSuccess(): void + { + $client = new CardTokenClient(); + $card_token = $client->create($this->createCardTokenRequest()); + $this->assertNotNull($card_token->id); + + $payment_client = new PaymentClient(); + $payment = $payment_client->create($this->createPaymentRequest($card_token->id)); + $this->assertNotNull($payment->id); + + $refund_client = new PaymentRefundClient(); + $refund_one = $refund_client->refund($payment->id, 20); + $this->assertNotNull($refund_one->id); + + $refund_two = $refund_client->refund($payment->id, 30); + $this->assertNotNull($refund_two->id); + + $list_refund = $refund_client->list($payment->id); + $this->assertEquals(2, count($list_refund->data)); + + $this->assertEquals(20, $list_refund->data[0]["amount"]); + $this->assertEquals("approved", $list_refund->data[0]["status"]); + + $this->assertEquals(30, $list_refund->data[1]["amount"]); + $this->assertEquals("approved", $list_refund->data[1]["status"]); + } + + public function testListRefundWithRequestOptionsFailure(): void + { + $this->expectException(MPApiException::class); + + $client = new CardTokenClient(); + $card_token = $client->create($this->createCardTokenRequest()); + $this->assertNotNull($card_token->id); + + $payment_client = new PaymentClient(); + $payment = $payment_client->create($this->createPaymentRequest($card_token->id)); + $this->assertNotNull($payment->id); + + $refund_client = new PaymentRefundClient(); + $refund_one = $refund_client->refund($payment->id, 20); + $this->assertNotNull($refund_one->id); + + $request_options = new MPRequestOptions(); + $request_options->setAccessToken("invalid_access_token"); + $refund_client->list($payment->id, $request_options); + } + + private function createPaymentRequest(string $token): array + { + $request = [ + "transaction_amount" => 100, + "installments" => 1, + "capture" => true, + "description" => "Test", + "payment_method_id" => "master", + "token" => $token, + "payer" => [ + "email" => "test_user_24634097@testuser.com", + ] + ]; + return $request; + } + + private function createCardTokenRequest(): array + { + $request = [ + "card_number" => "5031433215406351", + "expiration_year" => "2025", + "expiration_month" => "12", + "security_code" => "123", + "cardholder" => [ + "name" => "APRO", + "identification" => [ + "type" => "CPF", + "number" => "19119119100", + ], + ] + ]; + return $request; + } +} From df95dc32caf12cf6ba4e383fbc1f177908d1b4d0 Mon Sep 17 00:00:00 2001 From: eltinMeli Date: Fri, 25 Aug 2023 18:12:45 -0300 Subject: [PATCH 3/6] migrate variabels camel case to snake case --- .../Payment/PaymentRefundCreateRequest.php | 2 +- tests/MercadoPago/Client/Base/BaseClient.php | 12 ++++---- .../Cardtoken/CardTokenClientUnitTest.php | 22 +++++++------- .../Client/Payment/PaymentClientUnitTest.php | 30 +++++++++---------- .../Payment/PaymentRefundClientUnitTest.php | 24 +++++++-------- .../Preference/PreferenceClientUnitTest.php | 24 +++++++-------- 6 files changed, 57 insertions(+), 57 deletions(-) diff --git a/src/MercadoPago/Client/Payment/PaymentRefundCreateRequest.php b/src/MercadoPago/Client/Payment/PaymentRefundCreateRequest.php index ba6ea79e..f1f78346 100644 --- a/src/MercadoPago/Client/Payment/PaymentRefundCreateRequest.php +++ b/src/MercadoPago/Client/Payment/PaymentRefundCreateRequest.php @@ -2,7 +2,7 @@ namespace MercadoPago\Client\Payment; -/** PaymentCaptureRequest class. */ +/** PaymentRefundCreateRequest class. */ class PaymentRefundCreateRequest { /** Amount to be refunded. */ diff --git a/tests/MercadoPago/Client/Base/BaseClient.php b/tests/MercadoPago/Client/Base/BaseClient.php index bf313640..7bed7622 100644 --- a/tests/MercadoPago/Client/Base/BaseClient.php +++ b/tests/MercadoPago/Client/Base/BaseClient.php @@ -11,12 +11,12 @@ abstract class BaseClient extends TestCase { protected function mockHttpRequest(string $filepath, int $status_code): \PHPUnit\Framework\MockObject\MockObject|\MercadoPago\Net\HttpRequest { - /** @var \PHPUnit\Framework\MockObject\MockObject|\MercadoPago\Net\HttpRequest $mockHttpRequest */ - $mockHttpRequest = $this->getMockBuilder(\MercadoPago\Net\HttpRequest::class)->getMock(); + /** @var \PHPUnit\Framework\MockObject\MockObject|\MercadoPago\Net\HttpRequest $mock_http_request */ + $mock_http_request = $this->getMockBuilder(\MercadoPago\Net\HttpRequest::class)->getMock(); - $responseJson = file_get_contents(__DIR__ . $filepath); - $mockHttpRequest->method('execute')->willReturn($responseJson); - $mockHttpRequest->method('getInfo')->willReturn($status_code); - return $mockHttpRequest; + $response_json = file_get_contents(__DIR__ . $filepath); + $mock_http_request->method('execute')->willReturn($response_json); + $mock_http_request->method('getInfo')->willReturn($status_code); + return $mock_http_request; } } diff --git a/tests/MercadoPago/Client/Cardtoken/CardTokenClientUnitTest.php b/tests/MercadoPago/Client/Cardtoken/CardTokenClientUnitTest.php index 3a9e13fe..2ca3c5b9 100644 --- a/tests/MercadoPago/Client/Cardtoken/CardTokenClientUnitTest.php +++ b/tests/MercadoPago/Client/Cardtoken/CardTokenClientUnitTest.php @@ -14,10 +14,10 @@ final class CardTokenClientUnitTest extends TestCase public function testCreateSuccess(): void { $filepath = '../../../Resources/Mocks/Response/Cardtoken/card_token_get.json'; - $mockHttpRequest = $this->mockHttpRequest($filepath, 200); + $mock_http_request = $this->mockHttpRequest($filepath, 200); - $httpClient = new MPDefaultHttpClient($mockHttpRequest); - MercadoPagoConfig::setHttpClient($httpClient); + $http_client = new MPDefaultHttpClient($mock_http_request); + MercadoPagoConfig::setHttpClient($http_client); $client = new CardTokenClient(); $cardToken = $client->create($this->createRequest()); @@ -33,10 +33,10 @@ public function testCreateSuccess(): void public function testGetSuccess(): void { $filepath = '../../../Resources/Mocks/Response/Cardtoken/card_token_get.json'; - $mockHttpRequest = $this->mockHttpRequest($filepath, 200); + $mock_http_request = $this->mockHttpRequest($filepath, 200); - $httpClient = new MPDefaultHttpClient($mockHttpRequest); - MercadoPagoConfig::setHttpClient($httpClient); + $http_client = new MPDefaultHttpClient($mock_http_request); + MercadoPagoConfig::setHttpClient($http_client); $client = new CardTokenClient(); $id = "60aca73f30e817f"; @@ -47,13 +47,13 @@ public function testGetSuccess(): void private function mockHttpRequest(string $filepath, int $status_code): \PHPUnit\Framework\MockObject\MockObject|\MercadoPago\Net\HttpRequest { - /** @var \PHPUnit\Framework\MockObject\MockObject|\MercadoPago\Net\HttpRequest $mockHttpRequest */ - $mockHttpRequest = $this->getMockBuilder(\MercadoPago\Net\HttpRequest::class)->getMock(); + /** @var \PHPUnit\Framework\MockObject\MockObject|\MercadoPago\Net\HttpRequest $mock_http_request */ + $mock_http_request = $this->getMockBuilder(\MercadoPago\Net\HttpRequest::class)->getMock(); $responseJson = file_get_contents(__DIR__ . $filepath); - $mockHttpRequest->method('execute')->willReturn($responseJson); - $mockHttpRequest->method('getInfo')->willReturn($status_code); - return $mockHttpRequest; + $mock_http_request->method('execute')->willReturn($responseJson); + $mock_http_request->method('getInfo')->willReturn($status_code); + return $mock_http_request; } private function createRequest(): array { diff --git a/tests/MercadoPago/Client/Payment/PaymentClientUnitTest.php b/tests/MercadoPago/Client/Payment/PaymentClientUnitTest.php index 5b9a8e77..a14269cd 100644 --- a/tests/MercadoPago/Client/Payment/PaymentClientUnitTest.php +++ b/tests/MercadoPago/Client/Payment/PaymentClientUnitTest.php @@ -14,10 +14,10 @@ final class PaymentClientUnitTest extends BaseClient public function testCreateSuccess(): void { $filepath = '../../../Resources/Mocks/Response/Payment/payment_base.json'; - $mockHttpRequest = $this->mockHttpRequest($filepath, 201); + $mock_http_request = $this->mockHttpRequest($filepath, 201); - $httpClient = new MPDefaultHttpClient($mockHttpRequest); - MercadoPagoConfig::setHttpClient($httpClient); + $http_client = new MPDefaultHttpClient($mock_http_request); + MercadoPagoConfig::setHttpClient($http_client); $client = new PaymentClient(); $payment = $client->create($this->createRequest()); @@ -34,10 +34,10 @@ public function testCreateSuccess(): void public function testGetSuccess(): void { $filepath = '../../../Resources/Mocks/Response/Payment/payment_base.json'; - $mockHttpRequest = $this->mockHttpRequest($filepath, 200); + $mock_http_request = $this->mockHttpRequest($filepath, 200); - $httpClient = new MPDefaultHttpClient($mockHttpRequest); - MercadoPagoConfig::setHttpClient($httpClient); + $http_client = new MPDefaultHttpClient($mock_http_request); + MercadoPagoConfig::setHttpClient($http_client); $client = new PaymentClient(); $payment_id = 17014025134; @@ -49,10 +49,10 @@ public function testGetSuccess(): void public function testCancelSuccess(): void { $filepath = '../../../Resources/Mocks/Response/Payment/payment_cancelled.json'; - $mockHttpRequest = $this->mockHttpRequest($filepath, 200); + $mock_http_request = $this->mockHttpRequest($filepath, 200); - $httpClient = new MPDefaultHttpClient($mockHttpRequest); - MercadoPagoConfig::setHttpClient($httpClient); + $http_client = new MPDefaultHttpClient($mock_http_request); + MercadoPagoConfig::setHttpClient($http_client); $client = new PaymentClient(); $payment_id = 17014025134; @@ -65,10 +65,10 @@ public function testCancelSuccess(): void public function testCaptureSuccess(): void { $filepath = '../../../Resources/Mocks/Response/Payment/payment_captured.json'; - $mockHttpRequest = $this->mockHttpRequest($filepath, 200); + $mock_http_request = $this->mockHttpRequest($filepath, 200); - $httpClient = new MPDefaultHttpClient($mockHttpRequest); - MercadoPagoConfig::setHttpClient($httpClient); + $http_client = new MPDefaultHttpClient($mock_http_request); + MercadoPagoConfig::setHttpClient($http_client); $client = new PaymentClient(); $payment_id = 17014025134; @@ -81,10 +81,10 @@ public function testCaptureSuccess(): void public function testSearchSuccess(): void { $filepath = '../../../Resources/Mocks/Response/Payment/payment_search.json'; - $mockHttpRequest = $this->mockHttpRequest($filepath, 200); + $mock_http_request = $this->mockHttpRequest($filepath, 200); - $httpClient = new MPDefaultHttpClient($mockHttpRequest); - MercadoPagoConfig::setHttpClient($httpClient); + $http_client = new MPDefaultHttpClient($mock_http_request); + MercadoPagoConfig::setHttpClient($http_client); $client = new PaymentClient(); $search_request = new \MercadoPago\Net\MPSearchRequest(5, 0, []); diff --git a/tests/MercadoPago/Client/Payment/PaymentRefundClientUnitTest.php b/tests/MercadoPago/Client/Payment/PaymentRefundClientUnitTest.php index 51a723cf..1d0231de 100644 --- a/tests/MercadoPago/Client/Payment/PaymentRefundClientUnitTest.php +++ b/tests/MercadoPago/Client/Payment/PaymentRefundClientUnitTest.php @@ -14,10 +14,10 @@ final class PaymentRefundClientUnitTest extends BaseClient public function testCreateRefundSuccess(): void { $filepath = '../../../Resources/Mocks/Response/Payment/payment_refund.json'; - $mockHttpRequest = $this->mockHttpRequest($filepath, 200); + $mock_http_request = $this->mockHttpRequest($filepath, 200); - $httpClient = new MPDefaultHttpClient($mockHttpRequest); - MercadoPagoConfig::setHttpClient($httpClient); + $http_client = new MPDefaultHttpClient($mock_http_request); + MercadoPagoConfig::setHttpClient($http_client); $client = new PaymentRefundClient(); $payment_id = 18552260055; @@ -35,10 +35,10 @@ public function testCreateRefundSuccess(): void public function testCreateRefundTotalSuccess(): void { $filepath = '../../../Resources/Mocks/Response/Payment/payment_refund.json'; - $mockHttpRequest = $this->mockHttpRequest($filepath, 200); + $mock_http_request = $this->mockHttpRequest($filepath, 200); - $httpClient = new MPDefaultHttpClient($mockHttpRequest); - MercadoPagoConfig::setHttpClient($httpClient); + $http_client = new MPDefaultHttpClient($mock_http_request); + MercadoPagoConfig::setHttpClient($http_client); $client = new PaymentRefundClient(); $payment_id = 18552260055; @@ -55,10 +55,10 @@ public function testCreateRefundTotalSuccess(): void public function testGetRefundSuccess(): void { $filepath = '../../../Resources/Mocks/Response/Payment/payment_refund.json'; - $mockHttpRequest = $this->mockHttpRequest($filepath, 200); + $mock_http_request = $this->mockHttpRequest($filepath, 200); - $httpClient = new MPDefaultHttpClient($mockHttpRequest); - MercadoPagoConfig::setHttpClient($httpClient); + $http_client = new MPDefaultHttpClient($mock_http_request); + MercadoPagoConfig::setHttpClient($http_client); $client = new PaymentRefundClient(); $payment_id = 18552260055; @@ -76,10 +76,10 @@ public function testGetRefundSuccess(): void public function testListRefundSuccess(): void { $filepath = '../../../Resources/Mocks/Response/Payment/payment_refund_list.json'; - $mockHttpRequest = $this->mockHttpRequest($filepath, 200); + $mock_http_request = $this->mockHttpRequest($filepath, 200); - $httpClient = new MPDefaultHttpClient($mockHttpRequest); - MercadoPagoConfig::setHttpClient($httpClient); + $http_client = new MPDefaultHttpClient($mock_http_request); + MercadoPagoConfig::setHttpClient($http_client); $client = new PaymentRefundClient(); $payment_id = 18552260055; diff --git a/tests/MercadoPago/Client/Preference/PreferenceClientUnitTest.php b/tests/MercadoPago/Client/Preference/PreferenceClientUnitTest.php index ecfb6cbb..dfc0fe39 100644 --- a/tests/MercadoPago/Client/Preference/PreferenceClientUnitTest.php +++ b/tests/MercadoPago/Client/Preference/PreferenceClientUnitTest.php @@ -14,10 +14,10 @@ final class PreferenceClientUnitTest extends BaseClient public function testCreateSuccess(): void { $filepath = '../../../Resources/Mocks/Response/Preference/preference_base.json'; - $mockHttpRequest = $this->mockHttpRequest($filepath, 201); + $mock_http_request = $this->mockHttpRequest($filepath, 201); - $httpClient = new MPDefaultHttpClient($mockHttpRequest); - MercadoPagoConfig::setHttpClient($httpClient); + $http_client = new MPDefaultHttpClient($mock_http_request); + MercadoPagoConfig::setHttpClient($http_client); $client = new PreferenceClient(); $preference = $client->create($this->createRequest()); @@ -37,10 +37,10 @@ public function testCreateSuccess(): void public function testGetSuccess(): void { $filepath = '../../../Resources/Mocks/Response/Preference/preference_base.json'; - $mockHttpRequest = $this->mockHttpRequest($filepath, 200); + $mock_http_request = $this->mockHttpRequest($filepath, 200); - $httpClient = new MPDefaultHttpClient($mockHttpRequest); - MercadoPagoConfig::setHttpClient($httpClient); + $http_client = new MPDefaultHttpClient($mock_http_request); + MercadoPagoConfig::setHttpClient($http_client); $client = new PreferenceClient(); $preference_id = "111111111-31b00b3b-3572-4fbb-a090-12c1dedc4dd7"; @@ -61,10 +61,10 @@ public function testGetSuccess(): void public function testUpdateSuccess(): void { $filepath = '../../../Resources/Mocks/Response/Preference/preference_update.json'; - $mockHttpRequest = $this->mockHttpRequest($filepath, 200); + $mock_http_request = $this->mockHttpRequest($filepath, 200); - $httpClient = new MPDefaultHttpClient($mockHttpRequest); - MercadoPagoConfig::setHttpClient($httpClient); + $http_client = new MPDefaultHttpClient($mock_http_request); + MercadoPagoConfig::setHttpClient($http_client); $client = new PreferenceClient(); $preference_id = "111111111-31b00b3b-3572-4fbb-a090-12c1dedc4dd7"; @@ -78,10 +78,10 @@ public function testUpdateSuccess(): void public function testSearchSuccess(): void { $filepath = '../../../Resources/Mocks/Response/Preference/preference_search.json'; - $mockHttpRequest = $this->mockHttpRequest($filepath, 200); + $mock_http_request = $this->mockHttpRequest($filepath, 200); - $httpClient = new MPDefaultHttpClient($mockHttpRequest); - MercadoPagoConfig::setHttpClient($httpClient); + $http_client = new MPDefaultHttpClient($mock_http_request); + MercadoPagoConfig::setHttpClient($http_client); $client = new PreferenceClient(); $search_request = new \MercadoPago\Net\MPSearchRequest(5, 0, ["external_reference" => "998476493"]); From 0d7dff28bdd6ab8af24f4edc9517bffeb623569a Mon Sep 17 00:00:00 2001 From: eltinMeli Date: Fri, 25 Aug 2023 18:31:11 -0300 Subject: [PATCH 4/6] adjust folder card token --- .../CardToken/CardTokenClientITTest.php | 61 ----------------- .../CardToken/CardTokenClientUnitTest.php | 66 ------------------- .../Cardtoken/CardTokenClientUnitTest.php | 66 ------------------- 3 files changed, 193 deletions(-) delete mode 100644 tests/MercadoPago/Client/CardToken/CardTokenClientITTest.php delete mode 100644 tests/MercadoPago/Client/CardToken/CardTokenClientUnitTest.php delete mode 100644 tests/MercadoPago/Client/Cardtoken/CardTokenClientUnitTest.php diff --git a/tests/MercadoPago/Client/CardToken/CardTokenClientITTest.php b/tests/MercadoPago/Client/CardToken/CardTokenClientITTest.php deleted file mode 100644 index 5404de78..00000000 --- a/tests/MercadoPago/Client/CardToken/CardTokenClientITTest.php +++ /dev/null @@ -1,61 +0,0 @@ -create($this->createRequest()); - $this->assertNotNull($card_token->id); - } - - public function testCreateWithInvalidAccessTokenFailure(): void - { - $this->expectException(MPApiException::class); - $client = new CardTokenClient(); - $request = $this->createRequest(); - $request_options = new MPRequestOptions(); - $request_options->setAccessToken("invalid_access_token"); - $client->create($request, $request_options); - } - - public function testGetSuccess(): void - { - $client = new CardTokenClient(); - $card_token = $client->get("60aca73f30e817fcf074cebc616897ba"); - $this->assertNotNull($card_token->id); - } - - public function testGetWithInvalidAccessTokenFailure(): void - { - $this->expectException(MPApiException::class); - $client = new CardTokenClient(); - $request_options = new MPRequestOptions(); - $request_options->setAccessToken("invalid_access_token"); - $client->get("123", $request_options); - } - - private function createRequest(): array - { - $request = [ - "card_id" => "9067121741", - "security_code" => "123" - ]; - return $request; - } -} diff --git a/tests/MercadoPago/Client/CardToken/CardTokenClientUnitTest.php b/tests/MercadoPago/Client/CardToken/CardTokenClientUnitTest.php deleted file mode 100644 index da72f880..00000000 --- a/tests/MercadoPago/Client/CardToken/CardTokenClientUnitTest.php +++ /dev/null @@ -1,66 +0,0 @@ -mockHttpRequest($file_path, 200); - - $http_client = new MPDefaultHttpClient($mock_http_request); - MercadoPagoConfig::setHttpClient($http_client); - - $client = new CardTokenClient(); - $card_token = $client->create($this->createRequest()); - $this->assertEquals(200, $card_token->getResponse()->getStatusCode()); - $this->assertEquals("60aca73f30e817f", $card_token->id); - $this->assertEquals("2023-08-15T12:51:56.624-04:00", $card_token->date_created); - $this->assertEquals("active", $card_token->status); - $this->assertEquals(3, $card_token->security_code_length); - $this->assertEquals(16, $card_token->card_number_length); - $this->assertEquals("123456", $card_token->first_six_digits); - } - - public function testGetSuccess(): void - { - $file_path = '../../../Resources/Mocks/Response/CardToken/card_token_get.json'; - $mock_http_request = $this->mockHttpRequest($file_path, 200); - - $http_client = new MPDefaultHttpClient($mock_http_request); - MercadoPagoConfig::setHttpClient($http_client); - - $client = new CardTokenClient(); - $id = "60aca73f30e817f"; - $card_token = $client->get($id); - $this->assertEquals(200, $card_token->getResponse()->getStatusCode()); - $this->assertEquals($id, $card_token->id); - } - - private function mockHttpRequest(string $file_path, int $status_code): \PHPUnit\Framework\MockObject\MockObject|\MercadoPago\Net\HttpRequest - { - /** @var \PHPUnit\Framework\MockObject\MockObject|\MercadoPago\Net\HttpRequest $mock_http_request */ - $mock_http_request = $this->getMockBuilder(\MercadoPago\Net\HttpRequest::class)->getMock(); - - $response_json = file_get_contents(__DIR__ . $file_path); - $mock_http_request->method('execute')->willReturn($response_json); - $mock_http_request->method('getInfo')->willReturn($status_code); - return $mock_http_request; - } - private function createRequest(): array - { - $request = [ - "card_id" => "9067121741", - "security_code" => "123" - ]; - return $request; - } -} diff --git a/tests/MercadoPago/Client/Cardtoken/CardTokenClientUnitTest.php b/tests/MercadoPago/Client/Cardtoken/CardTokenClientUnitTest.php deleted file mode 100644 index da72f880..00000000 --- a/tests/MercadoPago/Client/Cardtoken/CardTokenClientUnitTest.php +++ /dev/null @@ -1,66 +0,0 @@ -mockHttpRequest($file_path, 200); - - $http_client = new MPDefaultHttpClient($mock_http_request); - MercadoPagoConfig::setHttpClient($http_client); - - $client = new CardTokenClient(); - $card_token = $client->create($this->createRequest()); - $this->assertEquals(200, $card_token->getResponse()->getStatusCode()); - $this->assertEquals("60aca73f30e817f", $card_token->id); - $this->assertEquals("2023-08-15T12:51:56.624-04:00", $card_token->date_created); - $this->assertEquals("active", $card_token->status); - $this->assertEquals(3, $card_token->security_code_length); - $this->assertEquals(16, $card_token->card_number_length); - $this->assertEquals("123456", $card_token->first_six_digits); - } - - public function testGetSuccess(): void - { - $file_path = '../../../Resources/Mocks/Response/CardToken/card_token_get.json'; - $mock_http_request = $this->mockHttpRequest($file_path, 200); - - $http_client = new MPDefaultHttpClient($mock_http_request); - MercadoPagoConfig::setHttpClient($http_client); - - $client = new CardTokenClient(); - $id = "60aca73f30e817f"; - $card_token = $client->get($id); - $this->assertEquals(200, $card_token->getResponse()->getStatusCode()); - $this->assertEquals($id, $card_token->id); - } - - private function mockHttpRequest(string $file_path, int $status_code): \PHPUnit\Framework\MockObject\MockObject|\MercadoPago\Net\HttpRequest - { - /** @var \PHPUnit\Framework\MockObject\MockObject|\MercadoPago\Net\HttpRequest $mock_http_request */ - $mock_http_request = $this->getMockBuilder(\MercadoPago\Net\HttpRequest::class)->getMock(); - - $response_json = file_get_contents(__DIR__ . $file_path); - $mock_http_request->method('execute')->willReturn($response_json); - $mock_http_request->method('getInfo')->willReturn($status_code); - return $mock_http_request; - } - private function createRequest(): array - { - $request = [ - "card_id" => "9067121741", - "security_code" => "123" - ]; - return $request; - } -} From 7b40abc0c007141d31c747331357ad84d944633a Mon Sep 17 00:00:00 2001 From: eltinMeli Date: Fri, 25 Aug 2023 18:31:21 -0300 Subject: [PATCH 5/6] adjust folder card token --- .../CardTokenn/CardTokenClientITTest.php | 61 +++++++++++++++++ .../CardTokenn/CardTokenClientUnitTest.php | 67 +++++++++++++++++++ 2 files changed, 128 insertions(+) create mode 100644 tests/MercadoPago/Client/CardTokenn/CardTokenClientITTest.php create mode 100644 tests/MercadoPago/Client/CardTokenn/CardTokenClientUnitTest.php diff --git a/tests/MercadoPago/Client/CardTokenn/CardTokenClientITTest.php b/tests/MercadoPago/Client/CardTokenn/CardTokenClientITTest.php new file mode 100644 index 00000000..5404de78 --- /dev/null +++ b/tests/MercadoPago/Client/CardTokenn/CardTokenClientITTest.php @@ -0,0 +1,61 @@ +create($this->createRequest()); + $this->assertNotNull($card_token->id); + } + + public function testCreateWithInvalidAccessTokenFailure(): void + { + $this->expectException(MPApiException::class); + $client = new CardTokenClient(); + $request = $this->createRequest(); + $request_options = new MPRequestOptions(); + $request_options->setAccessToken("invalid_access_token"); + $client->create($request, $request_options); + } + + public function testGetSuccess(): void + { + $client = new CardTokenClient(); + $card_token = $client->get("60aca73f30e817fcf074cebc616897ba"); + $this->assertNotNull($card_token->id); + } + + public function testGetWithInvalidAccessTokenFailure(): void + { + $this->expectException(MPApiException::class); + $client = new CardTokenClient(); + $request_options = new MPRequestOptions(); + $request_options->setAccessToken("invalid_access_token"); + $client->get("123", $request_options); + } + + private function createRequest(): array + { + $request = [ + "card_id" => "9067121741", + "security_code" => "123" + ]; + return $request; + } +} diff --git a/tests/MercadoPago/Client/CardTokenn/CardTokenClientUnitTest.php b/tests/MercadoPago/Client/CardTokenn/CardTokenClientUnitTest.php new file mode 100644 index 00000000..cfc5e00a --- /dev/null +++ b/tests/MercadoPago/Client/CardTokenn/CardTokenClientUnitTest.php @@ -0,0 +1,67 @@ +mockHttpRequest($file_path, 200); + + $http_client = new MPDefaultHttpClient($mock_http_request); + MercadoPagoConfig::setHttpClient($http_client); + + $client = new CardTokenClient(); + $card_token = $client->create($this->createRequest()); + $this->assertEquals(200, $card_token->getResponse()->getStatusCode()); + $this->assertEquals("60aca73f30e817f", $card_token->id); + $this->assertEquals("2023-08-15T12:51:56.624-04:00", $card_token->date_created); + $this->assertEquals("active", $card_token->status); + $this->assertEquals(3, $card_token->security_code_length); + $this->assertEquals(16, $card_token->card_number_length); + $this->assertEquals("123456", $card_token->first_six_digits); + } + + public function testGetSuccess(): void + { + $file_path = '../../../Resources/Mocks/Response/CardToken/card_token_get.json'; + $mock_http_request = $this->mockHttpRequest($file_path, 200); + + $http_client = new MPDefaultHttpClient($mock_http_request); + MercadoPagoConfig::setHttpClient($http_client); + + $client = new CardTokenClient(); + $id = "60aca73f30e817f"; + $card_token = $client->get($id); + $this->assertEquals(200, $card_token->getResponse()->getStatusCode()); + $this->assertEquals($id, $card_token->id); + } + + private function mockHttpRequest(string $file_path, int $status_code): \PHPUnit\Framework\MockObject\MockObject|\MercadoPago\Net\HttpRequest + { + /** @var \PHPUnit\Framework\MockObject\MockObject|\MercadoPago\Net\HttpRequest $mock_http_request */ + $mock_http_request = $this->getMockBuilder(\MercadoPago\Net\HttpRequest::class)->getMock(); + + $response_json = file_get_contents(__DIR__ . $file_path); + $mock_http_request->method('execute')->willReturn($response_json); + $mock_http_request->method('getInfo')->willReturn($status_code); + return $mock_http_request; + } + private function createRequest(): array + { + $request = [ + "card_id" => "9067121741", + "security_code" => "123" + ]; + return $request; + } +} From 761cb5da259765f737627dd5f259dd5de94594b6 Mon Sep 17 00:00:00 2001 From: eltinMeli Date: Fri, 25 Aug 2023 18:32:56 -0300 Subject: [PATCH 6/6] adjust folder card token return --- .../Client/{CardTokenn => CardToken}/CardTokenClientITTest.php | 0 .../{CardTokenn => CardToken}/CardTokenClientUnitTest.php | 3 +-- 2 files changed, 1 insertion(+), 2 deletions(-) rename tests/MercadoPago/Client/{CardTokenn => CardToken}/CardTokenClientITTest.php (100%) rename tests/MercadoPago/Client/{CardTokenn => CardToken}/CardTokenClientUnitTest.php (96%) diff --git a/tests/MercadoPago/Client/CardTokenn/CardTokenClientITTest.php b/tests/MercadoPago/Client/CardToken/CardTokenClientITTest.php similarity index 100% rename from tests/MercadoPago/Client/CardTokenn/CardTokenClientITTest.php rename to tests/MercadoPago/Client/CardToken/CardTokenClientITTest.php diff --git a/tests/MercadoPago/Client/CardTokenn/CardTokenClientUnitTest.php b/tests/MercadoPago/Client/CardToken/CardTokenClientUnitTest.php similarity index 96% rename from tests/MercadoPago/Client/CardTokenn/CardTokenClientUnitTest.php rename to tests/MercadoPago/Client/CardToken/CardTokenClientUnitTest.php index cfc5e00a..da72f880 100644 --- a/tests/MercadoPago/Client/CardTokenn/CardTokenClientUnitTest.php +++ b/tests/MercadoPago/Client/CardToken/CardTokenClientUnitTest.php @@ -1,10 +1,9 @@