Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
87.50% covered (warning)
87.50%
7 / 8
50.00% covered (danger)
50.00%
1 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
TypescriptDeclarationList
87.50% covered (warning)
87.50%
7 / 8
50.00% covered (danger)
50.00%
1 / 2
3.02
0.00% covered (danger)
0.00%
0 / 1
 offsetGet
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 createRandom
100.00% covered (success)
100.00%
7 / 7
100.00% covered (success)
100.00%
1 / 1
2
1<?php
2namespace Apie\TypescriptCodeBuilder\Lists;
3
4use Apie\Core\Attributes\FakeMethod;
5use Apie\Core\Lists\ItemList;
6use Apie\TypescriptCodeBuilder\Dto\Typehints\IdentifierTypeDefinition;
7use Apie\TypescriptCodeBuilder\Dto\Typehints\LiteralTypeDefinition;
8use Apie\TypescriptCodeBuilder\Enums\TypescriptType;
9use Apie\TypescriptCodeBuilder\TypescriptTypeDeclarationInterface;
10use Faker\Generator;
11
12#[FakeMethod('createRandom')]
13class TypescriptDeclarationList extends ItemList
14{
15    protected bool $mutable = false;
16
17    public function offsetGet(mixed $offset): TypescriptTypeDeclarationInterface
18    {
19        return parent::offsetGet($offset);
20    }
21
22    public static function createRandom(Generator $faker): self
23    {
24        $list = [];
25        $count = $faker->numberBetween(0, 3);
26        for ($i = 0; $i < $count; $i++) {
27            $list[] = $faker->fakeClass(
28                $faker->randomElement([IdentifierTypeDefinition::class,TypescriptType::class, LiteralTypeDefinition::class])
29            );
30        }
31        return new TypescriptDeclarationList($list);
32    }
33}