Files
cake-carts/tests/TestCase/Controller/Component/ShoppingCartComponentTest.php
Brandon Shipley 534c3ab7dc
Some checks failed
CI / testsuite (pgsql, 8.2, ) (push) Successful in 4m40s
CI / testsuite (pgsql, 8.4, ) (push) Successful in 6m38s
CI / testsuite (mysql, 8.2, ) (push) Successful in 13m43s
CI / testsuite (sqlite, 8.2, ) (push) Successful in 3m45s
CI / testsuite (mysql, 8.4, ) (push) Successful in 19m5s
CI / testsuite (sqlite, 8.2, prefer-lowest) (push) Failing after 8m37s
CI / testsuite (sqlite, 8.4, ) (push) Successful in 8m35s
CI / Coding Standard & Static Analysis (push) Successful in 12m3s
cs fixes
2026-02-11 19:27:09 -08:00

118 lines
2.7 KiB
PHP

<?php
declare(strict_types=1);
namespace CakeCarts\Test\TestCase\Controller\Component;
use Cake\Controller\ComponentRegistry;
use Cake\Controller\Controller;
use Cake\Datasource\Exception\RecordNotFoundException;
use Cake\Http\ServerRequest;
use Cake\TestSuite\IntegrationTestTrait;
use Cake\TestSuite\TestCase;
use CakeCarts\Controller\Component\ShoppingCartComponent;
/**
* CakeCarts\Controller\Component\ShoppingCartComponent Test Case
*/
class ShoppingCartComponentTest extends TestCase {
use IntegrationTestTrait;
protected ShoppingCartComponent $component;
protected Controller $controller;
/**
* Fixtures
*
* @var array<string>
*/
protected array $fixtures = [
'plugin.CakeCarts.CartItems',
'plugin.CakeCarts.Carts',
];
/**
* setUp method
*
* @return void
*/
protected function setUp(): void {
parent::setUp();
$request = new ServerRequest();
$this->controller = new Controller($request);
$registry = new ComponentRegistry($this->controller);
$this->component = new ShoppingCartComponent($registry);
}
/**
* tearDown method
*
* @return void
*/
protected function tearDown(): void {
unset($this->component);
parent::tearDown();
}
/**
* @return void
*/
public function testGetCartForUserById() {
$this->session([
'CakeCarts.session_id' => 'cli',
]);
$cart = $this->component->getCartForUserById('74d1aa54-92a2-4039-bc10-61e1190c51ea');
$this->assertNotNull($cart);
}
/**
* @return void
*/
public function testGetCartForUserByIdDoesNotExist() {
$this->expectException(RecordNotFoundException::class);
$cart = $this->component->getCartForUserById('74d1aa54-92a2-4039-bc10-61e1190c51ec');
}
/**
* @return void
*/
public function testGetUserIdField() {
$this->assertNotNull($this->component->getUserIdField());
}
/**
* @return void
*/
public function testGetSessionId() {
$this->assertNotNull($this->component->getSessionId());
}
/**
* @return void
*/
public function testCheckIfIsOwnCartIsOwnCart() {
$this->session([
'CakeCarts.session_id' => 'session_1',
]);
$cart = $this->fetchTable('Carts')->get('74d1aa54-92a2-4039-bc10-61e1190c51ea');
$this->component->checkIfIsOwnCart($cart);
// if exception not thrown test passes
$this->assertEquals(1, 1);
}
/**
* @return void
*/
public function testCheckIfIsOwnCartIsNotOwnCart() {
$this->expectExceptionCode(404);
$cart = $this->fetchTable('Carts')->get('74d1aa54-92a2-4039-bc10-61e1190c51ec');
$this->component->checkIfIsOwnCart($cart);
// if exception not thrown test fails
$this->expectException(RecordNotFoundException::class);
}
}