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
|
<?php
declare(strict_types=1);
namespace ProxyManagerTest\Generator\Util;
use Laminas\Code\Generator\ClassGenerator;
use Laminas\Code\Generator\MethodGenerator;
use PHPUnit\Framework\TestCase;
use ProxyManager\Generator\Util\ClassGeneratorUtils;
use ProxyManagerTestAsset\BaseClass;
use ProxyManagerTestAsset\ClassWithFinalMethods;
use ReflectionClass;
/**
* Test to {@see ProxyManager\Generator\Util\ClassGeneratorUtils}
*
* @covers ProxyManager\Generator\Util\ClassGeneratorUtils
* @group Coverage
*/
final class ClassGeneratorUtilsTest extends TestCase
{
public function testCantAddAFinalMethod(): void
{
$classGenerator = $this->createMock(ClassGenerator::class);
$methodGenerator = $this->createMock(MethodGenerator::class);
$methodGenerator
->expects(self::once())
->method('getName')
->willReturn('foo');
$classGenerator
->expects(self::never())
->method('addMethodFromGenerator');
$reflection = new ReflectionClass(ClassWithFinalMethods::class);
self::assertFalse(ClassGeneratorUtils::addMethodIfNotFinal($reflection, $classGenerator, $methodGenerator));
}
public function testCanAddANotFinalMethod(): void
{
$classGenerator = $this->createMock(ClassGenerator::class);
$methodGenerator = $this->createMock(MethodGenerator::class);
$methodGenerator
->expects(self::once())
->method('getName')
->willReturn('publicMethod');
$classGenerator
->expects(self::once())
->method('addMethodFromGenerator');
$reflection = new ReflectionClass(BaseClass::class);
self::assertTrue(ClassGeneratorUtils::addMethodIfNotFinal($reflection, $classGenerator, $methodGenerator));
}
}
|