Skip to content
This repository was archived by the owner on Oct 24, 2023. It is now read-only.

Commit f8649d4

Browse files
author
Barbara Palumbo
committed
WIP: fix the class related to the store
1 parent 6753086 commit f8649d4

File tree

6 files changed

+81
-9
lines changed

6 files changed

+81
-9
lines changed

src/Core/Request/InStores/InStoreRequests.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,6 @@ class InStoreRequests
131131
MeShoppingListUpdateByKeyRequest::class => 1,
132132
MeShoppingListDeleteRequest::class => 1,
133133
MeShoppingListDeleteByKeyRequest::class => 1,
134-
ProductProjectionQueryRequest::class => 1,
135134
ProductProjectionByKeyGetRequest::class => 1,
136135
ProductProjectionByIdGetRequest::class => 1,
137136
ProductSelectionAssignmentsQueryRequest::class => 1,
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?php
2+
3+
namespace Commercetools\Core\Request\ProductSelections;
4+
5+
use Commercetools\Core\Client\JsonEndpoint;
6+
7+
class ProductSelectionAssignmentsEndpoint
8+
{
9+
/**
10+
* @return JsonEndpoint
11+
*/
12+
public static function endpoint()
13+
{
14+
return new JsonEndpoint('product-selection-assignments');
15+
}
16+
}

src/Core/Request/ProductSelections/ProductSelectionAssignmentsQueryRequest.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace Commercetools\Core\Request\ProductSelections;
44

55
use Commercetools\Core\Model\Common\Context;
6+
use Commercetools\Core\Model\ProductSelection\ProductSelectionAssignment;
67
use Commercetools\Core\Request\AbstractQueryRequest;
78
use Commercetools\Core\Model\ProductSelection\ProductSelectionCollection;
89
use Commercetools\Core\Response\ApiResponseInterface;
@@ -16,14 +17,14 @@
1617
*/
1718
class ProductSelectionAssignmentsQueryRequest extends AbstractQueryRequest
1819
{
19-
protected $resultClass = ProductSelectionCollection::class;
20+
protected $resultClass = ProductSelectionAssignment::class;
2021

2122
/**
2223
* @param Context $context
2324
*/
2425
public function __construct(Context $context = null)
2526
{
26-
parent::__construct('product-selection-assignments', $context);
27+
parent::__construct(ProductSelectionAssignmentsEndpoint::endpoint(), $context);
2728
}
2829

2930
/**

tests/integration/ProductSelection/ProductSelectionUpdateRequestTest.php

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,11 @@
1010
use Commercetools\Core\Model\Product\ProductReference;
1111
use Commercetools\Core\Model\ProductSelection\AssignedProductReference;
1212
use Commercetools\Core\Model\ProductSelection\ProductSelection;
13-
use Commercetools\Core\Model\ProductSelection\ProductSelectionDraft;
14-
use Commercetools\Core\Request\Products\ProductByIdGetRequest;
15-
use Commercetools\Core\Request\Products\ProductByIdProductSelectionsGetRequest;
1613
use Commercetools\Core\Request\ProductSelections\Command\ProductSelectionAddProductAction;
1714
use Commercetools\Core\Request\ProductSelections\Command\ProductSelectionChangeNameAction;
1815
use Commercetools\Core\Request\ProductSelections\Command\ProductSelectionRemoveProductAction;
1916
use Commercetools\Core\Request\ProductSelections\Command\ProductSelectionSetKeyAction;
20-
use Commercetools\Core\Request\ProductSelections\ProductSelectionAssignmentsQueryRequest;
2117
use Commercetools\Core\Request\ProductSelections\ProductSelectionByIdProductsGetRequest;
22-
use Commercetools\Core\Response\AbstractApiResponse;
23-
use Commercetools\Core\Response\PagedQueryResponse;
2418

2519
class ProductSelectionUpdateRequestTest extends ApiTestCase
2620
{

tests/unit/Request/InStores/InStoreRequestDecoratorTest.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use Commercetools\Core\Error\InvalidArgumentException;
99
use Commercetools\Core\Request\Carts\CartByIdGetRequest;
1010
use Commercetools\Core\Request\Orders\OrderByIdGetRequest;
11+
use Commercetools\Core\Request\ProductSelections\ProductSelectionAssignmentsQueryRequest;
1112
use Commercetools\Core\Request\Project\ProjectGetRequest;
1213
use Commercetools\Core\RequestTestCase;
1314

@@ -33,6 +34,15 @@ public function testHttpRequestWithOrder()
3334
$this->assertSame('in-store/key=store-key/orders/order-id', (string)$decoratedRequest->getUri());
3435
}
3536

37+
public function testHttpRequestWithProductSelectionAssignment()
38+
{
39+
$request = ProductSelectionAssignmentsQueryRequest::of();
40+
$inStoreRequest = InStoreRequestDecorator::ofStoreKeyAndRequest('store-key', $request);
41+
42+
$decoratedRequest = $inStoreRequest->httpRequest();
43+
$this->assertSame('in-store/key=store-key/product-selection-assignments', (string)$decoratedRequest->getUri());
44+
}
45+
3646
public function testInvalidRequest()
3747
{
3848
$request = ProjectGetRequest::of();
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
<?php
2+
3+
namespace Commercetools\Core\Request\ProductSelections;
4+
5+
use Commercetools\Core\Model\ProductSelection\ProductSelectionAssignment;
6+
use Commercetools\Core\RequestTestCase;
7+
use Commercetools\Core\Response\PagedQueryResponse;
8+
9+
class ProductSelectionAssignmentsQueryRequestTest extends RequestTestCase
10+
{
11+
const PRODUCT_SELECTION_BY_ID_PRODUCTS_GET_REQUEST = ProductSelectionAssignmentsQueryRequest::class;
12+
13+
public function testMapResult()
14+
{
15+
$data = [
16+
'results' => [
17+
['id' => 'value'],
18+
['id' => 'value'],
19+
['id' => 'value'],
20+
]
21+
];
22+
$result = $this->mapQueryResult(ProductSelectionAssignmentsQueryRequest::of(), [], $data);
23+
$this->assertInstanceOf(ProductSelectionAssignment::class, $result);
24+
$this->assertCount(3, $result->toArray());
25+
}
26+
27+
public function testMapEmptyResult()
28+
{
29+
$result = $this->mapEmptyResult(ProductSelectionAssignmentsQueryRequest::of());
30+
$this->assertInstanceOf(ProductSelectionAssignment::class, $result);
31+
}
32+
33+
public function testHttpRequestPath()
34+
{
35+
$request = ProductSelectionAssignmentsQueryRequest::of();
36+
$httpRequest = $request->httpRequest();
37+
38+
$this->assertSame('product-selection-assignments', (string)$httpRequest->getUri());
39+
}
40+
41+
public function testBuildResponse()
42+
{
43+
$mockBuilder = $this->getMockBuilder('\GuzzleHttp\Psr7\Response');
44+
$mockBuilder->disableOriginalConstructor();
45+
$guzzleResponse = $mockBuilder->getMock();
46+
47+
$request = ProductSelectionAssignmentsQueryRequest::of();
48+
$response = $request->buildResponse($guzzleResponse);
49+
50+
$this->assertInstanceOf(PagedQueryResponse::class, $response);
51+
}
52+
}

0 commit comments

Comments
 (0)