Skip to content

Commit

Permalink
prepare release
Browse files Browse the repository at this point in the history
  • Loading branch information
spiralbot committed Jan 7, 2025
1 parent 504879d commit 503b761
Show file tree
Hide file tree
Showing 17 changed files with 262 additions and 237 deletions.
4 changes: 2 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@
"nikic/php-parser": "^4.15.5",
"doctrine/inflector": "^1.4|^2.0",
"spiral/attributes": "^2.8|^3.0",
"spiral/config": "^3.15",
"spiral/reactor": "^3.15"
"spiral/config": "^3.14.9",
"spiral/reactor": "^3.14.9"
},
"autoload": {
"psr-4": {
Expand Down
34 changes: 17 additions & 17 deletions tests/ClassNode/ConflictResolver/ConflictResolverTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,10 @@ public function testResolveInternalConflicts(): void
)
);

self::assertStringContainsString(Fixtures\Some::class . ';', $r);
self::assertStringContainsString(Fixtures\SubFolder\Some::class . ' as Some2;', $r);
self::assertStringNotContainsString(Fixtures\SubFolder\Some::class . ';', $r);
self::assertStringContainsString(Fixtures\ATest3::class . ';', $r);
$this->assertStringContainsString(Fixtures\Some::class . ';', $r);
$this->assertStringContainsString(Fixtures\SubFolder\Some::class . ' as Some2;', $r);
$this->assertStringNotContainsString(Fixtures\SubFolder\Some::class . ';', $r);
$this->assertStringContainsString(Fixtures\ATest3::class . ';', $r);
}

