Skip to content

Commit ecde963

Browse files
authored
[TASK] Add trait for getArrayRepresentation to populate class (#1451)
Part of #1440.
1 parent 6604f35 commit ecde963

3 files changed

Lines changed: 69 additions & 0 deletions

File tree

src/ShortClassNameProvider.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Sabberworm\CSS;
6+
7+
/**
8+
* Provides a method to obtain the short name of the instantiated class (i.e. without namespace prefix).
9+
*
10+
* @internal
11+
*/
12+
trait ShortClassNameProvider
13+
{
14+
/**
15+
* @return non-empty-string
16+
*/
17+
private function getShortClassName(): string
18+
{
19+
return (new \ReflectionClass($this))->getShortName();
20+
}
21+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Sabberworm\CSS\Tests\Unit\Fixtures;
6+
7+
use Sabberworm\CSS\ShortClassNameProvider;
8+
9+
final class ConcreteShortClassNameProvider
10+
{
11+
use ShortClassNameProvider;
12+
13+
/**
14+
* Public wrapper for private method to allow testing.
15+
*
16+
* @return non-empty-string
17+
*/
18+
public function getTheShortClassName(): string
19+
{
20+
return $this->getShortClassName();
21+
}
22+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Sabberworm\CSS\Tests\Unit;
6+
7+
use PHPUnit\Framework\TestCase;
8+
use Sabberworm\CSS\Tests\Unit\Fixtures\ConcreteShortClassNameProvider;
9+
10+
/**
11+
* @covers \Sabberworm\CSS\ShortClassNameProvider
12+
*/
13+
final class ShortClassNameProviderTest extends TestCase
14+
{
15+
/**
16+
* @test
17+
*/
18+
public function getArrayRepresentationIncludesClassName(): void
19+
{
20+
$subject = new ConcreteShortClassNameProvider();
21+
22+
$result = $subject->getTheShortClassName();
23+
24+
self::assertSame('ConcreteShortClassNameProvider', $result);
25+
}
26+
}

0 commit comments

Comments
 (0)