feat: register url transformation services
This commit is contained in:
@@ -11,6 +11,8 @@ use WPContentSync\Admin\AdminPage;
|
|||||||
use WPContentSync\Logging\LoggerInterface;
|
use WPContentSync\Logging\LoggerInterface;
|
||||||
use WPContentSync\Logging\OptionLogger;
|
use WPContentSync\Logging\OptionLogger;
|
||||||
use WPContentSync\Settings\SettingsRepository;
|
use WPContentSync\Settings\SettingsRepository;
|
||||||
|
use WPContentSync\Url\MetadataUrlTransformer;
|
||||||
|
use WPContentSync\Url\UrlTransformer;
|
||||||
|
|
||||||
final class Plugin {
|
final class Plugin {
|
||||||
private Container $container;
|
private Container $container;
|
||||||
@@ -36,6 +38,22 @@ final class Plugin {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$container->factory(
|
||||||
|
UrlTransformer::class,
|
||||||
|
static function (): UrlTransformer {
|
||||||
|
return new UrlTransformer();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
$container->factory(
|
||||||
|
MetadataUrlTransformer::class,
|
||||||
|
static function () use ( $container ): MetadataUrlTransformer {
|
||||||
|
return new MetadataUrlTransformer(
|
||||||
|
$container->get( UrlTransformer::class )
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
$container->factory(
|
$container->factory(
|
||||||
AdminPage::class,
|
AdminPage::class,
|
||||||
static function () use ( $container ): AdminPage {
|
static function () use ( $container ): AdminPage {
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace WPContentSync\Tests\Unit;
|
||||||
|
|
||||||
|
use PHPUnit\Framework\TestCase;
|
||||||
|
use WPContentSync\Container;
|
||||||
|
use WPContentSync\Plugin;
|
||||||
|
use WPContentSync\Url\MetadataUrlTransformer;
|
||||||
|
use WPContentSync\Url\UrlTransformer;
|
||||||
|
|
||||||
|
class PluginTest extends TestCase {
|
||||||
|
public function test_it_registers_url_transformation_services(): void {
|
||||||
|
$container = $this->getPluginContainer( Plugin::create() );
|
||||||
|
|
||||||
|
$url_transformer = $container->get( UrlTransformer::class );
|
||||||
|
$metadata_transformer = $container->get( MetadataUrlTransformer::class );
|
||||||
|
|
||||||
|
self::assertInstanceOf( UrlTransformer::class, $url_transformer );
|
||||||
|
self::assertInstanceOf( MetadataUrlTransformer::class, $metadata_transformer );
|
||||||
|
self::assertSame( $url_transformer, $container->get( UrlTransformer::class ) );
|
||||||
|
self::assertSame( $metadata_transformer, $container->get( MetadataUrlTransformer::class ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getPluginContainer( Plugin $plugin ): Container {
|
||||||
|
$reflection = new \ReflectionClass( $plugin );
|
||||||
|
$property = $reflection->getProperty( 'container' );
|
||||||
|
$property->setAccessible( true );
|
||||||
|
|
||||||
|
/** @var Container $container */
|
||||||
|
$container = $property->getValue( $plugin );
|
||||||
|
|
||||||
|
return $container;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user