/**
Expand All @@ -60,12 +60,12 @@ public function testResolveImportConflicts(): void
)
);

self::assertStringContainsString(Fixtures\Some::class . ' as FTest;', $r);
self::assertStringNotContainsString(Fixtures\Some::class . ';', $r);
self::assertStringContainsString(Fixtures\SubFolder\Some::class . ' as TestAlias;', $r);
self::assertStringNotContainsString(Fixtures\SubFolder\Some::class . ';', $r);
self::assertStringContainsString(Fixtures\ATest3::class . ' as ATest;', $r);
self::assertStringNotContainsString(Fixtures\ATest3::class . ';', $r);
$this->assertStringContainsString(Fixtures\Some::class . ' as FTest;', $r);
$this->assertStringNotContainsString(Fixtures\Some::class . ';', $r);
$this->assertStringContainsString(Fixtures\SubFolder\Some::class . ' as TestAlias;', $r);
$this->assertStringNotContainsString(Fixtures\SubFolder\Some::class . ';', $r);
$this->assertStringContainsString(Fixtures\ATest3::class . ' as ATest;', $r);
$this->assertStringNotContainsString(Fixtures\ATest3::class . ';', $r);
}

/**
Expand All @@ -88,11 +88,11 @@ public function testResolveWithAliasForParentConstructor(): void
)
);

self::assertStringContainsString(Fixtures\Some::class . ';', $r);
self::assertStringContainsString(Fixtures\SubFolder\Some::class . ' as Some2;', $r);
self::assertStringNotContainsString(Fixtures\SubFolder\Some::class . ';', $r);
self::assertStringContainsString(Fixtures\ATest3::class . ' as ATestAlias;', $r);
self::assertStringNotContainsString(Fixtures\ATest3::class . ';', $r);
$this->assertStringContainsString(Fixtures\Some::class . ';', $r);
$this->assertStringContainsString(Fixtures\SubFolder\Some::class . ' as Some2;', $r);
$this->assertStringNotContainsString(Fixtures\SubFolder\Some::class . ';', $r);
$this->assertStringContainsString(Fixtures\ATest3::class . ' as ATestAlias;', $r);
$this->assertStringNotContainsString(Fixtures\ATest3::class . ';', $r);
}

public function testDuplicateProperty(): void
Expand All @@ -110,8 +110,8 @@ public function testDuplicateProperty(): void
)
);

self::assertStringContainsString(Fixtures\Some::class . ';', $r);
self::assertStringContainsString('__construct(private readonly Some $test)', $r);
$this->assertStringContainsString(Fixtures\Some::class . ';', $r);
$this->assertStringContainsString('__construct(private readonly Some $test)', $r);
}

/**
Expand Down
2 changes: 1 addition & 1 deletion tests/ClassNode/ConflictResolver/EntitiesTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class EntitiesTest extends TestCase
#[DataProvider('nameProvider')]
public function testName(string $name, int $sequence, string $expected): void
{
self::assertSame($expected, NameEntity::createWithSequence($name, $sequence)->fullName());
$this->assertEquals($expected, NameEntity::createWithSequence($name, $sequence)->fullName());
}

public static function nameProvider(): \Traversable
Expand Down
2 changes: 1 addition & 1 deletion tests/ClassNode/ConflictResolver/NamesTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public function testFind(string $method, array $vars, array $dependencies, array
$resolved[] = $dependency->var;
}

self::assertEquals($expected, $resolved);
$this->assertEquals($expected, $resolved);
}

public static function cdProvider(): \Traversable
Expand Down
2 changes: 1 addition & 1 deletion tests/ClassNode/ConflictResolver/NamespacesTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public function testFind(array $stmts, array $dependencies, array $expected): vo
$resolved[$dependency->property] = $dependency->type->getAliasOrShortName();
}

self::assertEquals($expected, $resolved);
$this->assertEquals($expected, $resolved);
}

public static function cdProvider(): \Traversable
Expand Down
2 changes: 1 addition & 1 deletion tests/ClassNode/ConflictResolver/SequenceTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ class SequenceTest extends TestCase
#[DataProvider('findProvider')]
public function testFind(array $sequence, int $pos, int $expected): void
{
self::assertSame($expected, $this->sequences()->find($sequence, $pos));
$this->assertEquals($expected, $this->sequences()->find($sequence, $pos));
}

public static function findProvider(): \Traversable
Expand Down
8 changes: 6 additions & 2 deletions tests/Commands/AbstractCommandsTestCase.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,12 @@ abstract class AbstractCommandsTestCase extends TestCase
protected array $buf = [];
private readonly Storage $storage;

public function __construct($name = null, array $data = [], $dataName = '')
{
$this->storage = new Storage($this->dir() . '/Fixtures/');
parent::__construct($name, $data, $dataName);
}

public function setUp(): void
{
if (!\class_exists(Kernel::class)) {
Expand All @@ -40,8 +46,6 @@ public function setUp(): void
'cache' => sys_get_temp_dir()
], false)->run();

$this->storage = new Storage($this->dir() . '/Fixtures/');

foreach (static::STORE as $name) {
$this->storage->store($name);
}
Expand Down
99 changes: 57 additions & 42 deletions tests/Commands/DumpCommandTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public function testCommandRegistered(): void

$result = $out->fetch();

self::assertStringContainsString('prototype:dump', $result);
$this->assertStringContainsString('prototype:dump', $result);
}

public function testDump(): void
Expand All @@ -27,7 +27,7 @@ public function testDump(): void
$files
->expects($this->once())
->method('write')
->with(static::callback(fn (): bool => true), static::callback($this->validateTrait(...)));
->with(static::callback(fn () => true), static::callback($this->validateTrait(...)));

$this->app->getContainer()->bindSingleton(FilesInterface::class, $files, true);

Expand All @@ -36,50 +36,65 @@ public function testDump(): void

$result = $out->fetch();

self::assertStringContainsString('Updating PrototypeTrait DOCComment... complete', $result);
$this->assertStringContainsString('Updating PrototypeTrait DOCComment... complete', $result);
}

private function validateTrait(string $content): bool
{
self::assertStringContainsString('namespace Spiral\Prototype\Traits;', $content);
self::assertStringContainsString('use Spiral\Prototype\PrototypeRegistry;', $content);
self::assertStringContainsString('This DocComment is auto-generated, do not edit or commit this file to repository.', $content);
self::assertStringContainsString('@property \Spiral\Tests\Prototype\Fixtures\TestApp $app', $content);
self::assertStringContainsString('@property \Spiral\Tokenizer\ClassesInterface $classLocator', $content);
self::assertStringContainsString('@property \Spiral\Console\Console $console', $content);
self::assertStringContainsString('@property \Spiral\Broadcasting\BroadcastInterface $broadcast', $content);
self::assertStringContainsString('@property \Psr\Container\ContainerInterface $container', $content);
self::assertStringContainsString('@property \Spiral\Encrypter\EncrypterInterface $encrypter', $content);
self::assertStringContainsString('@property \Spiral\Boot\EnvironmentInterface $env', $content);
self::assertStringContainsString('@property \Spiral\Files\FilesInterface $files', $content);
self::assertStringContainsString('@property \Spiral\Security\GuardInterface $guard', $content);
self::assertStringContainsString('@property \Spiral\Http\Http $http', $content);
self::assertStringContainsString('@property \Spiral\Translator\TranslatorInterface $i18n', $content);
self::assertStringContainsString('@property \Spiral\Http\Request\InputManager $input', $content);
self::assertStringContainsString('@property \Spiral\Session\SessionScope $session', $content);
self::assertStringContainsString('@property \Spiral\Cookies\CookieManager $cookies', $content);
self::assertStringContainsString('@property \Psr\Log\LoggerInterface $logger', $content);
self::assertStringContainsString('@property \Spiral\Logger\LogsInterface $logs', $content);
self::assertStringContainsString('@property \Spiral\Boot\MemoryInterface $memory', $content);
self::assertStringContainsString('@property \Spiral\Pagination\PaginationProviderInterface $paginators', $content);
self::assertStringContainsString('@property \Spiral\Queue\QueueInterface $queue', $content);
self::assertStringContainsString('@property \Spiral\Queue\QueueConnectionProviderInterface $queueManager', $content);
self::assertStringContainsString('@property \Spiral\Http\Request\InputManager $request', $content);
self::assertStringContainsString('@property \Spiral\Http\ResponseWrapper $response', $content);
self::assertStringContainsString('@property \Spiral\Router\RouterInterface $router', $content);
self::assertStringContainsString('@property \Spiral\Snapshots\SnapshotterInterface $snapshots', $content);
self::assertStringContainsString('@property \Spiral\Storage\BucketInterface $storage', $content);
self::assertStringContainsString('@property \Spiral\Serializer\SerializerManager $serializer', $content);
self::assertStringContainsString('@property \Spiral\Validation\ValidationInterface $validator', $content);
self::assertStringContainsString('@property \Spiral\Views\ViewsInterface $views', $content);
self::assertStringContainsString('@property \Spiral\Auth\AuthScope $auth', $content);
self::assertStringContainsString('@property \Spiral\Auth\TokenStorageInterface $authTokens', $content);
self::assertStringContainsString('@property \Psr\SimpleCache\CacheInterface $cache', $content);
self::assertStringContainsString('@property \Spiral\Cache\CacheStorageProviderInterface $cacheManager', $content);
self::assertStringContainsString('@property \Spiral\Exceptions\ExceptionHandlerInterface $exceptionHandler', $content);
self::assertStringContainsString('trait PrototypeTrait', $content);
self::assertStringContainsString('public function __get(string $name): mixed', $content);
self::assertStringContainsString('return $container->get($target->type->name());', $content);
$this->assertStringContainsString('namespace Spiral\Prototype\Traits;', $content);
$this->assertStringContainsString('use Spiral\Prototype\PrototypeRegistry;', $content);
$this->assertStringContainsString(
'This DocComment is auto-generated, do not edit or commit this file to repository.',
$content
);
$this->assertStringContainsString('@property \Spiral\Tests\Prototype\Fixtures\TestApp $app', $content);
$this->assertStringContainsString('@property \Spiral\Tokenizer\ClassesInterface $classLocator', $content);
$this->assertStringContainsString('@property \Spiral\Console\Console $console', $content);
$this->assertStringContainsString('@property \Spiral\Broadcasting\BroadcastInterface $broadcast', $content);
$this->assertStringContainsString('@property \Psr\Container\ContainerInterface $container', $content);
$this->assertStringContainsString('@property \Spiral\Encrypter\EncrypterInterface $encrypter', $content);
$this->assertStringContainsString('@property \Spiral\Boot\EnvironmentInterface $env', $content);
$this->assertStringContainsString('@property \Spiral\Files\FilesInterface $files', $content);
$this->assertStringContainsString('@property \Spiral\Security\GuardInterface $guard', $content);
$this->assertStringContainsString('@property \Spiral\Http\Http $http', $content);
$this->assertStringContainsString('@property \Spiral\Translator\TranslatorInterface $i18n', $content);
$this->assertStringContainsString('@property \Spiral\Http\Request\InputManager $input', $content);
$this->assertStringContainsString('@property \Spiral\Session\SessionScope $session', $content);
$this->assertStringContainsString('@property \Spiral\Cookies\CookieManager $cookies', $content);
$this->assertStringContainsString('@property \Psr\Log\LoggerInterface $logger', $content);
$this->assertStringContainsString('@property \Spiral\Logger\LogsInterface $logs', $content);
$this->assertStringContainsString('@property \Spiral\Boot\MemoryInterface $memory', $content);
$this->assertStringContainsString(
'@property \Spiral\Pagination\PaginationProviderInterface $paginators',
$content
);
$this->assertStringContainsString('@property \Spiral\Queue\QueueInterface $queue', $content);
$this->assertStringContainsString(
'@property \Spiral\Queue\QueueConnectionProviderInterface $queueManager',
$content
);
$this->assertStringContainsString('@property \Spiral\Http\Request\InputManager $request', $content);
$this->assertStringContainsString('@property \Spiral\Http\ResponseWrapper $response', $content);
$this->assertStringContainsString('@property \Spiral\Router\RouterInterface $router', $content);
$this->assertStringContainsString('@property \Spiral\Snapshots\SnapshotterInterface $snapshots', $content);
$this->assertStringContainsString('@property \Spiral\Storage\BucketInterface $storage', $content);
$this->assertStringContainsString('@property \Spiral\Serializer\SerializerManager $serializer', $content);
$this->assertStringContainsString('@property \Spiral\Validation\ValidationInterface $validator', $content);
$this->assertStringContainsString('@property \Spiral\Views\ViewsInterface $views', $content);
$this->assertStringContainsString('@property \Spiral\Auth\AuthScope $auth', $content);
$this->assertStringContainsString('@property \Spiral\Auth\TokenStorageInterface $authTokens', $content);
$this->assertStringContainsString('@property \Psr\SimpleCache\CacheInterface $cache', $content);
$this->assertStringContainsString(
'@property \Spiral\Cache\CacheStorageProviderInterface $cacheManager',
$content
);
$this->assertStringContainsString(
'@property \Spiral\Exceptions\ExceptionHandlerInterface $exceptionHandler',
$content
);
$this->assertStringContainsString('trait PrototypeTrait', $content);
$this->assertStringContainsString('public function __get(string $name): mixed', $content);
$this->assertStringContainsString('return $container->get($target->type->name());', $content);

return true;
}
Expand Down
32 changes: 16 additions & 16 deletions tests/Commands/InjectCommandTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public function testCommandRegistered(): void

$result = $out->fetch();

self::assertStringContainsString('prototype:inject', $result);
$this->assertStringContainsString('prototype:inject', $result);
}

public function testEmptyInjection(): void
Expand All @@ -32,7 +32,7 @@ public function testEmptyInjection(): void
$reflection = new \ReflectionClass($target);
$filename = $reflection->getFileName();
$source = file_get_contents($filename);
self::assertStringContainsString('use PrototypeTrait;', $source);
$this->assertStringContainsString('use PrototypeTrait;', $source);

try {
$this->app->bindApp();
Expand All @@ -41,7 +41,7 @@ public function testEmptyInjection(): void
$out = new BufferedOutput();
$this->app->get(Console::class)->run('prototype:inject', $inp, $out);

self::assertStringNotContainsString('use PrototypeTrait;', file_get_contents($filename));
$this->assertStringNotContainsString('use PrototypeTrait;', file_get_contents($filename));
} finally {
file_put_contents($filename, $source);
}
Expand All @@ -57,8 +57,8 @@ public function testValid(): void

$result = $out->fetch();

self::assertStringContainsString(TestClass::class, $result);
self::assertStringContainsString(TestApp::class, $result);
$this->assertStringContainsString(TestClass::class, $result);
$this->assertStringContainsString(TestApp::class, $result);
}

public function testNone(): void
Expand All @@ -69,7 +69,7 @@ public function testNone(): void

$result = $out->fetch();

self::assertSame('', $result);
$this->assertSame('', $result);
}

public function testInvalid(): void
Expand All @@ -82,8 +82,8 @@ public function testInvalid(): void

$result = $out->fetch();

self::assertStringContainsString('Can\'t resolve', $result);
self::assertStringContainsString('Invalid', $result);
$this->assertStringContainsString('Can\'t resolve', $result);
$this->assertStringContainsString('Invalid', $result);
}

public function testInheritedInjection(): void
Expand All @@ -96,15 +96,15 @@ public function testInheritedInjection(): void

$result = $out->fetch();

self::assertStringContainsString(InheritedInjection\InjectionOne::class, $result);
self::assertStringContainsString(InheritedInjection\InjectionTwo::class, $result);
self::assertStringContainsString(InheritedInjection\ParentClass::class, $result);
self::assertStringContainsString(InheritedInjection\MiddleClass::class, $result);
self::assertStringContainsString(InheritedInjection\ChildClass::class, $result);
$this->assertStringContainsString(InheritedInjection\InjectionOne::class, $result);
$this->assertStringContainsString(InheritedInjection\InjectionTwo::class, $result);
$this->assertStringContainsString(InheritedInjection\ParentClass::class, $result);
$this->assertStringContainsString(InheritedInjection\MiddleClass::class, $result);
$this->assertStringContainsString(InheritedInjection\ChildClass::class, $result);

self::assertSame(['one'], $this->getParameters(InheritedInjection\ParentClass::class));
self::assertSame(['one', 'ownInjection'], $this->getParameters(InheritedInjection\MiddleClass::class));
self::assertSame(['two', 'one', 'ownInjection'], $this->getParameters(InheritedInjection\ChildClass::class));
$this->assertSame(['one'], $this->getParameters(InheritedInjection\ParentClass::class));
$this->assertSame(['one', 'ownInjection'], $this->getParameters(InheritedInjection\MiddleClass::class));
$this->assertSame(['two', 'one', 'ownInjection'], $this->getParameters(InheritedInjection\ChildClass::class));
}

private function getParameters(string $class): array
Expand Down
Loading

0 comments on commit 503b761

Please sign in to comment.