StockItemTest::createModel()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 5
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 0
dl 0
loc 8
ccs 5
cts 5
cp 1
crap 1
rs 10
c 0
b 0
f 0
1
<?php
2
3
4
namespace Stockbase\Integration\Test\Unit\Model;
5
6
use PHPUnit\Framework\TestCase;
7
use Stockbase\Integration\Model\StockItem;
8
9
/**
10
 * Class StockItemTest
11
 */
12
class StockItemTest extends TestCase
13
{
14
    /** @var \Magento\Framework\Model\Context|\PHPUnit_Framework_MockObject_MockObject */
15
    private $context;
16
17
    /** @var \Magento\Framework\Registry|\PHPUnit_Framework_MockObject_MockObject */
18
    private $registry;
19
    
20
    /** @var \Magento\Framework\Model\ResourceModel\AbstractResource|\PHPUnit_Framework_MockObject_MockObject */
21
    private $resource;
22
23
    /**
24
     * {@inheritdoc}
25
     */
26 8
    public function setUp()
27
    {
28 8
        $this->context = $this->createMock(\Magento\Framework\Model\Context::class);
29 8
        $this->registry = $this->createMock(\Magento\Framework\Registry::class);
30 8
        $this->resource = $this->createMock(\Magento\Framework\Model\ResourceModel\Db\AbstractDb::class);
31 8
        $this->resource->method('getIdFieldName')->willReturn('id');
32 8
    }
33
34
    /**
35
     * testGettersAndSetters
36
     * @dataProvider gettersAndSettersProvider
37
     *
38
     * @param mixed $propertyName
39
     * @param mixed $fieldName
40
     */
41 8
    public function testGettersAndSetters($propertyName, $fieldName)
42
    {
43 8
        $model = $this->createModel();
44
        
45 8
        $value = uniqid();
46 8
        $model->{'set'.$propertyName}($value);
47 8
        $this->assertEquals($value, $model->getData($fieldName));
48 8
        $this->assertEquals($value, $model->{'get'.$propertyName}());
49 8
    }
50
51
    /**
52
     * @return array
53
     */
54
    public function gettersAndSettersProvider()
55
    {
56
        return [
57
            ['Ean', 'id'],
58
            ['Brand', 'brand'],
59
            ['Code', 'code'],
60
            ['SupplierCode', 'supplier_code'],
61
            ['SupplierGln', 'supplier_gln'],
62
            ['Amount', 'amount'],
63
            ['Noos', 'noos'],
64
            ['Timestamp', 'timestamp'],
65
        ];
66
    }
67
    
68 8
    protected function createModel()
69
    {
70 8
        return new StockItem(
71 8
            $this->context,
72 8
            $this->registry,
73 8
            $this->resource
74
        );
75
    }
76
}
77