Skip to content

Commit

Permalink
add untitests
Browse files Browse the repository at this point in the history
  • Loading branch information
marcofaul committed May 16, 2020
1 parent b6c66f3 commit 6828157
Show file tree
Hide file tree
Showing 14 changed files with 290 additions and 100 deletions.
20 changes: 20 additions & 0 deletions .codecov.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
codecov:
require_ci_to_pass: true

coverage:
precision: 2
round: down
range: "70...100"

parsers:
gcov:
branch_detection:
conditional: yes
loop: yes
method: no
macro: no

comment:
layout: "reach,diff,flags,tree"
behavior: default
require_changes: false
37 changes: 0 additions & 37 deletions src/DependencyInjection/CachedEntitySearcher.php

This file was deleted.

This file was deleted.

28 changes: 28 additions & 0 deletions src/DependencyInjection/Compiler/OverrideConfigurationPass.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<?php declare(strict_types=1);

namespace MarcoFaul\SwDevToolSixBundle\DependencyInjection\Compiler;

use Shopware\Core\Framework\DataAbstractionLayer\Dbal\EntitySearcher;
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;

class OverrideConfigurationPass implements CompilerPassInterface
{
public function process(ContainerBuilder $container)
{
$container->setParameter('shopware.store.frw', $container->getParameter('sw_dev_tool_six.shopware.skip_first_run_wizard_client'));
$container->setParameter('shopware.auto_update.disableAutoUpdate', !$container->getParameter('sw_dev_tool_six.shopware.enable_auto_update'));
$container->setParameter('shopware.api_browser.auth_required', $container->getParameter('sw_dev_tool_six.shopware.enable_api_auth_require'));
$container->setParameter('storefront.csrf.enabled', $container->getParameter('sw_dev_tool_six.shopware.enable_storefront_csrf'));

if ($container->getParameter('sw_dev_tool_six.enable_dal_caching') === false) {
$container->getDefinition('Shopware\Core\Framework\DataAbstractionLayer\Cache\CachedEntitySearcher')
->setClass(EntitySearcher::class)
->setArgument(0, $container->getDefinition('Doctrine\DBAL\Connection'))
->setArgument(1, $container->getDefinition('Shopware\Core\Framework\DataAbstractionLayer\Search\Parser\SqlQueryParser'))
->setArgument(2, $container->getDefinition('Shopware\Core\Framework\DataAbstractionLayer\Dbal\EntityDefinitionQueryHelper'))
->setArgument(3, $container->getDefinition('Shopware\Core\Framework\DataAbstractionLayer\Search\Term\SearchTermInterpreter'))
->setArgument(4, $container->getDefinition('Shopware\Core\Framework\DataAbstractionLayer\Search\Term\EntityScoreQueryBuilder'));
}
}
}
12 changes: 5 additions & 7 deletions src/DependencyInjection/Configuration.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,14 @@ public function getConfigTreeBuilder(): TreeBuilder
->children()
->scalarNode('access_token_ttl')->defaultValue('PT10M')->info('Default is PT10M')->end()
->booleanNode('enable_dal_caching')->defaultFalse()->info('Disable the DAL entity searcher cache')->end()
->arrayNode('shopware')
->arrayPrototype()
->arrayNode('shopware')
->children()
->scalarNode('skipFirstRunWizardClient')->defaultTrue()->info('@TODO')->end()
->scalarNode('disableAutoUpdate')->defaultTrue()->info('@TODO')->end()
->scalarNode('disableApiAuthRequire')->defaultTrue()->info('@TODO')->end()
->scalarNode('disableCSRF')->defaultTrue()->info('@TODO')->end()
->scalarNode('skip_first_run_wizard_client')->defaultTrue()->info('@TODO')->end()
->scalarNode('enable_auto_update')->defaultFalse()->info('@TODO')->end()
->scalarNode('enable_api_auth_require')->defaultFalse()->info('@TODO')->end()
->scalarNode('enable_storefront_csrf')->defaultFalse()->info('@TODO')->end()
->end()
->end()
->end()

->end();
return $treeBuilder;
Expand Down
8 changes: 4 additions & 4 deletions src/DependencyInjection/SwDevToolSixExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ public function load(array $configs, ContainerBuilder $container)

