Passed
Push — master ( 2eaaad...ad5f8f )
by Aimeos
15:24 queued 12:30
created

TestHelperJapi   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 119
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 56
c 2
b 0
f 0
dl 0
loc 119
rs 10
wmc 8

6 Methods

Rating   Name   Duplication   Size   Complexity  
A bootstrap() 0 7 1
A getAimeos() 0 11 2
A getTemplatePaths() 0 3 1
A getContext() 0 8 2
A createContext() 0 41 1
A view() 0 28 1
1
<?php
2
3
4
class TestHelperJapi
5
{
6
	private static $aimeos;
7
	private static $context = array();
8
9
10
	public static function bootstrap()
11
	{
12
		$aimeos = self::getAimeos();
13
14
		$includepaths = $aimeos->getIncludePaths();
15
		$includepaths[] = get_include_path();
16
		set_include_path( implode( PATH_SEPARATOR, $includepaths ) );
17
	}
18
19
20
	private static function getAimeos()
21
	{
22
		if( !isset( self::$aimeos ) )
23
		{
24
			require_once 'Bootstrap.php';
25
			spl_autoload_register( 'Aimeos\\Bootstrap::autoload' );
26
27
			self::$aimeos = new \Aimeos\Bootstrap();
28
		}
29
30
		return self::$aimeos;
31
	}
32
33
34
	public static function getContext( $site = 'unittest' )
35
	{
36
		if( !isset( self::$context[$site] ) ) {
37
			self::$context[$site] = self::createContext( $site );
38
			self::$context[$site]->setView( self::view( self::$context[$site]->getConfig() ) );
39
		}
40
41
		return clone self::$context[$site];
42
	}
43
44
45
	public static function view( \Aimeos\MW\Config\Iface $config )
46
	{
47
		$view = new \Aimeos\MW\View\Standard( self::getTemplatePaths() );
48
49
		$trans = new \Aimeos\MW\Translation\None( 'en' );
50
		$helper = new \Aimeos\MW\View\Helper\Translate\Standard( $view, $trans );
51
		$view->addHelper( 'translate', $helper );
52
53
		$helper = new \Aimeos\MW\View\Helper\Url\Standard( $view, 'baseurl' );
54
		$view->addHelper( 'url', $helper );
55
56
		$helper = new \Aimeos\MW\View\Helper\Number\Standard( $view, '.', '' );
57
		$view->addHelper( 'number', $helper );
58
59
		$helper = new \Aimeos\MW\View\Helper\Date\Standard( $view, 'Y-m-d' );
60
		$view->addHelper( 'date', $helper );
61
62
		$helper = new \Aimeos\MW\View\Helper\Config\Standard( $view, $config );
63
		$view->addHelper( 'config', $helper );
64
65
		$psr17Factory = new \Nyholm\Psr7\Factory\Psr17Factory();
66
		$helper = new \Aimeos\MW\View\Helper\Request\Standard( $view, $psr17Factory->createServerRequest( 'GET', 'https://aimeos.org' ) );
67
		$view->addHelper( 'request', $helper );
68
69
		$helper = new \Aimeos\MW\View\Helper\Response\Standard( $view, $psr17Factory->createResponse() );
70
		$view->addHelper( 'response', $helper );
71
72
		return $view;
73
	}
74
75
76
	public static function getTemplatePaths()
77
	{
78
		return self::getAimeos()->getTemplatePaths( 'client/jsonapi/templates' );
79
	}
80
81
82
	private static function createContext( $site )
83
	{
84
		$ctx = new \Aimeos\MShop\Context\Item\Standard();
85
		$aimeos = self::getAimeos();
86
87
88
		$paths = $aimeos->getConfigPaths();
89
		$paths[] = __DIR__ . DIRECTORY_SEPARATOR . 'config';
90
91
		$conf = new \Aimeos\MW\Config\PHPArray( array(), $paths );
92
		$ctx->setConfig( $conf );
93
94
95
		$dbm = new \Aimeos\MW\DB\Manager\DBAL( $conf );
96
		$ctx->setDatabaseManager( $dbm );
97
98
99
		$logger = new \Aimeos\MW\Logger\File( $site . '.log', \Aimeos\MW\Logger\Base::DEBUG );
100
		$ctx->setLogger( $logger );
101
102
103
		$cache = new \Aimeos\MW\Cache\None();
104
		$ctx->setCache( $cache );
105
106
107
		$i18n = new \Aimeos\MW\Translation\None( 'en' );
108
		$ctx->setI18n( array( 'en' => $i18n ) );
109
110
111
		$session = new \Aimeos\MW\Session\None();
112
		$ctx->setSession( $session );
113
114
115
		$localeManager = \Aimeos\MShop\Locale\Manager\Factory::create( $ctx );
116
		$locale = $localeManager->bootstrap( $site, '', '', false );
0 ignored issues
show
Bug introduced by
The method bootstrap() does not exist on Aimeos\MShop\Common\Manager\Iface. It seems like you code against a sub-type of said class. However, the method does not exist in Aimeos\MShop\Common\Manager\Decorator\Iface or Aimeos\MShop\Service\Manager\Lists\Type\Iface or Aimeos\MShop\Price\Manager\Iface or Aimeos\MShop\Attribute\Manager\Type\Iface or Aimeos\MShop\Review\Manager\Iface or Aimeos\MShop\Price\Manager\Lists\Type\Iface or Aimeos\MShop\Media\Manager\Type\Iface or Aimeos\MShop\Coupon\Manager\Code\Iface or Aimeos\MShop\Order\Manager\Base\Coupon\Iface or Aimeos\MShop\Product\Manager\Iface or Aimeos\MShop\Supplier\Manager\Iface or Aimeos\MShop\Price\Manager\Property\Type\Iface or Aimeos\MShop\Common\Manager\Property\Iface or Aimeos\MShop\Customer\Manager\Property\Iface or Aimeos\MShop\Order\Manager\Base\Service\Iface or Aimeos\MShop\Order\Manager\Base\Iface or Aimeos\MShop\Price\Manager\Lists\Iface or Aimeos\MShop\Cms\Manager\Lists\Type\Iface or Aimeos\MShop\Supplier\Manager\Lists\Type\Iface or Aimeos\MShop\Order\Manag...Service\Attribute\Iface or Aimeos\MShop\Service\Manager\Lists\Iface or Aimeos\MShop\Tag\Manager\Type\Iface or Aimeos\MShop\Text\Manager\Lists\Iface or Aimeos\MShop\Price\Manager\Type\Iface or Aimeos\MShop\Locale\Manager\Currency\Iface or Aimeos\MShop\Order\Manag...Product\Attribute\Iface or Aimeos\MShop\Media\Manager\Lists\Type\Iface or Aimeos\MShop\Catalog\Manager\Lists\Iface or Aimeos\MShop\Tag\Manager\Iface or Aimeos\MShop\Coupon\Manager\Iface or Aimeos\MShop\Attribute\Manager\Iface or Aimeos\MShop\Common\Manager\Lists\Iface or Aimeos\MShop\Attribute\Manager\Property\Type\Iface or Aimeos\MShop\Service\Manager\Type\Iface or Aimeos\MShop\Product\Manager\Lists\Iface or Aimeos\MShop\Customer\Manager\Property\Type\Iface or Aimeos\MShop\Order\Manager\Iface or Aimeos\MShop\Customer\Manager\Iface or Aimeos\MShop\Media\Manager\Iface or Aimeos\MShop\Rule\Manager\Type\Iface or Aimeos\MShop\Customer\Manager\Lists\Type\Iface or Aimeos\MShop\Attribute\Manager\Lists\Iface or Aimeos\MShop\Product\Manager\Property\Type\Iface or Aimeos\MShop\Media\Manager\Lists\Iface or Aimeos\MShop\Plugin\Manager\Iface or Aimeos\MShop\Order\Manager\Base\Address\Iface or Aimeos\MShop\Catalog\Manager\Iface or Aimeos\MShop\Locale\Manager\Site\Iface or Aimeos\MShop\Product\Manager\Type\Iface or Aimeos\MShop\Supplier\Manager\Lists\Iface or Aimeos\MShop\Stock\Manager\Type\Iface or Aimeos\MShop\Text\Manager\Iface or Aimeos\MShop\Common\Manager\Type\Iface or Aimeos\MAdmin\Job\Manager\Iface or Aimeos\MShop\Customer\Manager\Group\Iface or Aimeos\MShop\Product\Manager\Lists\Type\Iface or Aimeos\MShop\Text\Manager\Lists\Type\Iface or Aimeos\MShop\Text\Manager\Type\Iface or Aimeos\MShop\Cms\Manager\Iface or Aimeos\MShop\Order\Manager\Status\Iface or Aimeos\MShop\Rule\Manager\Iface or Aimeos\MShop\Common\Manager\Address\Iface or Aimeos\MShop\Plugin\Manager\Type\Iface or Aimeos\MShop\Stock\Manager\Iface or Aimeos\MShop\Attribute\Manager\Property\Iface or Aimeos\MShop\Subscription\Manager\Iface or Aimeos\MShop\Media\Manager\Property\Type\Iface or Aimeos\MShop\Product\Manager\Property\Iface or Aimeos\MShop\Locale\Manager\Language\Iface or Aimeos\MShop\Media\Manager\Property\Iface or Aimeos\MShop\Service\Manager\Iface or Aimeos\MShop\Attribute\Manager\Lists\Type\Iface or Aimeos\MAdmin\Log\Manager\Iface or Aimeos\MShop\Cms\Manager\Lists\Iface or Aimeos\MAdmin\Cache\Manager\Iface or Aimeos\MShop\Order\Manager\Base\Product\Iface or Aimeos\MShop\Price\Manager\Property\Iface or Aimeos\MShop\Customer\Manager\Lists\Iface or Aimeos\MShop\Catalog\Manager\Lists\Type\Iface or Aimeos\MShop\Index\Manager\Iface or Aimeos\MShop\Index\Manager\Attribute\Iface or Aimeos\MShop\Index\Manager\Text\Iface or Aimeos\MShop\Index\Manager\Supplier\Iface or Aimeos\MShop\Index\Manager\Catalog\Iface or Aimeos\MShop\Index\Manager\Price\Iface or Aimeos\MShop\Supplier\Manager\Address\Iface or Aimeos\MShop\Customer\Manager\Address\Iface. Are you sure you never get one of those? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

116
		/** @scrutinizer ignore-call */ 
117
  $locale = $localeManager->bootstrap( $site, '', '', false );
Loading history...
117
		$ctx->setLocale( $locale );
118
119
120
		$ctx->setEditor( 'ai-cms-grapesjs:client/jsonapi' );
121
122
		return $ctx;
123
	}
124
}