class TestDataCollection
@template-implements IteratorAggregate<int, TestData>
@no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit
Hierarchy
- class \PHPUnit\Event\TestData\TestDataCollection implements \Countable, \IteratorAggregate
Expanded class hierarchy of TestDataCollection
3 files declare their use of TestDataCollection
- DataProvider.php in vendor/
phpunit/ phpunit/ src/ Metadata/ Api/ DataProvider.php - TestMethod.php in vendor/
phpunit/ phpunit/ src/ Event/ Value/ Test/ TestMethod.php - TestMethodBuilder.php in vendor/
phpunit/ phpunit/ src/ Event/ Value/ Test/ TestMethodBuilder.php
File
-
vendor/
phpunit/ phpunit/ src/ Event/ Value/ Test/ TestData/ TestDataCollection.php, line 21
Namespace
PHPUnit\Event\TestDataView source
final class TestDataCollection implements Countable, IteratorAggregate {
/**
* @psalm-var list<TestData>
*/
private readonly array $data;
private ?DataFromDataProvider $fromDataProvider = null;
/**
* @psalm-param list<TestData> $data
*
* @throws MoreThanOneDataSetFromDataProviderException
*/
public static function fromArray(array $data) : self {
return new self(...$data);
}
/**
* @throws MoreThanOneDataSetFromDataProviderException
*/
private function __construct(TestData ...$data) {
$this->ensureNoMoreThanOneDataFromDataProvider($data);
$this->data = $data;
}
/**
* @psalm-return list<TestData>
*/
public function asArray() : array {
return $this->data;
}
public function count() : int {
return count($this->data);
}
/**
* @psalm-assert-if-true !null $this->fromDataProvider
*/
public function hasDataFromDataProvider() : bool {
return $this->fromDataProvider !== null;
}
/**
* @throws NoDataSetFromDataProviderException
*/
public function dataFromDataProvider() : DataFromDataProvider {
if (!$this->hasDataFromDataProvider()) {
throw new NoDataSetFromDataProviderException();
}
return $this->fromDataProvider;
}
public function getIterator() : TestDataCollectionIterator {
return new TestDataCollectionIterator($this);
}
/**
* @psalm-param list<TestData> $data
*
* @throws MoreThanOneDataSetFromDataProviderException
*/
private function ensureNoMoreThanOneDataFromDataProvider(array $data) : void {
foreach ($data as $_data) {
if ($_data->isFromDataProvider()) {
if ($this->fromDataProvider !== null) {
throw new MoreThanOneDataSetFromDataProviderException();
}
$this->fromDataProvider = $_data;
}
}
}
}
Members
Title Sort descending | Modifiers | Object type | Summary |
---|---|---|---|
TestDataCollection::$data | private | property | @psalm-var list<TestData> |
TestDataCollection::$fromDataProvider | private | property | |
TestDataCollection::asArray | public | function | @psalm-return list<TestData> |
TestDataCollection::count | public | function | |
TestDataCollection::dataFromDataProvider | public | function | |
TestDataCollection::ensureNoMoreThanOneDataFromDataProvider | private | function | @psalm-param list<TestData> $data |
TestDataCollection::fromArray | public static | function | @psalm-param list<TestData> $data |
TestDataCollection::getIterator | public | function | |
TestDataCollection::hasDataFromDataProvider | public | function | @psalm-assert-if-true !null $this->fromDataProvider |
TestDataCollection::__construct | private | function |