‪TYPO3CMS  10.4
CategoryCollectionTest.php
Go to the documentation of this file.
1 <?php
2 
3 /*
4  * This file is part of the TYPO3 CMS project.
5  *
6  * It is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU General Public License, either version 2
8  * of the License, or any later version.
9  *
10  * For the full copyright and license information, please read the
11  * LICENSE.txt file that was distributed with this source code.
12  *
13  * The TYPO3 project - inspiring people to share!
14  */
15 
17 
20 use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
21 
25 class ‪CategoryCollectionTest extends FunctionalTestCase
26 {
30  private ‪$collectionRecord = [];
31 
35  protected ‪$testExtensionsToLoad = [
36  'typo3/sysext/core/Tests/Functional/Category/Collection/Fixtures/Extensions/test'
37  ];
38 
42  protected function ‪setUp(): void
43  {
44  parent::setUp();
45  $this->collectionRecord = [
46  'uid' => 0,
47  'title' => ‪StringUtility::getUniqueId('title'),
48  'description' => ‪StringUtility::getUniqueId('description'),
49  'table_name' => 'tx_test_test',
50  ];
51  $this->importCSVDataSet(__DIR__ . '/Fixtures/DataSet/categoryRelations.csv');
52  }
53 
59  {
60  $subject = new ‪CategoryCollection('tx_test_test');
61  $subject->fromArray($this->collectionRecord);
62  self::assertEquals($this->collectionRecord['uid'], $subject->getIdentifier());
63  self::assertEquals($this->collectionRecord['uid'], $subject->getUid());
64  self::assertEquals($this->collectionRecord['title'], $subject->getTitle());
65  self::assertEquals($this->collectionRecord['description'], $subject->getDescription());
66  self::assertEquals($this->collectionRecord['table_name'], $subject->getItemTableName());
67  }
68 
73  public function ‪canCreateDummyCollection()
74  {
75  $collection = ‪CategoryCollection::create($this->collectionRecord);
76  self::assertInstanceOf(CategoryCollection::class, $collection);
77  }
78 
84  {
85  $collection = ‪CategoryCollection::create($this->collectionRecord, true);
86  self::assertInstanceOf(CategoryCollection::class, $collection);
87  }
88 
94  {
95  $subject = new ‪CategoryCollection('tx_test_test');
96  $method = new \ReflectionMethod(CategoryCollection::class, 'getCollectedRecords');
97  $method->setAccessible(true);
98  $records = $method->invoke($subject);
99  self::assertIsArray($records);
100  self::assertEmpty($records);
101  }
102 
108  {
109  self::assertEquals('sys_category', ‪CategoryCollection::getStorageTableName());
110  }
111 
116  public function ‪isStorageItemsFieldEqualsToItems()
117  {
118  self::assertEquals('items', ‪CategoryCollection::getStorageItemsField());
119  }
120 
125  {
127  $collection = ‪CategoryCollection::load(1, true, 'tx_test_test');
128  // Check the number of record
129  self::assertEquals(5, $collection->count());
130  // Check that the first record is the one expected
131  $queryBuilder = $this->getConnectionPool()
132  ->getQueryBuilderForTable('tx_test_test');
133  $queryBuilder->getRestrictions()->removeAll();
134  $statement = $queryBuilder
135  ->select('*')
136  ->from('tx_test_test')
137  ->where($queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter(1, \PDO::PARAM_INT)))
138  ->execute();
139  $record = $statement->fetch();
140  $collection->rewind();
141  self::assertEquals($record, $collection->current());
142  // Add a new record
143  $fakeRecord = [
144  'uid' => 6,
145  'pid' => 0,
146  'title' => ‪StringUtility::getUniqueId('title'),
147  'categories' => 0
148  ];
149  // Check the number of records
150  $collection->add($fakeRecord);
151  self::assertEquals(6, $collection->count());
152  }
153 
158  {
159  $collection = ‪CategoryCollection::load(1, true, 'tx_test_test');
160  // Add a new record
161  $fakeRecord = [
162  'uid' => 6,
163  'pid' => 0,
164  'title' => ‪StringUtility::getUniqueId('title'),
165  'categories' => 0
166  ];
167  // Check the number of records
168  $collection->add($fakeRecord);
169  self::assertEquals(6, $collection->count());
170  }
171 
176  {
178  $collection = ‪CategoryCollection::load(1, false, 'tx_test_test');
179  // Check the number of record
180  self::assertEquals(0, $collection->count());
181  }
182 
187  {
188  // Remove one relation
189  $fakeName = [
190  'tablenames' => ‪StringUtility::getUniqueId('name')
191  ];
192  $this->getConnectionPool()
193  ->getConnectionForTable('sys_category_record_mm')
194  ->update('sys_category_record_mm', $fakeName, ['uid_foreign' => 1]);
195  // Check the number of records
196  $collection = ‪CategoryCollection::load(1, true, 'tx_test_test');
197  self::assertEquals(4, $collection->count());
198  }
199 }
‪TYPO3\CMS\Core\Tests\Functional\Category\Collection\CategoryCollectionTest\canLoadADummyCollectionFromDatabaseAndAddRecord
‪canLoadADummyCollectionFromDatabaseAndAddRecord()
Definition: CategoryCollectionTest.php:155
‪TYPO3\CMS\Core\Tests\Functional\Category\Collection\CategoryCollectionTest\checkIfFromArrayMethodSetCorrectProperties
‪checkIfFromArrayMethodSetCorrectProperties()
Definition: CategoryCollectionTest.php:56
‪TYPO3\CMS\Core\Tests\Functional\Category\Collection\CategoryCollectionTest\$collectionRecord
‪array $collectionRecord
Definition: CategoryCollectionTest.php:29
‪TYPO3\CMS\Core\Tests\Functional\Category\Collection\CategoryCollectionTest
Definition: CategoryCollectionTest.php:26
‪TYPO3\CMS\Core\Tests\Functional\Category\Collection\CategoryCollectionTest\canLoadADummyCollectionWithoutContentFromDatabase
‪canLoadADummyCollectionWithoutContentFromDatabase()
Definition: CategoryCollectionTest.php:173
‪TYPO3\CMS\Core\Category\Collection\CategoryCollection
Definition: CategoryCollection.php:30
‪TYPO3\CMS\Core\Category\Collection\CategoryCollection\load
‪static CollectionInterface load($id, $fillItems=false, $tableName='', $fieldName='')
Definition: CategoryCollection.php:98
‪TYPO3\CMS\Core\Tests\Functional\Category\Collection\CategoryCollectionTest\setUp
‪setUp()
Definition: CategoryCollectionTest.php:40
‪TYPO3\CMS\Core\Tests\Functional\Category\Collection\CategoryCollectionTest\canLoadADummyCollectionFromDatabase
‪canLoadADummyCollectionFromDatabase()
Definition: CategoryCollectionTest.php:122
‪TYPO3\CMS\Core\Tests\Functional\Category\Collection\CategoryCollectionTest\isStorageTableNameEqualsToSysCategory
‪isStorageTableNameEqualsToSysCategory()
Definition: CategoryCollectionTest.php:105
‪TYPO3\CMS\Core\Category\Collection\CategoryCollection\getStorageTableName
‪static string getStorageTableName()
Definition: CategoryCollection.php:323
‪TYPO3\CMS\Core\Category\Collection\CategoryCollection\getStorageItemsField
‪static string getStorageItemsField()
Definition: CategoryCollection.php:333
‪TYPO3\CMS\Core\Category\Collection\CategoryCollection\create
‪static CategoryCollection create(array $collectionRecord, $fillItems=false)
Definition: CategoryCollection.php:71
‪TYPO3\CMS\Core\Tests\Functional\Category\Collection\CategoryCollectionTest\$testExtensionsToLoad
‪array $testExtensionsToLoad
Definition: CategoryCollectionTest.php:33
‪TYPO3\CMS\Core\Tests\Functional\Category\Collection\CategoryCollectionTest\canCreateDummyCollection
‪canCreateDummyCollection()
Definition: CategoryCollectionTest.php:71
‪TYPO3\CMS\Core\Tests\Functional\Category\Collection\CategoryCollectionTest\isStorageItemsFieldEqualsToItems
‪isStorageItemsFieldEqualsToItems()
Definition: CategoryCollectionTest.php:114
‪TYPO3\CMS\Core\Utility\StringUtility\getUniqueId
‪static string getUniqueId($prefix='')
Definition: StringUtility.php:92
‪TYPO3\CMS\Core\Tests\Functional\Category\Collection\CategoryCollectionTest\getCollectedRecordsReturnsEmptyRecordSet
‪getCollectedRecordsReturnsEmptyRecordSet()
Definition: CategoryCollectionTest.php:91
‪TYPO3\CMS\Core\Tests\Functional\Category\Collection\CategoryCollectionTest\canLoadADummyCollectionFromDatabaseAfterRemoveOneRelation
‪canLoadADummyCollectionFromDatabaseAfterRemoveOneRelation()
Definition: CategoryCollectionTest.php:184
‪TYPO3\CMS\Core\Tests\Functional\Category\Collection\CategoryCollectionTest\canCreateDummyCollectionAndFillItems
‪canCreateDummyCollectionAndFillItems()
Definition: CategoryCollectionTest.php:81
‪TYPO3\CMS\Core\Utility\StringUtility
Definition: StringUtility.php:22
‪TYPO3\CMS\Core\Tests\Functional\Category\Collection
Definition: CategoryCollectionTest.php:16