Completed
Push — master ( b4d1c4...5b98ac )
by Aimeos
05:50
created

StandardTest   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 85
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 5

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 8
c 2
b 0
f 0
lcom 1
cbo 5
dl 0
loc 85
rs 10

7 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 6 1
A tearDown() 0 4 1
A testGetHeader() 0 8 1
A testGetBody() 0 12 1
A testModifyBody() 0 7 1
A testGetSubClient() 0 5 1
A getProductItem() 0 13 2
1
<?php
2
3
namespace Aimeos\Client\Html\Catalog\Detail\Actions;
4
5
6
/**
7
 * @copyright Metaways Infosystems GmbH, 2014
8
 * @license LGPLv3, http://opensource.org/licenses/LGPL-3.0
9
 * @copyright Aimeos (aimeos.org), 2015
10
 */
11
class StandardTest extends \PHPUnit_Framework_TestCase
12
{
13
	private $object;
14
15
16
	/**
17
	 * Sets up the fixture, for example, opens a network connection.
18
	 * This method is called before a test is executed.
19
	 *
20
	 * @access protected
21
	 */
22
	protected function setUp()
23
	{
24
		$paths = \TestHelperHtml::getHtmlTemplatePaths();
25
		$this->object = new \Aimeos\Client\Html\Catalog\Detail\Actions\Standard( \TestHelperHtml::getContext(), $paths );
26
		$this->object->setView( \TestHelperHtml::getView() );
27
	}
28
29
30
	/**
31
	 * Tears down the fixture, for example, closes a network connection.
32
	 * This method is called after a test is executed.
33
	 *
34
	 * @access protected
35
	 */
36
	protected function tearDown()
37
	{
38
		unset( $this->object );
39
	}
40
41
42
	public function testGetHeader()
43
	{
44
		$view = $this->object->getView();
45
		$view->detailProductItem = $this->getProductItem();
46
47
		$output = $this->object->getHeader();
48
		$this->assertNotNull( $output );
49
	}
50
51
52
	public function testGetBody()
53
	{
54
		$view = $this->object->getView();
55
		$view->detailProductItem = $this->getProductItem();
56
57
		$output = $this->object->getBody();
58
59
		$this->assertStringStartsWith( '<!-- catalog.detail.actions -->', $output );
60
		$this->assertContains( 'actions-button-pin', $output );
61
		$this->assertContains( 'actions-button-watch', $output );
62
		$this->assertContains( 'actions-button-favorite', $output );
63
	}
64
65
66
	public function testModifyBody()
67
	{
68
		$content = '<!-- catalog.detail.actions -->test<!-- catalog.detail.actions -->';
69
		$output = $this->object->modifyBody( $content, -1 );
70
71
		$this->assertStringStartsWith( '<!-- catalog.detail.actions -->', $output );
72
	}
73
74
75
	public function testGetSubClient()
76
	{
77
		$this->setExpectedException( '\\Aimeos\\Client\\Html\\Exception' );
78
		$this->object->getSubClient( 'invalid', 'invalid' );
79
	}
80
81
82
	protected function getProductItem()
83
	{
84
		$manager = \Aimeos\MShop\Product\Manager\Factory::createManager( \TestHelperHtml::getContext() );
85
		$search = $manager->createSearch();
86
		$search->setConditions( $search->compare( '==', 'product.code', 'CNC' ) );
87
		$items = $manager->searchItems( $search );
88
89
		if( ( $item = reset( $items ) ) === false ) {
90
			throw new \Exception( 'No product item with code "CNC" found' );
91
		}
92
93
		return $item;
94
	}
95
}
96