Spaces:
No application file
No application file
| declare(strict_types=1); | |
| namespace MauticPlugin\MauticCrmBundle\Tests\Api; | |
| use Mautic\PluginBundle\Exception\ApiErrorException; | |
| use MauticPlugin\MauticCrmBundle\Api\HubspotApi; | |
| use MauticPlugin\MauticCrmBundle\Integration\HubspotIntegration; | |
| use PHPUnit\Framework\TestCase; | |
| class HubspotApiTest extends TestCase | |
| { | |
| /** | |
| * @testdox Test Hubspot api when the api-key is invalid | |
| */ | |
| public function testHubspotWhenKeyIsInvalid(): void | |
| { | |
| $integration = $this->createMock(HubspotIntegration::class); | |
| $message = 'The API key provided is invalid. View or manage your API key here: https://app-eu1.hubspot.com/l/api-key/'; | |
| $code = 401; | |
| $response = [ | |
| 'status' => 'error', | |
| 'message' => $message, | |
| 'correlationId' => '00000000-0000-0000-0000-000000000000', | |
| 'category' => 'INVALID_AUTHENTICATION', | |
| 'links' => [ | |
| 'api key' => 'https://app-eu1.hubspot.com/l/api-key/', | |
| ], | |
| ]; | |
| $integration->expects(self::once()) | |
| ->method('makeRequest') | |
| ->willReturn( | |
| [ | |
| 'error' => [ | |
| 'code' => $code, | |
| 'message' => json_encode($response), | |
| ], | |
| ] | |
| ); | |
| $integration->expects(self::once()) | |
| ->method('getAuthenticationType') | |
| ->willReturn('crm'); | |
| $this->expectException(ApiErrorException::class); | |
| $this->expectExceptionMessage($message); | |
| $this->expectExceptionCode($code); | |
| $api = new HubspotApi($integration); | |
| $api->getLeadFields(); | |
| self::fail('ApiErrorException not thrown'); | |
| } | |
| public function testHubspotWhenKeyIsInvalidIfOauth(): void | |
| { | |
| $integration = $this->createMock(HubspotIntegration::class); | |
| $message = 'The API key provided is invalid. View or manage your API key here: https://app-eu1.hubspot.com/l/api-key/'; | |
| $response = [ | |
| 'error' => 'error', | |
| 'code' => 402, | |
| 'message' => $message, | |
| 'correlationId' => '00000000-0000-0000-0000-000000000000', | |
| 'category' => 'INVALID_AUTHENTICATION', | |
| 'links' => [ | |
| 'api key' => 'https://app-eu1.hubspot.com/l/api-key/', | |
| ], | |
| ]; | |
| $integration->expects(self::once()) | |
| ->method('makeRequest') | |
| ->willReturn(['error' => $response]); | |
| $integration->expects(self::once()) | |
| ->method('getAuthenticationType') | |
| ->willReturn('oauth2'); | |
| $this->expectException(ApiErrorException::class); | |
| $this->expectExceptionMessage($message); | |
| $this->expectExceptionCode(0); | |
| $api = new HubspotApi($integration); | |
| $api->getLeadFields(); | |
| self::fail('ApiErrorException not thrown'); | |
| } | |
| } | |