Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
3 / 3
CRAP
100.00% covered (success)
100.00%
1 / 1
LastName
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
3 / 3
3
100.00% covered (success)
100.00%
1 / 1
 getRegularExpression
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 convert
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 createRandom
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2namespace Apie\TextValueObjects;
3
4use Apie\Core\Attributes\Description;
5use Apie\Core\Attributes\FakeMethod;
6use Apie\Core\Attributes\ProvideIndex;
7use Apie\Core\ValueObjects\Concerns\IndexesWords;
8use Apie\Core\ValueObjects\Interfaces\HasRegexValueObjectInterface;
9use Apie\Core\ValueObjects\IsStringWithRegexValueObject;
10use Faker\Generator;
11
12#[FakeMethod('createRandom')]
13#[ProvideIndex('getIndexes')]
14#[Description('Represents a last or family name of a person.')]
15class LastName implements HasRegexValueObjectInterface
16{
17    use IndexesWords;
18    use IsStringWithRegexValueObject;
19
20    public static function getRegularExpression(): string
21    {
22        return  '/^\w(\w|\-|[^\S\r\n]|\'|`|"|‘|’|“|”|‟)*$/u';
23    }
24
25    protected function convert(string $input): string
26    {
27        return trim($input);
28    }
29
30    public static function createRandom(Generator $generator): self
31    {
32        return static::fromNative($generator->lastName());
33    }
34}