Some checks failed
Deploy Application / deploy (push) Has been cancelled
81 lines
2.8 KiB
PHP
81 lines
2.8 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Tests\Framework\Attributes\Execution;
|
|
|
|
use App\Framework\Attributes\Execution\CallbackMetadata;
|
|
use App\Framework\Attributes\Execution\CallbackType;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
final class CallbackMetadataTest extends TestCase
|
|
{
|
|
public function testFromHandler(): void
|
|
{
|
|
$metadata = CallbackMetadata::fromHandler('MyHandler', ['arg1', 'arg2']);
|
|
|
|
$this->assertEquals(CallbackType::HANDLER, $metadata->callbackType);
|
|
$this->assertEquals('MyHandler', $metadata->class);
|
|
$this->assertNull($metadata->method);
|
|
$this->assertEquals(['arg1', 'arg2'], $metadata->args);
|
|
}
|
|
|
|
public function testFromCallableString(): void
|
|
{
|
|
$metadata = CallbackMetadata::fromCallable('MyClass::myMethod');
|
|
|
|
$this->assertEquals(CallbackType::STATIC_METHOD, $metadata->callbackType);
|
|
$this->assertEquals('MyClass', $metadata->class);
|
|
$this->assertEquals('myMethod', $metadata->method);
|
|
$this->assertEquals([], $metadata->args);
|
|
}
|
|
|
|
public function testFromCallableArray(): void
|
|
{
|
|
$metadata = CallbackMetadata::fromCallable(['MyClass', 'myMethod']);
|
|
|
|
$this->assertEquals(CallbackType::STATIC_METHOD, $metadata->callbackType);
|
|
$this->assertEquals('MyClass', $metadata->class);
|
|
$this->assertEquals('myMethod', $metadata->method);
|
|
}
|
|
|
|
public function testFromFactory(): void
|
|
{
|
|
$metadata = CallbackMetadata::fromFactory('MyFactory', 'create', ['param1']);
|
|
|
|
$this->assertEquals(CallbackType::FACTORY, $metadata->callbackType);
|
|
$this->assertEquals('MyFactory', $metadata->class);
|
|
$this->assertEquals('create', $metadata->method);
|
|
$this->assertEquals(['param1'], $metadata->args);
|
|
}
|
|
|
|
public function testToArrayAndFromArray(): void
|
|
{
|
|
$original = CallbackMetadata::fromHandler('MyHandler', ['arg1']);
|
|
|
|
$array = $original->toArray();
|
|
$restored = CallbackMetadata::fromArray($array);
|
|
|
|
$this->assertEquals($original->callbackType, $restored->callbackType);
|
|
$this->assertEquals($original->class, $restored->class);
|
|
$this->assertEquals($original->method, $restored->method);
|
|
$this->assertEquals($original->args, $restored->args);
|
|
}
|
|
|
|
public function testIsCacheable(): void
|
|
{
|
|
$handler = CallbackMetadata::fromHandler('MyHandler');
|
|
$this->assertTrue($handler->isCacheable());
|
|
|
|
$callable = CallbackMetadata::fromCallable('MyClass::method');
|
|
$this->assertTrue($callable->isCacheable());
|
|
|
|
$factory = CallbackMetadata::fromFactory('MyFactory', 'create');
|
|
$this->assertTrue($factory->isCacheable());
|
|
|
|
$closure = new CallbackMetadata(CallbackType::CLOSURE, '');
|
|
$this->assertFalse($closure->isCacheable());
|
|
}
|
|
}
|
|
|