80 lines
2.4 KiB
PHP
80 lines
2.4 KiB
PHP
<?php
|
|
|
|
namespace WPContentSync\Tests\Unit;
|
|
|
|
use PHPUnit\Framework\TestCase;
|
|
use WPContentSync\Admin\FileImportController;
|
|
use WPContentSync\Container;
|
|
use WPContentSync\Plugin;
|
|
use WPContentSync\Rest\RestPackageController;
|
|
use WPContentSync\Transport\FileTransportInterface;
|
|
use WPContentSync\Transport\RestTransportClient;
|
|
use WPContentSync\Url\MetadataUrlTransformer;
|
|
use WPContentSync\Url\UrlTransformer;
|
|
|
|
class PluginTest extends TestCase {
|
|
protected function tearDown(): void {
|
|
unset( $GLOBALS['wpcs_test_actions'] );
|
|
|
|
parent::tearDown();
|
|
}
|
|
|
|
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 ) );
|
|
}
|
|
|
|
public function test_it_registers_file_transport_services(): void {
|
|
$container = $this->getPluginContainer( Plugin::create() );
|
|
|
|
self::assertInstanceOf(
|
|
FileTransportInterface::class,
|
|
$container->get( FileTransportInterface::class )
|
|
);
|
|
self::assertInstanceOf(
|
|
FileImportController::class,
|
|
$container->get( FileImportController::class )
|
|
);
|
|
}
|
|
|
|
public function test_it_registers_rest_transport_services(): void {
|
|
$container = $this->getPluginContainer( Plugin::create() );
|
|
|
|
self::assertInstanceOf(
|
|
RestTransportClient::class,
|
|
$container->get( RestTransportClient::class )
|
|
);
|
|
self::assertInstanceOf(
|
|
RestPackageController::class,
|
|
$container->get( RestPackageController::class )
|
|
);
|
|
}
|
|
|
|
public function test_it_hooks_rest_package_controller_on_register(): void {
|
|
unset( $GLOBALS['wpcs_test_actions'] );
|
|
|
|
$plugin = Plugin::create();
|
|
$plugin->register();
|
|
|
|
self::assertArrayHasKey( 'rest_api_init', $GLOBALS['wpcs_test_actions'] );
|
|
}
|
|
|
|
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;
|
|
}
|
|
}
|