-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
CC-34501: Initialisation Order Amendment Process (#11163)
CC-34501 Initialisation Order Amendment Process
- Loading branch information
Showing
10 changed files
with
213 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
{ | ||
"include": { | ||
"spryker/transfer": "Provides transfer objects definition with `::get*OrFail()` functionality." | ||
"spryker/transfer": "Provides transfer objects definition with strict types." | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
45 changes: 45 additions & 0 deletions
45
...ultiCart/Communication/Plugin/CartReorder/DefaultReorderQuoteNameCartPreReorderPlugin.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
<?php | ||
|
||
/** | ||
* Copyright © 2016-present Spryker Systems GmbH. All rights reserved. | ||
* Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file. | ||
*/ | ||
|
||
namespace Spryker\Zed\MultiCart\Communication\Plugin\CartReorder; | ||
|
||
use Generated\Shared\Transfer\CartReorderRequestTransfer; | ||
use Generated\Shared\Transfer\CartReorderTransfer; | ||
use Spryker\Zed\CartReorderExtension\Dependency\Plugin\CartPreReorderPluginInterface; | ||
use Spryker\Zed\Kernel\Communication\AbstractPlugin; | ||
|
||
/** | ||
* @method \Spryker\Zed\MultiCart\Business\MultiCartFacadeInterface getFacade() | ||
* @method \Spryker\Zed\MultiCart\MultiCartConfig getConfig() | ||
* @method \Spryker\Zed\MultiCart\Communication\MultiCartCommunicationFactory getFactory() | ||
*/ | ||
class DefaultReorderQuoteNameCartPreReorderPlugin extends AbstractPlugin implements CartPreReorderPluginInterface | ||
{ | ||
/** | ||
* {@inheritDoc} | ||
* - Requires `CartReorderTransfer.quote` to be set. | ||
* - Requires `CartReorderRequestTransfer.orderReference` to be set. | ||
* - Sets quote reorder name to `CartReorderTransfer.quote.name`. | ||
* | ||
* @api | ||
* | ||
* @param \Generated\Shared\Transfer\CartReorderRequestTransfer $cartReorderRequestTransfer | ||
* @param \Generated\Shared\Transfer\CartReorderTransfer $cartReorderTransfer | ||
* | ||
* @return \Generated\Shared\Transfer\CartReorderTransfer | ||
*/ | ||
public function preReorder( | ||
CartReorderRequestTransfer $cartReorderRequestTransfer, | ||
CartReorderTransfer $cartReorderTransfer | ||
): CartReorderTransfer { | ||
$cartReorderTransfer->getQuoteOrFail()->setName( | ||
sprintf($this->getConfig()->getReorderQuoteName(), $cartReorderRequestTransfer->getOrderReferenceOrFail()), | ||
); | ||
|
||
return $cartReorderTransfer; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
103 changes: 103 additions & 0 deletions
103
...Cart/Communication/Plugin/CartReorder/DefaultReorderQuoteNameCartPreReorderPluginTest.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
<?php | ||
|
||
/** | ||
* Copyright © 2016-present Spryker Systems GmbH. All rights reserved. | ||
* Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file. | ||
*/ | ||
|
||
namespace SprykerTest\Zed\MultiCart\Communication\Plugin\CartReorder; | ||
|
||
use Codeception\Test\Unit; | ||
use Generated\Shared\Transfer\CartReorderRequestTransfer; | ||
use Generated\Shared\Transfer\CartReorderTransfer; | ||
use Generated\Shared\Transfer\QuoteTransfer; | ||
use Spryker\Shared\Kernel\Transfer\Exception\NullValueException; | ||
use Spryker\Zed\MultiCart\Communication\Plugin\CartReorder\DefaultReorderQuoteNameCartPreReorderPlugin; | ||
use SprykerTest\Zed\MultiCart\MultiCartCommunicationTester; | ||
|
||
/** | ||
* Auto-generated group annotations | ||
* | ||
* @group SprykerTest | ||
* @group Zed | ||
* @group MultiCart | ||
* @group Communication | ||
* @group Plugin | ||
* @group CartReorder | ||
* @group DefaultReorderQuoteNameCartPreReorderPluginTest | ||
* Add your own group annotations below this line | ||
*/ | ||
class DefaultReorderQuoteNameCartPreReorderPluginTest extends Unit | ||
{ | ||
/** | ||
* @var string | ||
*/ | ||
protected const FAKE_ORDER_REFERENCE = 'DE--123'; | ||
|
||
/** | ||
* @var string | ||
*/ | ||
protected const FAKE_QUOTE_NAME = 'FAKE_QUOTE_NAME'; | ||
|
||
/** | ||
* @var \SprykerTest\Zed\MultiCart\MultiCartCommunicationTester | ||
*/ | ||
protected MultiCartCommunicationTester $tester; | ||
|
||
/** | ||
* @return void | ||
*/ | ||
public function testShouldSetDefaultQuoteNameForReorder(): void | ||
{ | ||
// Arrange | ||
$cartReorderRequestTransfer = (new CartReorderRequestTransfer()) | ||
->setOrderReference(static::FAKE_ORDER_REFERENCE); | ||
|
||
$cartReorderTransfer = (new CartReorderTransfer()) | ||
->setQuote(new QuoteTransfer()); | ||
|
||
// Arrange | ||
$cartReorderTransfer = (new DefaultReorderQuoteNameCartPreReorderPlugin()) | ||
->preReorder($cartReorderRequestTransfer, $cartReorderTransfer); | ||
|
||
// Assert | ||
$this->assertSame('Reorder from Order DE--123', $cartReorderTransfer->getQuoteOrFail()->getName()); | ||
} | ||
|
||
/** | ||
* @return void | ||
*/ | ||
public function testShouldThrowsNullValueExceptionWhenQuoteIsNotProvided(): void | ||
{ | ||
// Arrange | ||
$cartReorderRequestTransfer = (new CartReorderRequestTransfer()) | ||
->setOrderReference(static::FAKE_ORDER_REFERENCE); | ||
|
||
$cartReorderTransfer = new CartReorderTransfer(); | ||
|
||
// Assert | ||
$this->expectException(NullValueException::class); | ||
$this->expectExceptionMessage('Property "quote" of transfer `Generated\Shared\Transfer\CartReorderTransfer` is null.'); | ||
|
||
// Act | ||
(new DefaultReorderQuoteNameCartPreReorderPlugin())->preReorder($cartReorderRequestTransfer, $cartReorderTransfer); | ||
} | ||
|
||
/** | ||
* @return void | ||
*/ | ||
public function testShouldThrowsNullValueExceptionWhenOrderReferenceIsNotProvided(): void | ||
{ | ||
// Arrange | ||
$cartReorderRequestTransfer = new CartReorderRequestTransfer(); | ||
$cartReorderTransfer = (new CartReorderTransfer()) | ||
->setQuote(new QuoteTransfer()); | ||
|
||
// Assert | ||
$this->expectException(NullValueException::class); | ||
$this->expectExceptionMessage('Property "orderReference" of transfer `Generated\Shared\Transfer\CartReorderRequestTransfer` is null.'); | ||
|
||
// Act | ||
(new DefaultReorderQuoteNameCartPreReorderPlugin())->preReorder($cartReorderRequestTransfer, $cartReorderTransfer); | ||
} | ||
} |
29 changes: 29 additions & 0 deletions
29
tests/SprykerTest/Zed/MultiCart/_support/MultiCartCommunicationTester.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
<?php | ||
|
||
/** | ||
* Copyright © 2016-present Spryker Systems GmbH. All rights reserved. | ||
* Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file. | ||
*/ | ||
|
||
namespace SprykerTest\Zed\MultiCart; | ||
|
||
use Codeception\Actor; | ||
|
||
/** | ||
* @method void wantToTest($text) | ||
* @method void wantTo($text) | ||
* @method void execute($callable) | ||
* @method void expectTo($prediction) | ||
* @method void expect($prediction) | ||
* @method void amGoingTo($argumentation) | ||
* @method void am($role) | ||
* @method void lookForwardTo($achieveValue) | ||
* @method void comment($description) | ||
* @method \Codeception\Lib\Friend haveFriend($name, $actorClass = null) | ||
* | ||
* @SuppressWarnings(PHPMD) | ||
*/ | ||
class MultiCartCommunicationTester extends Actor | ||
{ | ||
use _generated\MultiCartCommunicationTesterActions; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters