Skip to content

Commit

Permalink
[TASK] Streamline folder and files naming
Browse files Browse the repository at this point in the history
  • Loading branch information
sabbelasichon committed Apr 18, 2024
1 parent 3285e97 commit 4736254
Show file tree
Hide file tree
Showing 17 changed files with 109 additions and 41 deletions.
8 changes: 8 additions & 0 deletions .phpstorm.meta.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?php

declare(strict_types=1);

// see https://confluence.jetbrains.com/display/PhpStorm/PhpStorm+Advanced+Metadata
namespace PHPSTORM_META;

override(\Psr\Container\ContainerInterface::get(0), type(0));
8 changes: 4 additions & 4 deletions fractor/config/application.php
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
<?php

use a9f\Fractor\Configuration\AllowedFileExtensionsResolver;
use a9f\Fractor\Configuration\ConfigurationFactory;
use a9f\Fractor\Configuration\Option;
use a9f\Fractor\Contract\FileProcessor;
use a9f\Fractor\Factory\ConfigurationFactory;
use a9f\Fractor\Fractor\FractorRunner;
use a9f\Fractor\ValueObject\Configuration;
use Symfony\Component\DependencyInjection\ContainerBuilder;
Expand All @@ -25,10 +26,9 @@
$services->load('a9f\\Fractor\\', __DIR__ . '/../src/')
->exclude(
[
__DIR__ . '/../src/Configuration',
__DIR__ . '/../src/Console',
__DIR__ . '/../src/ValueObject',
__DIR__ . '/../src/Testing',
__DIR__ . '/../src/ValueObject',
]
);

Expand All @@ -41,7 +41,7 @@

$services->set(Configuration::class)->factory([service(ConfigurationFactory::class), 'create']);
$services->set(FractorRunner::class)->arg('$processors', tagged_iterator('fractor.file_processor'));
$services->set(ConfigurationFactory::class)->arg('$processors', tagged_iterator('fractor.file_processor'));
$services->set(AllowedFileExtensionsResolver::class)->arg('$processors', tagged_iterator('fractor.file_processor'));

$containerBuilder->registerForAutoconfiguration(FileProcessor::class)->addTag('fractor.file_processor');
};
30 changes: 30 additions & 0 deletions fractor/src/Configuration/AllowedFileExtensionsResolver.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?php

declare(strict_types=1);

namespace a9f\Fractor\Configuration;

use a9f\Fractor\Contract\FileProcessor;

final readonly class AllowedFileExtensionsResolver
{
/**
* @param FileProcessor[] $processors
*/
public function __construct(private iterable $processors)
{
}

/**
* @return list<non-empty-string>
*/
public function resolve(): array
{
$fileExtensions = [];
foreach ($this->processors as $processor) {
$fileExtensions = array_merge($processor->allowedFileExtensions(), $fileExtensions);
}

return array_unique($fileExtensions);
}
}
23 changes: 23 additions & 0 deletions fractor/src/Configuration/ConfigurationFactory.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?php

declare(strict_types=1);

namespace a9f\Fractor\Configuration;

use a9f\Fractor\ValueObject\Configuration;
use Symfony\Component\DependencyInjection\ParameterBag\ContainerBagInterface;

final readonly class ConfigurationFactory
{
public function __construct(private ContainerBagInterface $parameterBag, private AllowedFileExtensionsResolver $allowedFileExtensionsResolver)
{
}

public function create(): Configuration
{
return new Configuration(
$this->allowedFileExtensionsResolver->resolve(),
$this->parameterBag->get(Option::PATHS),
);
}
}
33 changes: 0 additions & 33 deletions fractor/src/Factory/ConfigurationFactory.php

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<?php

declare(strict_types=1);

namespace a9f\Fractor\Tests\Configuration\AllowedFileExtensionsResolver;

use a9f\Fractor\Configuration\AllowedFileExtensionsResolver;
use a9f\Fractor\Testing\PHPUnit\AbstractFractorTestCase;

final class AllowedFileExtensionsResolverTest extends AbstractFractorTestCase
{
public function test(): void
{
// Arrange
$allowedFileExtensionsResolver = $this->getService(AllowedFileExtensionsResolver::class);

// Act & Assert
self::assertSame(['txt'], $allowedFileExtensionsResolver->resolve());
}
protected function additionalConfigurationFiles(): array
{
return [
__DIR__ . '/config/config.php'
];
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?php

use a9f\Fractor\Tests\Helper\FileProcessor\TextFileProcessor;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use function Symfony\Component\DependencyInjection\Loader\Configurator\tagged_iterator;

return static function (ContainerConfigurator $containerConfigurator, ContainerBuilder $containerBuilder): void {
$services = $containerConfigurator->services();
$services->defaults()
->autowire()
->autoconfigure();
$services->set(TextFileProcessor::class)->arg('$rules', tagged_iterator('fractor.text_rules'));
};
4 changes: 2 additions & 2 deletions fractor/tests/FileSystem/FileFinderTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,12 @@ public function anExceptionIsThrownWhenDirectoriesAreEmpty(): void
#[Test]
public function findAllNonEmptyFilesInGivenDirectories(): void
{
self::assertCount(4, $this->subject->findFiles([__DIR__ . '/Fixture/DirectorToSearchIn'], []));
self::assertCount(4, $this->subject->findFiles([__DIR__ . '/Fixtures/DirectorToSearchIn'], []));
}

#[Test]
public function findAllNonEmptyFilesInGivenDirectoriesWithGivenExtensions(): void
{
self::assertCount(2, $this->subject->findFiles([__DIR__ . '/Fixture/DirectorToSearchIn'], ['txt', 'json']));
self::assertCount(2, $this->subject->findFiles([__DIR__ . '/Fixtures/DirectorToSearchIn'], ['txt', 'json']));
}
}
2 changes: 1 addition & 1 deletion fractor/tests/Fractor/FractorRunner/FractorRunnerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public function test(): void
protected function additionalConfigurationFiles(): array
{
return [
__DIR__ . '/config/application.php'
__DIR__ . '/config/config.php'
];
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ public function test(): void
protected function additionalConfigurationFiles(): array
{
return [
__DIR__ . '/config/application.php',
__DIR__ . '/config/config.php',
];
}
}

0 comments on commit 4736254

Please sign in to comment.