limit = 20; $costsRequest->page = 1; $costsRequest->filter = new CostFilter(); $costsRequest->filter->sites = ['moysklad', 'aliexpress']; $costsRequest->filter->maxSumm = 20; $mock = static::createApiMockBuilder('costs'); $mock->matchMethod(RequestMethod::GET) ->matchQuery(static::encodeFormArray($costsRequest)) ->reply(200) ->withBody($json); $client = TestClientFactory::createClient($mock->getClient()); $costs = $client->costs->list($costsRequest); self::assertModelEqualsToResponse($json, $costs); } public function testCostsCreate(): void { $json = <<<'EOF' { "success": true, "id": 1 } EOF; $request = new CostsCreateRequest(); $request->site = 'aliexpress'; $request->cost = new Cost(); $request->cost->sites = ['aliexpress']; $request->cost->source = new Source(); $request->cost->source->source = 'source'; $request->cost->source->campaign = 'campaign'; $request->cost->source->content = 'content'; $request->cost->source->keyword = 'keyword'; $request->cost->source->medium = 'medium'; $request->cost->comment = 'comment'; $request->cost->costItem = 'products-purchase-price'; $request->cost->createdAt = new DateTime(); $request->cost->dateFrom = new DateTime(); $request->cost->dateTo = new DateTime(); $request->cost->summ = 100.10; $mock = static::createApiMockBuilder('costs/create'); $mock->matchMethod(RequestMethod::POST) ->matchBody(static::encodeForm($request)) ->reply(200) ->withBody($json); $client = TestClientFactory::createClient($mock->getClient()); $response = $client->costs->create($request); self::assertModelEqualsToResponse($json, $response); } public function testCostsDelete(): void { $json = <<<'EOF' { "success": true, "count": 4, "notRemovedIds": [13, 21] } EOF; $request = new CostsDeleteRequest(); $request->ids = [2, 3, 5, 8, 13, 21]; $mock = static::createApiMockBuilder('costs/delete'); $mock->matchMethod(RequestMethod::POST) ->matchBody(static::encodeForm($request)) ->reply(200) ->withBody($json); $client = TestClientFactory::createClient($mock->getClient()); $response = $client->costs->costsDelete($request); self::assertModelEqualsToResponse($json, $response); } public function testCostsUpload(): void { $json = <<<'EOF' { "success": true, "uploadedCosts": [1] } EOF; $request = new CostsUploadRequest(); $cost = new Cost(); $cost->sites = ['aliexpress']; $cost->source = new Source(); $cost->source->source = 'source'; $cost->source->campaign = 'campaign'; $cost->source->content = 'content'; $cost->source->keyword = 'keyword'; $cost->source->medium = 'medium'; $cost->comment = 'comment'; $cost->costItem = 'products-purchase-price'; $cost->createdAt = new DateTime(); $cost->dateFrom = new DateTime(); $cost->dateTo = new DateTime(); $cost->summ = 100.10; $request->costs = [$cost]; $mock = static::createApiMockBuilder('costs/upload'); $mock->matchMethod(RequestMethod::POST) ->matchBody(static::encodeForm($request)) ->reply(200) ->withBody($json); $client = TestClientFactory::createClient($mock->getClient()); $response = $client->costs->costsUpload($request); self::assertModelEqualsToResponse($json, $response); } public function testGet(): void { $json = <<<'EOF' { "success": true, "cost": { "id": 739, "dateFrom": "2019-03-26", "dateTo": "2019-03-26", "summ": 20, "costItem": "products-purchase-price", "createdAt": "2019-03-26 15:33:50", "createdBy": "19", "order": { "id": 2452, "number": "2452C" }, "sites": [ "moysklad" ] } } EOF; $mock = static::createApiMockBuilder('costs/739'); $mock->matchMethod(RequestMethod::GET) ->reply(200) ->withBody($json); $client = TestClientFactory::createClient($mock->getClient()); $costs = $client->costs->get(739); self::assertModelEqualsToResponse($json, $costs); } public function testDelete(): void { $json = <<<'EOF' { "success": true } EOF; $mock = static::createApiMockBuilder('costs/739/delete'); $mock->matchMethod(RequestMethod::POST) ->reply(200) ->withBody($json); $client = TestClientFactory::createClient($mock->getClient()); $response = $client->costs->delete(739); self::assertTrue($response->success); } public function testEdit(): void { $json = <<<'EOF' { "success": true, "id": 1 } EOF; $request = new CostsEditRequest(); $request->site = 'aliexpress'; $request->cost = new Cost(); $request->cost->sites = ['aliexpress']; $request->cost->source = new Source(); $request->cost->source->source = 'source'; $request->cost->source->campaign = 'campaign'; $request->cost->source->content = 'content'; $request->cost->source->keyword = 'keyword'; $request->cost->source->medium = 'medium'; $request->cost->comment = 'comment'; $request->cost->costItem = 'products-purchase-price'; $request->cost->createdAt = new DateTime(); $request->cost->dateFrom = new DateTime(); $request->cost->dateTo = new DateTime(); $request->cost->summ = 100.10; $mock = static::createApiMockBuilder('costs/1/edit'); $mock->matchMethod(RequestMethod::POST) ->matchBody(static::encodeForm($request)) ->reply(200) ->withBody($json); $client = TestClientFactory::createClient($mock->getClient()); $response = $client->costs->edit(1, $request); self::assertModelEqualsToResponse($json, $response); } }