1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
<?php declare(strict_types=1);
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Event\TestData;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\Small;
use PHPUnit\Framework\Attributes\UsesClass;
use PHPUnit\Framework\TestCase;
#[CoversClass(TestDataCollection::class)]
#[CoversClass(TestDataCollectionIterator::class)]
#[UsesClass(TestData::class)]
#[UsesClass(DataFromDataProvider::class)]
#[UsesClass(DataFromTestDependency::class)]
#[Small]
final class TestDataCollectionTest extends TestCase
{
public function testMayBeEmpty(): void
{
$collection = TestDataCollection::fromArray([]);
$this->assertCount(0, $collection);
$this->assertFalse($collection->hasDataFromDataProvider());
}
public function testMayContainDataFromDataProvider(): void
{
$data = $this->dataFromDataProvider();
$collection = TestDataCollection::fromArray([$data]);
$this->assertTrue($collection->hasDataFromDataProvider());
$this->assertSame([$data], $collection->asArray());
$this->assertSame($data, $collection->dataFromDataProvider());
}
public function testMayContainDataFromDependedUponTest(): void
{
$data = $this->dataFromDependedUponTest();
$collection = TestDataCollection::fromArray([$data]);
$this->assertFalse($collection->hasDataFromDataProvider());
$this->assertSame([$data], $collection->asArray());
}
public function testExceptionIsRaisedWhenDataFromDataProviderIsAccessedButDoesNotExist(): void
{
$collection = TestDataCollection::fromArray([]);
$this->expectException(NoDataSetFromDataProviderException::class);
$collection->dataFromDataProvider();
}
public function testIsIterable(): void
{
$data = $this->dataFromDataProvider();
$collection = TestDataCollection::fromArray([$data]);
foreach ($collection as $index => $element) {
$this->assertSame(0, $index);
$this->assertSame($data, $element);
}
}
private function dataFromDataProvider(): DataFromDataProvider
{
return DataFromDataProvider::from(
'data-set-name',
'data-as-string',
'data-as-string-for-output',
);
}
private function dataFromDependedUponTest(): DataFromTestDependency
{
return DataFromTestDependency::from('data-as-string');
}
}
|