Skip to content

Commit

Permalink
[#261] install composer unused in toggle-model package
Browse files Browse the repository at this point in the history
  • Loading branch information
kpicaza committed Jun 25, 2021
1 parent be41e84 commit 0beed72
Show file tree
Hide file tree
Showing 14 changed files with 336 additions and 14 deletions.
5 changes: 3 additions & 2 deletions composer.json
Expand Up @@ -17,10 +17,10 @@
],
"require": {
"php": "^7.4|^8.0",
"pheature/toggle-core": "^0.1.1",
"pheature/toggle-model": "^0.1.1"
"pheature/toggle-core": "^0.1.1"
},
"require-dev": {
"icanhazstring/composer-unused": "^0.7.5",
"infection/infection": "^0.23.0",
"phpro/grumphp": "^1.0",
"phpstan/phpstan": "^0.12",
Expand All @@ -42,6 +42,7 @@
},
"scripts": {
"check-all": [
"composer unused",
"@cs-check",
"@test",
"@inspect",
Expand Down
12 changes: 6 additions & 6 deletions src/Container/ConfigProvider.php
Expand Up @@ -4,12 +4,12 @@

namespace Pheature\Crud\Toggle\Container;

use Pheature\Crud\Psr11\Toggle\CreateFeatureFactory;
use Pheature\Crud\Psr11\Toggle\DisableFeatureFactory;
use Pheature\Crud\Psr11\Toggle\EnableFeatureFactory;
use Pheature\Crud\Psr11\Toggle\RemoveFeatureFactory;
use Pheature\Crud\Psr11\Toggle\RemoveStrategyFactory;
use Pheature\Crud\Psr11\Toggle\SetStrategyFactory;
use Pheature\Crud\Toggle\Handler\CreateFeatureFactory;
use Pheature\Crud\Toggle\Handler\DisableFeatureFactory;
use Pheature\Crud\Toggle\Handler\EnableFeatureFactory;
use Pheature\Crud\Toggle\Handler\RemoveFeatureFactory;
use Pheature\Crud\Toggle\Handler\RemoveStrategyFactory;
use Pheature\Crud\Toggle\Handler\SetStrategyFactory;
use Pheature\Crud\Toggle\Handler\CreateFeature;
use Pheature\Crud\Toggle\Handler\DisableFeature;
use Pheature\Crud\Toggle\Handler\EnableFeature;
Expand Down
25 changes: 25 additions & 0 deletions src/Handler/CreateFeatureFactory.php
@@ -0,0 +1,25 @@
<?php

declare(strict_types=1);

namespace Pheature\Crud\Toggle\Handler;

use Pheature\Core\Toggle\Write\FeatureRepository;
use Pheature\Crud\Toggle\Handler\CreateFeature;
use Psr\Container\ContainerInterface;

final class CreateFeatureFactory
{
public function __invoke(ContainerInterface $container): CreateFeature
{
/** @var FeatureRepository $featureRepository */
$featureRepository = $container->get(FeatureRepository::class);

return self::create($featureRepository);
}

public static function create(FeatureRepository $featureRepository): CreateFeature
{
return new CreateFeature($featureRepository);
}
}
25 changes: 25 additions & 0 deletions src/Handler/DisableFeatureFactory.php
@@ -0,0 +1,25 @@
<?php

declare(strict_types=1);

namespace Pheature\Crud\Toggle\Handler;

use Pheature\Core\Toggle\Write\FeatureRepository;
use Pheature\Crud\Toggle\Handler\DisableFeature;
use Psr\Container\ContainerInterface;

final class DisableFeatureFactory
{
public function __invoke(ContainerInterface $container): DisableFeature
{
/** @var FeatureRepository $featureRepository */
$featureRepository = $container->get(FeatureRepository::class);

return self::create($featureRepository);
}

public static function create(FeatureRepository $featureRepository): DisableFeature
{
return new DisableFeature($featureRepository);
}
}
25 changes: 25 additions & 0 deletions src/Handler/EnableFeatureFactory.php
@@ -0,0 +1,25 @@
<?php

declare(strict_types=1);

namespace Pheature\Crud\Toggle\Handler;

use Pheature\Core\Toggle\Write\FeatureRepository;
use Pheature\Crud\Toggle\Handler\EnableFeature;
use Psr\Container\ContainerInterface;

final class EnableFeatureFactory
{
public function __invoke(ContainerInterface $container): EnableFeature
{
/** @var FeatureRepository $featureRepository */
$featureRepository = $container->get(FeatureRepository::class);

return self::create($featureRepository);
}

public static function create(FeatureRepository $featureRepository): EnableFeature
{
return new EnableFeature($featureRepository);
}
}
25 changes: 25 additions & 0 deletions src/Handler/RemoveFeatureFactory.php
@@ -0,0 +1,25 @@
<?php

declare(strict_types=1);

namespace Pheature\Crud\Toggle\Handler;

use Pheature\Core\Toggle\Write\FeatureRepository;
use Pheature\Crud\Toggle\Handler\RemoveFeature;
use Psr\Container\ContainerInterface;

final class RemoveFeatureFactory
{
public function __invoke(ContainerInterface $container): RemoveFeature
{
/** @var FeatureRepository $featureRepository */
$featureRepository = $container->get(FeatureRepository::class);

return self::create($featureRepository);
}

public static function create(FeatureRepository $featureRepository): RemoveFeature
{
return new RemoveFeature($featureRepository);
}
}
26 changes: 26 additions & 0 deletions src/Handler/RemoveStrategyFactory.php
@@ -0,0 +1,26 @@
<?php

declare(strict_types=1);

namespace Pheature\Crud\Toggle\Handler;

use Pheature\Core\Toggle\Write\FeatureRepository;
use Pheature\Crud\Toggle\Handler\RemoveStrategy;
use Psr\Container\ContainerInterface;

final class RemoveStrategyFactory
{
public function __invoke(ContainerInterface $container): RemoveStrategy
{
/** @var FeatureRepository $featureRepository */
$featureRepository = $container->get(FeatureRepository::class);
return self::create(
$featureRepository
);
}

public static function create(FeatureRepository $featureRepository): RemoveStrategy
{
return new RemoveStrategy($featureRepository);
}
}
25 changes: 25 additions & 0 deletions src/Handler/SetStrategyFactory.php
@@ -0,0 +1,25 @@
<?php

declare(strict_types=1);

namespace Pheature\Crud\Toggle\Handler;

use Pheature\Core\Toggle\Write\FeatureRepository;
use Pheature\Crud\Toggle\Handler\SetStrategy;
use Psr\Container\ContainerInterface;

final class SetStrategyFactory
{
public function __invoke(ContainerInterface $container): SetStrategy
{
/** @var FeatureRepository $featureRepository */
$featureRepository = $container->get(FeatureRepository::class);

return self::create($featureRepository);
}

public static function create(FeatureRepository $featureRepository): SetStrategy
{
return new SetStrategy($featureRepository);
}
}
12 changes: 6 additions & 6 deletions test/Container/ConfigProviderTest.php
Expand Up @@ -4,12 +4,12 @@

namespace Pheature\Test\Crud\Toggle\Container;

use Pheature\Crud\Psr11\Toggle\CreateFeatureFactory;
use Pheature\Crud\Psr11\Toggle\DisableFeatureFactory;
use Pheature\Crud\Psr11\Toggle\EnableFeatureFactory;
use Pheature\Crud\Psr11\Toggle\RemoveFeatureFactory;
use Pheature\Crud\Psr11\Toggle\RemoveStrategyFactory;
use Pheature\Crud\Psr11\Toggle\SetStrategyFactory;
use Pheature\Crud\Toggle\Handler\CreateFeatureFactory;
use Pheature\Crud\Toggle\Handler\DisableFeatureFactory;
use Pheature\Crud\Toggle\Handler\EnableFeatureFactory;
use Pheature\Crud\Toggle\Handler\RemoveFeatureFactory;
use Pheature\Crud\Toggle\Handler\RemoveStrategyFactory;
use Pheature\Crud\Toggle\Handler\SetStrategyFactory;
use Pheature\Crud\Toggle\Container\ConfigProvider;
use Pheature\Crud\Toggle\Handler\CreateFeature;
use Pheature\Crud\Toggle\Handler\DisableFeature;
Expand Down
35 changes: 35 additions & 0 deletions test/Handler/CreateFeatureFactoryTest.php
@@ -0,0 +1,35 @@
<?php

namespace Pheature\Test\Crud\Toggle\Handler;

use Pheature\Core\Toggle\Write\FeatureRepository;
use Pheature\Crud\Toggle\Handler\CreateFeatureFactory;
use Pheature\Crud\Toggle\Handler\CreateFeature;
use Psr\Container\ContainerInterface;
use PHPUnit\Framework\TestCase;

final class CreateFeatureFactoryTest extends TestCase
{
public function testItShouldCreateInstanceOfCreateFeature(): void
{
$featureRepository = $this->createMock(FeatureRepository::class);
$container = $this->createMock(ContainerInterface::class);
$container->expects(static::once())
->method('get')
->with(FeatureRepository::class)
->willReturn($featureRepository);

$addStrategyFactory = new CreateFeatureFactory();

$addStrategyFactory->__invoke($container);
}

public function testItShouldCreateInstanceOfCreateFeatureStatically(): void
{
$featureRepository = $this->createMock(FeatureRepository::class);

$addStrategy = CreateFeatureFactory::create($featureRepository);

$this->assertInstanceOf(CreateFeature::class, $addStrategy);
}
}
35 changes: 35 additions & 0 deletions test/Handler/DisableFeatureFactoryTest.php
@@ -0,0 +1,35 @@
<?php

namespace Pheature\Test\Crud\Toggle\Handler;

use Pheature\Core\Toggle\Write\FeatureRepository;
use Pheature\Crud\Toggle\Handler\DisableFeatureFactory;
use Pheature\Crud\Toggle\Handler\DisableFeature;
use Psr\Container\ContainerInterface;
use PHPUnit\Framework\TestCase;

class DisableFeatureFactoryTest extends TestCase
{
public function testItShouldCreateInstanceOfCreateFeature(): void
{
$featureRepository = $this->createMock(FeatureRepository::class);
$container = $this->createMock(ContainerInterface::class);
$container->expects(static::once())
->method('get')
->with(FeatureRepository::class)
->willReturn($featureRepository);

$disableFeatureFactory = new DisableFeatureFactory();

$disableFeatureFactory->__invoke($container);
}

public function testItShouldCreateInstanceOfCreateFeatureStatically(): void
{
$featureRepository = $this->createMock(FeatureRepository::class);

$addStrategy = DisableFeatureFactory::create($featureRepository);

$this->assertInstanceOf(DisableFeature::class, $addStrategy);
}
}
32 changes: 32 additions & 0 deletions test/Handler/RemoveFeatureFactoryTest.php
@@ -0,0 +1,32 @@
<?php
declare(strict_types=1);

namespace Pheature\Test\Crud\Toggle\Handler;

use Pheature\Core\Toggle\Write\FeatureRepository;
use Pheature\Crud\Toggle\Handler\RemoveFeatureFactory;
use Pheature\Crud\Toggle\Handler\RemoveFeature;
use PHPUnit\Framework\TestCase;
use Psr\Container\ContainerInterface;

final class RemoveFeatureFactoryTest extends TestCase
{
public function testItShouldCreateARemoveFeatureFromInvokable(): void
{
$mockedContainer = $this->createConfiguredMock(ContainerInterface::class, [
'get' => $this->createMock(FeatureRepository::class)
]);

$factory = new RemoveFeatureFactory();
$actual = $factory->__invoke($mockedContainer);

self::assertInstanceOf(RemoveFeature::class, $actual);
}

public function testItShouldCreateARemoveFeatureFromCreate(): void
{
$actual = RemoveFeatureFactory::create($this->createMock(FeatureRepository::class));

self::assertInstanceOf(RemoveFeature::class, $actual);
}
}
31 changes: 31 additions & 0 deletions test/Handler/RemoveStrategyFactoryTest.php
@@ -0,0 +1,31 @@
<?php

namespace Pheature\Test\Crud\Toggle\Handler;

use Pheature\Core\Toggle\Write\FeatureRepository;
use Pheature\Crud\Toggle\Handler\RemoveStrategyFactory;
use Pheature\Crud\Toggle\Handler\RemoveStrategy;
use PHPUnit\Framework\TestCase;
use Psr\Container\ContainerInterface;

class RemoveStrategyFactoryTest extends TestCase
{
public function testItShouldCreateARemoveStrategyFromInvokable(): void
{
$mockedContainer = $this->createConfiguredMock(ContainerInterface::class, [
'get' => $this->createMock(FeatureRepository::class)
]);

$factory = new RemoveStrategyFactory();
$actual = $factory->__invoke($mockedContainer);

self::assertInstanceOf(RemoveStrategy::class, $actual);
}

public function testItShouldCreateARemoveStrategyFromCreate(): void
{
$actual = RemoveStrategyFactory::create($this->createMock(FeatureRepository::class));

self::assertInstanceOf(RemoveStrategy::class, $actual);
}
}
37 changes: 37 additions & 0 deletions test/Handler/SetStrategyFactoryTest.php
@@ -0,0 +1,37 @@
<?php

declare(strict_types=1);

namespace Pheature\Test\Crud\Toggle\Handler;

use Pheature\Core\Toggle\Write\FeatureRepository;
use Pheature\Crud\Toggle\Handler\SetStrategyFactory;
use Pheature\Crud\Toggle\Handler\SetStrategy;
use PHPUnit\Framework\TestCase;
use Psr\Container\ContainerInterface;

final class SetStrategyFactoryTest extends TestCase
{
public function testItShouldCreateInstanceOfAddStrategy(): void
{
$featureRepository = $this->createMock(FeatureRepository::class);
$container = $this->createMock(ContainerInterface::class);
$container->expects(static::once())
->method('get')
->with(FeatureRepository::class)
->willReturn($featureRepository);

$addStrategyFactory = new SetStrategyFactory();

$addStrategyFactory->__invoke($container);
}

public function testItShouldCreateInstanceOfAddStrategyStatically(): void
{
$featureRepository = $this->createMock(FeatureRepository::class);

$addStrategy = SetStrategyFactory::create($featureRepository);

$this->assertInstanceOf(SetStrategy::class, $addStrategy);
}
}

0 comments on commit 0beed72

Please sign in to comment.