Passed
Push — master ( f40c64...9a1840 )
by Aimeos
01:59
created

StandardTest::testProcessDelete()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 22
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 9
nc 1
nop 0
dl 0
loc 22
rs 9.9666
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * @license LGPLv3, http://opensource.org/licenses/LGPL-3.0
5
 * @copyright Aimeos (aimeos.org), 2019
6
 */
7
8
9
namespace Aimeos\Controller\Common\Product\Import\Xml\Processor\Catalog;
10
11
12
class StandardTest extends \PHPUnit\Framework\TestCase
13
{
14
	private $context;
15
	private $object;
16
17
18
	protected function setUp()
19
	{
20
		$this->context = \TestHelperCntl::getContext();
21
		$this->object = new \Aimeos\Controller\Common\Product\Import\Xml\Processor\Catalog\Standard( $this->context );
22
	}
23
24
25
	protected function tearDown()
26
	{
27
		unset( $this->object, $this->context );
28
	}
29
30
31
	public function testProcess()
32
	{
33
		$dom = new \DOMDocument();
34
		$product = \Aimeos\MShop::create( $this->context, 'product' )->findItem( 'CNC' );
35
36
		$dom->loadXML( '<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
37
<catalog>
38
	<catalogitem ref="root" />
39
</catalog>' );
40
41
		$this->object->process( $product, $dom->firstChild );
42
43
		$catItem = \Aimeos\MShop::create( $this->context, 'catalog' )->findItem( 'root', ['product'] );
44
		$listItem = $catItem->getListItem( 'product', 'default', $product->getId() );
45
46
		$this->assertNotNull( $listItem );
47
48
		\Aimeos\MShop::create( $this->context, 'catalog/lists' )->deleteItem( $listItem->getId() );
49
	}
50
51
52
	public function testProcessUpdate()
53
	{
54
		$dom = new \DOMDocument();
55
		$product = \Aimeos\MShop::create( $this->context, 'product' )->findItem( 'CNC' );
56
57
		$dom->loadXML( '<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
58
<catalog>
59
	<catalogitem ref="root" />
60
</catalog>' );
61
62
		$this->object->process( $product, $dom->firstChild );
63
64
		$dom->loadXML( '<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
65
<catalog>
66
	<catalogitem ref="categories" />
67
</catalog>' );
68
69
		$this->object->process( $product, $dom->firstChild );
70
71
		$manager = \Aimeos\MShop::create( $this->context, 'catalog' );
72
73
		$catItem = $manager->findItem( 'root', ['product'] );
74
		$this->assertNull( $catItem->getListItem( 'product', 'default', $product->getId() ) );
75
76
		$catItem = $manager->findItem( 'categories', ['product'] );
77
		$listItem = $catItem->getListItem( 'product', 'default', $product->getId() );
78
79
		$this->assertNotNull( $listItem );
80
81
		\Aimeos\MShop::create( $this->context, 'catalog/lists' )->deleteItem( $listItem->getId() );
82
	}
83
84
85
	public function testProcessDelete()
86
	{
87
		$dom = new \DOMDocument();
88
		$product = \Aimeos\MShop::create( $this->context, 'product' )->findItem( 'CNC' );
89
90
		$dom->loadXML( '<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
91
<catalog>
92
	<catalogitem ref="root" />
93
</catalog>' );
94
95
		$this->object->process( $product, $dom->firstChild );
96
97
		$dom->loadXML( '<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
98
<catalog>
99
</catalog>' );
100
101
		$this->object->process( $product, $dom->firstChild );
102
103
		$catItem = \Aimeos\MShop::create( $this->context, 'catalog' )->findItem( 'root', ['product'] );
104
		$listItem = $catItem->getListItem( 'product', 'default', $product->getId() );
105
106
		$this->assertNull( $listItem );
107
	}
108
}
109