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

TestHelperJapi::view()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 28
Code Lines 18

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 18
nc 1
nop 1
dl 0
loc 28
rs 9.6666
c 0
b 0
f 0
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
}