[TASK] Remove ext:dbal from installation steps
[Packages/TYPO3.CMS.git] / typo3 / sysext / core / Tests / Unit / Database / Query / Restriction / RootLevelRestrictionTest.php
1 <?php
2 declare (strict_types = 1);
3 namespace TYPO3\CMS\Core\Tests\Unit\Database\Query\Restriction;
4
5 /*
6 * This file is part of the TYPO3 CMS project.
7 *
8 * It is free software; you can redistribute it and/or modify it under
9 * the terms of the GNU General Public License, either version 2
10 * of the License, or any later version.
11 *
12 * For the full copyright and license information, please read the
13 * LICENSE.txt file that was distributed with this source code.
14 *
15 * The TYPO3 project - inspiring people to share!
16 */
17
18 use TYPO3\CMS\Core\Database\Query\Restriction\RootLevelRestriction;
19
20 class RootLevelRestrictionTest extends AbstractRestrictionTestCase
21 {
22 /**
23 * @test
24 */
25 public function buildRestrictionsAddsPidWhereClause()
26 {
27 $subject = new RootLevelRestriction();
28 $expression = $subject->buildExpression(['aTable' => ''], $this->expressionBuilder);
29 $this->assertSame('"aTable"."pid" = 0', (string)$expression);
30 }
31
32 /**
33 * @test
34 */
35 public function buildRestrictionsAddsAliasedPidWhereClause()
36 {
37 $subject = new RootLevelRestriction();
38 $expression = $subject->buildExpression(['aTable' => 'aTableAlias'], $this->expressionBuilder);
39 $this->assertSame('"aTableAlias"."pid" = 0', (string)$expression);
40 }
41
42 /**
43 * @test
44 */
45 public function buildRestrictionsAddsPidWhereClauseIfTableIsSpecified()
46 {
47 $subject = new RootLevelRestriction(['aTable']);
48 $expression = $subject->buildExpression(['aTable' => ''], $this->expressionBuilder);
49 $this->assertSame('"aTable"."pid" = 0', (string)$expression);
50 }
51
52 /**
53 * @test
54 */
55 public function buildRestrictionsAddsAliasedPidWhereClauseIfAliasIsSpecified()
56 {
57 $subject = new RootLevelRestriction(['aTableAlias']);
58 $expression = $subject->buildExpression(['aTable' => 'aTableAlias'], $this->expressionBuilder);
59 $this->assertSame('"aTableAlias"."pid" = 0', (string)$expression);
60 }
61
62 /**
63 * @test
64 */
65 public function buildRestrictionsSkipsUnrestrictedTablesIfOtherTableIsSpecifiedThanUsedInTheQuery()
66 {
67 $subject = new RootLevelRestriction(['aTable']);
68 $expression = $subject->buildExpression(['anotherTable' => ''], $this->expressionBuilder);
69 $this->assertSame('', (string)$expression);
70 }
71 }