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
|
<?php declare(strict_types=1);
/*
* This file is part of sebastian/code-unit.
*
* (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 SebastianBergmann\CodeUnit;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\Small;
use PHPUnit\Framework\Attributes\TestDox;
use PHPUnit\Framework\Attributes\UsesClass;
use PHPUnit\Framework\TestCase;
use SebastianBergmann\CodeUnit\Fixture\FixtureClass;
use SebastianBergmann\CodeUnit\Fixture\FixtureInterface;
#[CoversClass(CodeUnitCollection::class)]
#[CoversClass(CodeUnitCollectionIterator::class)]
#[UsesClass(CodeUnit::class)]
#[UsesClass(Mapper::class)]
#[TestDox('CodeUnitCollection')]
#[Small]
final class CodeUnitCollectionTest extends TestCase
{
private InterfaceUnit $interface;
private ClassUnit $class;
protected function setUp(): void
{
$this->interface = CodeUnit::forInterface(FixtureInterface::class);
$this->class = CodeUnit::forClass(FixtureClass::class);
}
#[TestDox('Can be created from list of CodeUnit objects')]
public function testCanBeCreatedFromListOfObjects(): void
{
$collection = CodeUnitCollection::fromList($this->interface, $this->class);
$this->assertSame([$this->interface, $this->class], $collection->asArray());
}
public function testCanBeCounted(): void
{
$collection = CodeUnitCollection::fromList($this->interface, $this->class);
$this->assertCount(2, $collection);
$this->assertFalse($collection->isEmpty());
}
public function testCanBeIterated(): void
{
$array = [];
foreach (CodeUnitCollection::fromList($this->interface, $this->class) as $key => $value) {
$array[$key] = $value;
}
$this->assertCount(2, $array);
$this->assertArrayHasKey(0, $array);
$this->assertSame($this->interface, $array[0]);
$this->assertArrayHasKey(1, $array);
$this->assertSame($this->class, $array[1]);
}
public function testCanBeMergedWithAnotherCollectionOfCodeUnitObjects(): void
{
$this->assertSame(
[
$this->class,
$this->interface,
],
CodeUnitCollection::fromList($this->class)->mergeWith(
CodeUnitCollection::fromList($this->interface),
)->asArray(),
);
}
}
|