feat: register url transformation services

This commit is contained in:
Keith Solomon
2026-04-26 15:00:36 -05:00
parent d50917d827
commit 4f845bdbf9
2 changed files with 52 additions and 0 deletions
+18
View File
@@ -11,6 +11,8 @@ use WPContentSync\Admin\AdminPage;
use WPContentSync\Logging\LoggerInterface;
use WPContentSync\Logging\OptionLogger;
use WPContentSync\Settings\SettingsRepository;
use WPContentSync\Url\MetadataUrlTransformer;
use WPContentSync\Url\UrlTransformer;
final class Plugin {
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(
AdminPage::class,
static function () use ( $container ): AdminPage {
+34
View File
@@ -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;
}
}