* @license https://opensource.org/licenses/MIT MIT License * @link http://help.retailcrm.pro/docs/Developers */ namespace RetailCrm\Mg\Bot\Tests; use RetailCrm\Mg\Bot\Model\Response\FullFileResponse; use RetailCrm\Mg\Bot\Model\Response\UploadFileResponse; use RetailCrm\Mg\Bot\Test\TestCase; /** * PHP version 7.0 * * Class UploadFileTest * * @package RetailCrm\Mg\Bot\Tests * @author retailCRM * @license https://opensource.org/licenses/MIT MIT License * @link http://help.retailcrm.pro/docs/Developers */ class FileTest extends TestCase { /** * @group("upload") * @throws \Exception */ public function testUploadFileByUrlException() { $client = self::getApiClient( null, null, false, $this->getEmptyResponse(400) ); self::expectException(\InvalidArgumentException::class); $client->uploadFileByUrl(''); $client->uploadFileByUrl('rar'); } /** * @group("upload") * @throws \Exception */ public function testUploadFileByUrl() { $client = self::getApiClient( null, null, false, $this->getResponse('{"id":"881712bb-4062-4973-9e23-3373135836e2","type":"image","size":3773}') ); $response = $client->uploadFileByUrl('https://2ip.ru/images/logo.gif'); self::assertTrue($response->isSuccessful()); self::assertEquals('881712bb-4062-4973-9e23-3373135836e2', $response->getId()); self::assertEquals('image', $response->getType()); self::assertEquals('3773', $response->getSize()); } /** * @group("upload") * @throws \Exception */ public function testUploadFileViaForm() { $client = self::getApiClient( null, null, false, $this->getResponse('{"id":"b2bdba90-166c-4e0a-829d-69f26a09fd2a","type":"file","size":214}') ); $response = $client->uploadFile(__FILE__); self::assertInstanceOf(UploadFileResponse::class, $response); self::assertEquals('b2bdba90-166c-4e0a-829d-69f26a09fd2a', $response->getId()); self::assertEquals('file', $response->getType()); self::assertEquals(214, $response->getSize()); } /** * @group("upload") * @throws \Exception */ public function testGetFileById() { $fileId = 'b2bdba90-166c-4e0a-829d-69f26a09fd2a'; $client = self::getApiClient( null, null, false, $this->getJsonResponse('getFile') ); $response = $client->getFileById($fileId); self::assertInstanceOf(FullFileResponse::class, $response); self::assertEquals($fileId, $response->getId()); } }