$container->setParameter('sw_dev_tool_six.access_token_ttl', $config['access_token_ttl']);
$container->setParameter('sw_dev_tool_six.enable_dal_caching', $config['enable_dal_caching']);
$container->setParameter('sw_dev_tool_six.shopware.skipFirstRunWizardClient', $config['shopware']['skipFirstRunWizardClient']['skipFirstRunWizardClient']);
$container->setParameter('sw_dev_tool_six.shopware.disableAutoUpdate', !$config['shopware']['disableAutoUpdate']['disableAutoUpdate']);
$container->setParameter('sw_dev_tool_six.shopware.disableApiAuthRequire', !$config['shopware']['disableApiAuthRequire']['disableApiAuthRequire']);
$container->setParameter('sw_dev_tool_six.shopware.disableCSRF', !$config['shopware']['disableCSRF']['disableCSRF']);
$container->setParameter('sw_dev_tool_six.shopware.skip_first_run_wizard_client', $config['shopware']['skip_first_run_wizard_client']);
$container->setParameter('sw_dev_tool_six.shopware.enable_auto_update', $config['shopware']['enable_auto_update']);
$container->setParameter('sw_dev_tool_six.shopware.enable_api_auth_require', $config['shopware']['enable_api_auth_require']);
$container->setParameter('sw_dev_tool_six.shopware.enable_storefront_csrf', $config['shopware']['enable_storefront_csrf']);
}
}
8 changes: 0 additions & 8 deletions src/Resources/config/services.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,5 @@
<argument type="service" id="Symfony\Bridge\PsrHttpMessage\Factory\PsrHttpFactory"/>
<argument type="service" id="Shopware\Core\Framework\Routing\RouteScopeRegistry"/>
</service>

<service id="MarcoFaul\SwDevToolSixBundle\DependencyInjection\CachedEntitySearcher"
decorates="Shopware\Core\Framework\DataAbstractionLayer\Cache\CachedEntitySearcher"
decoration-priority="-1000">

<argument type="service" id="MarcoFaul\SwDevToolSixBundle\DependencyInjection\CachedEntitySearcher.inner"/>
<argument>%sw_dev_tool_six.enable_dal_caching%</argument>
</service>
</services>
</container>
4 changes: 2 additions & 2 deletions src/SwDevToolSixBundle.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
namespace MarcoFaul\SwDevToolSixBundle;


