* @license https://opensource.org/licenses/MIT MIT License * @link http://www.retailcrm.ru/docs/Developers/ApiVersion4 */ namespace RetailCrm\Tests; use RetailCrm\Test\TestCase; /** * Class ApiClientStoreTest * * @category RetailCrm * @package RetailCrm * @author RetailCrm * @license https://opensource.org/licenses/MIT MIT License * @link http://www.retailcrm.ru/docs/Developers/ApiVersion4 */ class ApiClientStoreTest extends TestCase { const SNAME = 'Test Store'; const SCODE = 'test-store'; /** * @group store */ public function testStoreCreate() { $client = static::getApiClient(); $response = $client->storesEdit(array('name' => self::SNAME, 'code' => self::SCODE)); $this->assertInstanceOf('RetailCrm\Response\ApiResponse', $response); $this->assertTrue(in_array($response->getStatusCode(), array(200, 201))); $this->assertTrue($response->isSuccessful()); } /** * @group store */ public function testStoreInventories() { $client = static::getApiClient(); $response = $client->storeInventories(); $this->assertInstanceOf('RetailCrm\Response\ApiResponse', $response); $this->assertEquals(200, $response->getStatusCode()); $this->assertTrue($response->isSuccessful()); $this->assertTrue( isset($response['offers']), 'API returns orders assembly history' ); } /** * @group store * @expectedException \InvalidArgumentException */ public function testStoreInventoriesUploadExceptionEmpty() { $client = static::getApiClient(); $client->storeInventoriesUpload(array()); } /** * @group store */ public function testStoreInventoriesUpload() { $client = static::getApiClient(); $externalIdA = 'upload-a-' . time(); $externalIdB = 'upload-b-' . time(); $response = $client->storeInventoriesUpload(array( array( 'externalId' => $externalIdA, 'stores' => array( array( 'code' => self::SCODE, 'available' => 10, 'purchasePrice' => 1700 ) ) ), array( 'externalId' => $externalIdB, 'stores' => array( array( 'code' => self::SCODE, 'available' => 20, 'purchasePrice' => 1500 ) ) ), )); $this->assertInstanceOf('RetailCrm\Response\ApiResponse', $response); $this->assertFalse($response->isSuccessful()); } /** * @group integration */ public function testStoreInventoriesUploadFailed() { $client = static::getApiClient(); $externalIdA = 'upload-a-' . time(); $externalIdB = 'upload-b-' . time(); $response = $client->storeInventoriesUpload(array( array( 'externalId' => $externalIdA, 'available' => 10, 'purchasePrice' => 1700 ), array( 'externalId' => $externalIdB, 'available' => 20, 'purchasePrice' => 1500 ), )); $this->assertInstanceOf('RetailCrm\Response\ApiResponse', $response); $this->assertEquals(400, $response->getStatusCode()); $this->assertTrue(isset($response['errorMsg']), $response['errorMsg']); } }