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
|
<?php
declare(strict_types=1);
namespace ProxyManagerTest\Exception;
use PHPUnit\Framework\TestCase;
use ProxyManager\Exception\InvalidProxiedClassException;
use ProxyManagerTestAsset\BaseInterface;
use ProxyManagerTestAsset\ClassWithAbstractProtectedMethod;
use ProxyManagerTestAsset\ClassWithAbstractPublicMethod;
use ProxyManagerTestAsset\ClassWithProtectedMethod;
use ProxyManagerTestAsset\FinalClass;
use ReflectionClass;
/**
* Tests for {@see \ProxyManager\Exception\InvalidProxiedClassException}
*
* @covers \ProxyManager\Exception\InvalidProxiedClassException
* @group Coverage
*/
final class InvalidProxiedClassExceptionTest extends TestCase
{
public function testInterfaceNotSupported(): void
{
self::assertSame(
'Provided interface "ProxyManagerTestAsset\BaseInterface" cannot be proxied',
InvalidProxiedClassException::interfaceNotSupported(
new ReflectionClass(BaseInterface::class)
)->getMessage()
);
}
public function testFinalClassNotSupported(): void
{
self::assertSame(
'Provided class "ProxyManagerTestAsset\FinalClass" is final and cannot be proxied',
InvalidProxiedClassException::finalClassNotSupported(
new ReflectionClass(FinalClass::class)
)->getMessage()
);
}
public function testAbstractProtectedMethodsNotSupported(): void
{
self::assertSame(
'Provided class "ProxyManagerTestAsset\ClassWithAbstractProtectedMethod" has following protected abstract'
. ' methods, and therefore cannot be proxied:' . "\n"
. 'ProxyManagerTestAsset\ClassWithAbstractProtectedMethod::protectedAbstractMethod',
InvalidProxiedClassException::abstractProtectedMethodsNotSupported(
new ReflectionClass(ClassWithAbstractProtectedMethod::class)
)->getMessage()
);
}
public function testProtectedMethodsNotSupported(): void
{
self::assertSame(
'Provided class "ProxyManagerTestAsset\ClassWithProtectedMethod" has following protected abstract'
. ' methods, and therefore cannot be proxied:' . "\n",
InvalidProxiedClassException::abstractProtectedMethodsNotSupported(
new ReflectionClass(ClassWithProtectedMethod::class)
)->getMessage()
);
}
public function testAbstractPublicMethodsNotSupported(): void
{
self::assertSame(
'Provided class "ProxyManagerTestAsset\ClassWithAbstractPublicMethod" has following protected abstract'
. ' methods, and therefore cannot be proxied:' . "\n",
InvalidProxiedClassException::abstractProtectedMethodsNotSupported(
new ReflectionClass(ClassWithAbstractPublicMethod::class)
)->getMessage()
);
}
}
|