use MarcoFaul\SwDevToolSixBundle\DependencyInjection\Compiler\OverrideConfigurationCompilerPass;
use MarcoFaul\SwDevToolSixBundle\DependencyInjection\Compiler\OverrideConfigurationPass;
use MarcoFaul\SwDevToolSixBundle\DependencyInjection\ConfigurationExtension;
use MarcoFaul\SwDevToolSixBundle\DependencyInjection\SwDevToolSixExtension;
use Symfony\Component\DependencyInjection\ContainerBuilder;
Expand All @@ -28,6 +28,6 @@ public function build(ContainerBuilder $container)
{
parent::build($container);

$container->addCompilerPass(new OverrideConfigurationCompilerPass());
$container->addCompilerPass(new OverrideConfigurationPass());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<?php declare(strict_types=1);


namespace MarcoFaul\SwDevToolSixBundle\Tests\PHPUnit\Api\EventListener\Authentication;


use League\OAuth2\Server\AuthorizationServer;
use League\OAuth2\Server\Grant\ClientCredentialsGrant;
use League\OAuth2\Server\Grant\PasswordGrant;
use League\OAuth2\Server\Grant\RefreshTokenGrant;
use League\OAuth2\Server\Repositories\RefreshTokenRepositoryInterface;
use League\OAuth2\Server\Repositories\UserRepositoryInterface;
use League\OAuth2\Server\ResourceServer;
use PHPUnit\Framework\TestCase;
use Shopware\Core\Framework\Routing\ApiContextRouteScopeDependant;
use Shopware\Core\Framework\Routing\KernelListenerPriorities;
use Shopware\Core\Framework\Routing\RouteScopeCheckTrait;
use Shopware\Core\Framework\Routing\RouteScopeRegistry;
use Symfony\Bridge\PsrHttpMessage\Factory\PsrHttpFactory;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\Event\ControllerEvent;
use Symfony\Component\HttpKernel\Event\RequestEvent;
use Symfony\Component\HttpKernel\KernelEvents;

class ApiAuthenticationListenerExtensionTest extends TestCase
{
/**
* @test
*/
public function blub()
{
$this->assertEquals(42, 42);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
<?php declare(strict_types=1);


namespace MarcoFaul\SwDevToolSixBundle\Tests\PHPUnit\DependencyInjection\Compiler;


use Doctrine\DBAL\Connection;
use MarcoFaul\SwDevToolSixBundle\DependencyInjection\Compiler\OverrideConfigurationPass;
use PHPUnit\Framework\TestCase;
use Shopware\Core\Framework\DataAbstractionLayer\Dbal\EntityDefinitionQueryHelper;
use Shopware\Core\Framework\DataAbstractionLayer\Dbal\EntitySearcher;
use Shopware\Core\Framework\DataAbstractionLayer\Search\Parser\SqlQueryParser;
use Shopware\Core\Framework\DataAbstractionLayer\Search\Term\EntityScoreQueryBuilder;
use Shopware\Core\Framework\DataAbstractionLayer\Search\Term\SearchTermInterpreter;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Definition;

class OverrideConfigurationPassTest extends TestCase
{
/** @var ContainerBuilder */
private $containerBuilder;

/** @var OverrideConfigurationPass */
private $pass;

/**
* initialize all services once
*/
public function setUp(): void
{
$this->pass = new OverrideConfigurationPass();
$this->containerBuilder = new ContainerBuilder();
$this->containerBuilder->setParameter('sw_dev_tool_six.shopware.skip_first_run_wizard_client', true);
$this->containerBuilder->setParameter('sw_dev_tool_six.shopware.enable_auto_update', true);
$this->containerBuilder->setParameter('sw_dev_tool_six.shopware.enable_api_auth_require', true);
$this->containerBuilder->setParameter('sw_dev_tool_six.shopware.enable_storefront_csrf', true);
$this->containerBuilder->setParameter('sw_dev_tool_six.enable_dal_caching', true);
}

/**
* @test
* @group configuration
*/
public function process()
{
$this->pass->process($this->containerBuilder);

$this->assertTrue($this->containerBuilder->getParameter('sw_dev_tool_six.shopware.skip_first_run_wizard_client'));
$this->assertTrue($this->containerBuilder->getParameter('sw_dev_tool_six.shopware.enable_auto_update'));
$this->assertTrue($this->containerBuilder->getParameter('sw_dev_tool_six.shopware.enable_api_auth_require'));
$this->assertTrue($this->containerBuilder->getParameter('sw_dev_tool_six.shopware.enable_storefront_csrf'));
}

/**
* @test
* @group configuration
*/
public function overrideCachedEntity()
{
$this->containerBuilder->setParameter('sw_dev_tool_six.enable_dal_caching', false);
$this->containerBuilder->setDefinition('Shopware\Core\Framework\DataAbstractionLayer\Cache\CachedEntitySearcher', new Definition(CachedEntitySearcher::class, []));
$this->containerBuilder->setDefinition('Doctrine\DBAL\Connection', new Definition(Connection::class, []));
$this->containerBuilder->setDefinition('Shopware\Core\Framework\DataAbstractionLayer\Search\Parser\SqlQueryParser', new Definition(SqlQueryParser::class, []));
$this->containerBuilder->setDefinition('Shopware\Core\Framework\DataAbstractionLayer\Dbal\EntityDefinitionQueryHelper', new Definition(EntityDefinitionQueryHelper::class, []));
$this->containerBuilder->setDefinition('Shopware\Core\Framework\DataAbstractionLayer\Search\Term\SearchTermInterpreter', new Definition(SearchTermInterpreter::class, []));
$this->containerBuilder->setDefinition('Shopware\Core\Framework\DataAbstractionLayer\Search\Term\EntityScoreQueryBuilder', new Definition(EntityScoreQueryBuilder::class, []));

$this->pass->process($this->containerBuilder);

$this->assertEquals(EntitySearcher::class, $this->containerBuilder->getDefinition('Shopware\Core\Framework\DataAbstractionLayer\Cache\CachedEntitySearcher')->getClass());
}
}
26 changes: 26 additions & 0 deletions tests/PHPUnit/DependencyInjection/ConfigurationTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<?php declare(strict_types=1);


namespace MarcoFaul\SwDevToolSixBundle\Tests\PHPUnit\DependencyInjection;


use MarcoFaul\SwDevToolSixBundle\DependencyInjection\Configuration;
use PHPUnit\Framework\TestCase;

class ConfigurationTest extends TestCase
{
/**
* @test
*/
public function getConfigTreeBuilder()
{
$configuration = new Configuration();
$configTreeBuilder = $configuration->getConfigTreeBuilder();

$this->assertEquals('sw_dev_tool_six', $configTreeBuilder->buildTree()->getName());

$this->assertEquals(3, \count($configTreeBuilder->buildTree()->getChildren()));
$this->assertEquals(4, \count($configTreeBuilder->buildTree()->getChildren()['shopware']->getChildren()));

}
}
44 changes: 44 additions & 0 deletions tests/PHPUnit/DependencyInjection/SwDevToolSixExtensionTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<?php declare(strict_types=1);


namespace MarcoFaul\SwDevToolSixBundle\Tests\PHPUnit\DependencyInjection;


use MarcoFaul\SwDevToolSixBundle\DependencyInjection\SwDevToolSixExtension;
use PHPUnit\Framework\TestCase;
use Symfony\Component\DependencyInjection\ContainerBuilder;

class SwDevToolSixExtensionTest extends TestCase
{
/**
* @test
*/
public function load()
{
$containerBuilder = new ContainerBuilder();
$configs = [
'access_token_ttl' => 'P1W',
'enable_dal_caching' => false,
'shopware' => [
'skip_first_run_wizard_client' => true,
'enable_auto_update' => false,
'enable_api_auth_require' => false,
'enable_storefront_csrf' => false
]
];
$swDevToolSixExtension = new SwDevToolSixExtension();
$swDevToolSixExtension->load([$configs], $containerBuilder);


$expected = [
'sw_dev_tool_six.access_token_ttl' => 'P1W',
'sw_dev_tool_six.enable_dal_caching' => false,
'sw_dev_tool_six.shopware.skip_first_run_wizard_client' => true,
'sw_dev_tool_six.shopware.enable_auto_update' => false,
'sw_dev_tool_six.shopware.enable_api_auth_require' => false,
'sw_dev_tool_six.shopware.enable_storefront_csrf' => false,
];

$this->assertEquals($expected, $containerBuilder->getParameterBag()->all());
}
}
Loading

0 comments on commit 6828157

Please sign in to comment.