112 lines
3.6 KiB
PHP
Executable File
112 lines
3.6 KiB
PHP
Executable File
<?php
|
|
/***
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
namespace Magento\Vault\Model;
|
|
|
|
use Magento\Framework\Api\FilterBuilder;
|
|
use Magento\Framework\Api\SearchCriteriaBuilder;
|
|
use Magento\Framework\Api\SortOrderBuilder;
|
|
use Magento\TestFramework\Helper\Bootstrap;
|
|
use Magento\TestFramework\ObjectManager;
|
|
|
|
/**
|
|
* PaymentTokenRepositoryTest contains tests for Vault token repository
|
|
*
|
|
* @magentoDbIsolation enabled
|
|
*/
|
|
class PaymentTokenRepositoryTest extends \PHPUnit\Framework\TestCase
|
|
{
|
|
/**
|
|
* @var PaymentTokenRepository
|
|
*/
|
|
private $repository;
|
|
|
|
/**
|
|
* @var SortOrderBuilder
|
|
*/
|
|
private $sortOrderBuilder;
|
|
|
|
/**
|
|
* @var FilterBuilder
|
|
*/
|
|
private $filterBuilder;
|
|
|
|
/**
|
|
* @var SearchCriteriaBuilder
|
|
*/
|
|
private $searchCriteriaBuilder;
|
|
|
|
/**
|
|
* @var ObjectManager
|
|
*/
|
|
private $objectManager;
|
|
|
|
protected function setUp(): void
|
|
{
|
|
$this->objectManager = Bootstrap::getObjectManager();
|
|
$this->repository = $this->objectManager->create(PaymentTokenRepository::class);
|
|
$this->searchCriteriaBuilder = $this->objectManager->create(SearchCriteriaBuilder::class);
|
|
$this->filterBuilder = $this->objectManager->get(FilterBuilder::class);
|
|
$this->sortOrderBuilder = $this->objectManager->get(SortOrderBuilder::class);
|
|
}
|
|
|
|
/**
|
|
* @magentoDataFixture Magento/Vault/_files/payment_tokens.php
|
|
*/
|
|
public function testGetListWithMultipleFiltersAndSorting()
|
|
{
|
|
$filter1 = $this->filterBuilder
|
|
->setField('type')
|
|
->setValue('simple')
|
|
->create();
|
|
$filter2 = $this->filterBuilder
|
|
->setField('is_active')
|
|
->setValue(1)
|
|
->create();
|
|
$filter3 = $this->filterBuilder
|
|
->setField('expires_at')
|
|
->setConditionType('lt')
|
|
->setValue('2016-11-04 10:18:15')
|
|
->create();
|
|
$sortOrder = $this->sortOrderBuilder
|
|
->setField('public_hash')
|
|
->setDirection('DESC')
|
|
->create();
|
|
|
|
$this->searchCriteriaBuilder->addFilters([$filter1, $filter2]);
|
|
$this->searchCriteriaBuilder->addFilters([$filter3]);
|
|
$this->searchCriteriaBuilder->addSortOrder($sortOrder);
|
|
$searchCriteria = $this->searchCriteriaBuilder->create();
|
|
/** @var \Magento\Vault\Api\Data\PaymentTokenSearchResultsInterface $result */
|
|
$result = $this->repository->getList($searchCriteria);
|
|
$items = $result->getItems();
|
|
$this->assertCount(2, $items);
|
|
$this->assertEquals('second', array_shift($items)->getPaymentMethodCode());
|
|
$this->assertEquals('first', array_shift($items)->getPaymentMethodCode());
|
|
}
|
|
|
|
/**
|
|
* @covers \Magento\Vault\Model\PaymentTokenRepository::delete
|
|
* @magentoDataFixture Magento/Vault/_files/token.php
|
|
*/
|
|
public function testDelete()
|
|
{
|
|
/** @var PaymentTokenManagement $tokenManagement */
|
|
$tokenManagement = $this->objectManager->get(PaymentTokenManagement::class);
|
|
|
|
$token = $tokenManagement->getByPublicHash('public_hash', 0);
|
|
|
|
/** @var PaymentTokenRepository $tokenRepository */
|
|
$tokenRepository = $this->objectManager->get(PaymentTokenRepository::class);
|
|
$tokenRepository->delete($token);
|
|
|
|
$deletedToken = $tokenRepository->getById($token->getEntityId());
|
|
|
|
static::assertEquals('public_hash', $deletedToken->getPublicHash());
|
|
static::assertFalse($deletedToken->getIsActive());
|
|
static::assertFalse($deletedToken->getIsVisible());
|
|
}
|
|
}
|