Skip to content

Commit b47a05d

Browse files
garygittonweierophinney
authored andcommitted
add integration test
Signed-off-by: Gary Gitton <[email protected]>
1 parent e967638 commit b47a05d

File tree

4 files changed

+98
-2
lines changed

4 files changed

+98
-2
lines changed

composer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,8 @@
8585
"BazConf\\": "test/Model/TestAsset/module/BazConf/",
8686
"InputFilter\\": "test/Model/TestAsset/module/InputFilter/",
8787
"Version\\": "test/Model/TestAsset/module/Version/src/Version/",
88-
"LaminasTest\\ApiTools\\Admin\\": "test/"
88+
"LaminasTest\\ApiTools\\Admin\\": "test/",
89+
"LaminasIntegrationTest\\ApiTools\\Admin\\": "test/Integration"
8990
}
9091
},
9192
"bin": [

phpunit.xml.dist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0"?>
22
<phpunit
33
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4-
bootstrap="./vendor/autoload.php"
4+
bootstrap="test/Bootstrap.php"
55
colors="true"
66
xsi:noNamespaceSchemaLocation="./vendor/phpunit/phpunit/phpunit.xsd">
77
<coverage processUncoveredFiles="true">

test/Bootstrap.php

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
<?php
2+
3+
namespace LaminasTest\ApiTools\Admin;
4+
5+
use Laminas\ServiceManager\ServiceManager;
6+
use Laminas\Mvc\Service\ServiceManagerConfig;
7+
8+
class Bootstrap
9+
{
10+
protected static $serviceManager;
11+
12+
public static function init(): void
13+
{
14+
ini_set('display_errors', '1');
15+
ini_set('display_startup_errors', '1');
16+
ini_set('log_errors_max_len', '0');
17+
error_reporting(E_ALL);
18+
date_default_timezone_set('UTC');
19+
20+
include 'vendor/autoload.php';
21+
22+
$config = [
23+
'modules' => [
24+
'Laminas\\Filter',
25+
'Laminas\\Validator',
26+
'Laminas\\InputFilter',
27+
'Laminas\\ApiTools\\Admin'
28+
],
29+
'module_listener_options' => [
30+
'config_glob_paths' => [
31+
'./config/autoload/*.php',
32+
],
33+
'module_paths' => [
34+
'./module',
35+
'./vendor',
36+
],
37+
'config_cache_enabled' => false,
38+
'module_map_cache_enabled' => false,
39+
'check_dependencies' => true,
40+
],
41+
];
42+
43+
$serviceManagerConfig = new ServiceManagerConfig();
44+
$serviceManager = new ServiceManager();
45+
$serviceManagerConfig->configureServiceManager($serviceManager);
46+
$serviceManager->setService('ApplicationConfig', $config);
47+
$moduleManager = $serviceManager->get('ModuleManager');
48+
$moduleManager->loadModules();
49+
50+
static::$serviceManager = $serviceManager;
51+
}
52+
53+
public static function getService(string $name)
54+
{
55+
$serviceManager = self::getServiceManager();
56+
57+
return $serviceManager->get($name);
58+
}
59+
60+
public static function getServiceManager(): ServiceManager
61+
{
62+
return static::$serviceManager;
63+
}
64+
}
65+
66+
Bootstrap::init();
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?php
2+
3+
namespace LaminasIntegrationTest\ApiTools\Admin\InputFilter;
4+
5+
use Laminas\InputFilter\InputFilter;
6+
use Laminas\InputFilter\InputFilterPluginManager;
7+
use LaminasTest\ApiTools\Admin\Bootstrap;
8+
use PHPUnit\Framework\TestCase;
9+
10+
class LaminasTest extends TestCase
11+
{
12+
/**
13+
* @test
14+
*/
15+
public function inputFilterServiceKeyWillReturnInputFilter()
16+
{
17+
$inputFilterManager = Bootstrap::getService(InputFilterPluginManager::class);
18+
$this->assertInstanceOf(InputFilterPluginManager::class, $inputFilterManager);
19+
20+
$config = Bootstrap::getService('config');
21+
$configInputFilterAliases = $config['input_filters']['aliases'];
22+
$configInputFilterKeys = array_keys($configInputFilterAliases);
23+
24+
foreach($configInputFilterKeys as $inputFilterKey) {
25+
$inputFilter = $inputFilterManager->get($inputFilterKey);
26+
$this->assertInstanceOf(InputFilter::class, $inputFilter);
27+
}
28+
}
29+
}

0 commit comments

Comments
 (0)