Completed
Push — master ( 6b3f15...fe5cb0 )
by Aimeos
09:22
created

StandardTest::testFindItem()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 3
nc 1
nop 0
dl 0
loc 6
rs 9.4285
c 1
b 0
f 0
1
<?php
2
3
/**
4
 * @license LGPLv3, http://opensource.org/licenses/LGPL-3.0
5
 * @copyright Metaways Infosystems GmbH, 2011
6
 * @copyright Aimeos (aimeos.org), 2015-2017
7
 */
8
9
10
namespace Aimeos\MShop\Locale\Manager\Language;
11
12
13
class StandardTest extends \PHPUnit\Framework\TestCase
14
{
15
	private $object;
16
17
18
	protected function setUp()
19
	{
20
		$this->object = new \Aimeos\MShop\Locale\Manager\Language\Standard( \TestHelperMShop::getContext() );
21
	}
22
23
24
	protected function tearDown()
25
	{
26
		$this->object = null;
27
	}
28
29
30
	public function testCreateItem()
31
	{
32
		$this->assertInstanceOf( '\\Aimeos\\MShop\\Locale\\Item\\Language\\Iface', $this->object->createItem() );
33
	}
34
35
36
	public function testSaveUpdateDeleteItem()
37
	{
38
		// insert case
39
		$item = $this->object->createItem();
40
		$item->setLabel( 'new name' );
41
		$item->setStatus( 1 );
42
		$item->setCode( 'xx' );
43
		$resultSaved = $this->object->saveItem( $item );
44
		$itemSaved = $this->object->getItem( $item->getId() );
45
46
		// update case
47
		$itemExp = clone $itemSaved;
48
		$itemExp->setLabel( 'new new name' );
49
		$resultUpd = $this->object->saveItem( $itemExp );
50
		$itemUpd = $this->object->getItem( $itemExp->getId() );
51
52
		$this->object->deleteItem( $item->getId() );
53
54
		$context = \TestHelperMShop::getContext();
55
56
		$this->assertTrue( $item->getId() !== null );
57
		$this->assertEquals( $item->getId(), $itemSaved->getId() );
58
		$this->assertEquals( $item->getLabel(), $itemSaved->getLabel() );
59
		$this->assertEquals( $item->getStatus(), $itemSaved->getStatus() );
60
		$this->assertEquals( $item->getCode(), $itemSaved->getCode() );
61
62
		$this->assertEquals( $context->getEditor(), $itemSaved->getEditor() );
63
		$this->assertRegExp( '/\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/', $itemSaved->getTimeCreated() );
64
		$this->assertRegExp( '/\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/', $itemSaved->getTimeModified() );
65
66
		$this->assertEquals( $itemExp->getId(), $itemUpd->getId() );
67
		$this->assertEquals( $itemExp->getStatus(), $itemUpd->getStatus() );
68
		$this->assertEquals( $itemExp->getCode(), $itemUpd->getCode() );
69
		$this->assertEquals( $itemExp->getLabel(), $itemUpd->getLabel() );
70
71
		$this->assertEquals( $context->getEditor(), $itemUpd->getEditor() );
72
		$this->assertEquals( $itemExp->getTimeCreated(), $itemUpd->getTimeCreated() );
73
		$this->assertRegExp( '/\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/', $itemUpd->getTimeModified() );
74
75
		$this->assertInstanceOf( '\Aimeos\MShop\Common\Item\Iface', $resultSaved );
76
		$this->assertInstanceOf( '\Aimeos\MShop\Common\Item\Iface', $resultUpd );
77
78
		$this->setExpectedException( '\\Aimeos\\MShop\\Exception' );
79
		$this->object->getItem( $item->getId() );
80
	}
81
82
83
	public function testFindItem()
84
	{
85
		$item = $this->object->findItem( 'en' );
86
87
		$this->assertEquals( 'en', $item->getCode() );
88
	}
89
90
91
	public function testGetItem()
92
	{
93
		$actual = $this->object->getItem( 'en' );
94
95
		$this->assertEquals( 'en', $actual->getId() );
96
		$this->assertEquals( 'en', $actual->getCode() );
97
		$this->assertEquals( 'English', $actual->getLabel() );
98
		$this->assertEquals( 1, $actual->getStatus() );
99
		$this->assertFalse( $actual->isModified() );
100
	}
101
102
103
	public function testSearchItem()
104
	{
105
		$search = $this->object->createSearch();
106
107
		$expr = [];
108
		$expr[] = $search->compare( '==', 'locale.language.id', 'de' );
109
		$expr[] = $search->compare( '>=', 'locale.language.label', 'German' );
110
		$expr[] = $search->compare( '==', 'locale.language.code', 'de' );
111
		$expr[] = $search->compare( '==', 'locale.language.status', 1 );
112
		$expr[] = $search->compare( '>=', 'locale.language.mtime', '1970-01-01 00:00:00' );
113
		$expr[] = $search->compare( '>=', 'locale.language.ctime', '1970-01-01 00:00:00' );
114
		$expr[] = $search->compare( '>=', 'locale.language.editor', '' );
115
116
		$total = 0;
117
		$search->setConditions( $search->combine( '&&', $expr ) );
118
		$results = $this->object->searchItems( $search, [], $total );
119
120
		$this->assertEquals( 1, count( $results ) );
121
		$this->assertEquals( 1, $total );
122
123
		// search without base criteria, slice & total
124
		$search = $this->object->createSearch();
125
		$search->setConditions( $search->compare( '~=', 'locale.language.label', 'rman' ) );
126
		$search->setSlice( 0, 1 );
127
		$results = $this->object->searchItems( $search, [], $total );
128
		$this->assertEquals( 1, count( $results ) );
129
		$this->assertEquals( 1, $total );
130
131
		foreach( $results as $itemId => $item ) {
132
			$this->assertEquals( $itemId, $item->getId() );
133
		}
134
	}
135
136
137
	public function testGetResourceType()
138
	{
139
		$result = $this->object->getResourceType();
140
141
		$this->assertContains( 'locale/language', $result );
142
	}
143
144
145
	public function testGetSearchAttributes()
146
	{
147
		foreach( $this->object->getSearchAttributes() as $attribute ) {
148
			$this->assertInstanceOf( '\\Aimeos\\MW\\Criteria\\Attribute\\Iface', $attribute );
149
		}
150
	}
151
152
153
	public function testGetSubManager()
154
	{
155
		$this->setExpectedException( '\\Aimeos\\MShop\\Exception' );
156
		$this->object->getSubManager( 'unknown' );
157
	}
158
}
159