Skip to content

Commit 3a7a953

Browse files
committed
MC-19235: SalesRule improvement in TestFramework
1 parent 6da226d commit 3a7a953

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
namespace Magento\TestFramework\SalesRule\Model;
9+
10+
use Magento\Framework\Api\SearchCriteriaBuilder;
11+
use Magento\SalesRule\Api\RuleRepositoryInterface;
12+
use Magento\SalesRule\Api\Data\RuleInterface;
13+
14+
/**
15+
* Search and return Sales rule by name.
16+
*/
17+
class GetSalesRuleByName
18+
{
19+
/** @var SearchCriteriaBuilder */
20+
private $searchCriteriaBuilder;
21+
22+
/** @var RuleRepositoryInterface */
23+
private $ruleRepository;
24+
25+
/**
26+
* @param SearchCriteriaBuilder $searchCriteriaBuilder
27+
* @param RuleRepositoryInterface $ruleRepository
28+
*/
29+
public function __construct(SearchCriteriaBuilder $searchCriteriaBuilder, RuleRepositoryInterface $ruleRepository)
30+
{
31+
$this->searchCriteriaBuilder = $searchCriteriaBuilder;
32+
$this->ruleRepository = $ruleRepository;
33+
}
34+
35+
/**
36+
* Return Sales Rule by name.
37+
*
38+
* @param string $name
39+
* @return RuleInterface|null
40+
*/
41+
public function execute(string $name): ?RuleInterface
42+
{
43+
$searchCriteria = $this->searchCriteriaBuilder->addFilter('name', $name)->create();
44+
$salesRules = $this->ruleRepository->getList($searchCriteria)->getItems();
45+
46+
return array_shift($salesRules);
47+
}
48+
}

0 commit comments

Comments
 (0)