Completed
Push — master ( 0dbe68...17d58d )
by Florian
04:25
created

DebitTest   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 70
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 3
c 1
b 0
f 0
lcom 1
cbo 3
dl 0
loc 70
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
B setUp() 0 33 1
A testPrepareSpecificInformation() 0 10 1
A testPrepareSpecificInformationNoLastTransId() 0 7 1
1
<?php
2
3
/**
4
 * PAYONE Magento 2 Connector is free software: you can redistribute it and/or modify
5
 * it under the terms of the GNU Lesser General Public License as published by
6
 * the Free Software Foundation, either version 3 of the License, or
7
 * (at your option) any later version.
8
 *
9
 * PAYONE Magento 2 Connector is distributed in the hope that it will be useful,
10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
 * GNU Lesser General Public License for more details.
13
 *
14
 * You should have received a copy of the GNU Lesser General Public License
15
 * along with PAYONE Magento 2 Connector. If not, see <http://www.gnu.org/licenses/>.
16
 *
17
 * PHP version 5
18
 *
19
 * @category  Payone
20
 * @package   Payone_Magento2_Plugin
21
 * @author    FATCHIP GmbH <[email protected]>
22
 * @copyright 2003 - 2017 Payone GmbH
23
 * @license   <http://www.gnu.org/licenses/> GNU Lesser General Public License
24
 * @link      http://www.payone.de
25
 */
26
27
namespace Payone\Core\Test\Unit\Block\Info;
28
29
use Magento\Sales\Model\Order;
30
use Payone\Core\Block\Info\Debit as ClassToTest;
31
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
32
use Magento\Payment\Model\Info;
33
use Payone\Core\Model\Entities\TransactionStatus;
34
use Payone\Core\Model\TransactionStatusRepository;
35
36
class DebitTest extends \PHPUnit_Framework_TestCase
37
{
38
    /**
39
     * @var ClassToTest
40
     */
41
    private $classToTest;
42
43
    /**
44
     * @var ObjectManager
45
     */
46
    private $objectManager;
47
48
    /**
49
     * @var Info|\PHPUnit_Framework_MockObject_MockObject
50
     */
51
    private $info;
52
53
    protected function setUp()
54
    {
55
        $this->objectManager = new ObjectManager($this);
56
57
        $order = $this->getMockBuilder(Order::class)->disableOriginalConstructor()->getMock();
58
        $order->method('getPayoneTxid')->willReturn('12345');
59
60
        $this->info = $this->getMockBuilder(Info::class)
61
            ->disableOriginalConstructor()
62
            ->setMethods(['getLastTransId', 'getOrder'])
63
            ->getMock();
64
        $this->info->method('getOrder')->willReturn($order);
65
66
        $rawStatus = [
67
            'iban' => '12345',
68
            'bic' => '12345',
69
            'bankaccount' => '12345',
70
            'bankcode' => '12345'
71
        ];
72
73
        $transactionStatus = $this->getMockBuilder(TransactionStatus::class)
74
            ->disableOriginalConstructor()
75
            ->getMock();
76
        $transactionStatus->method('getRawStatusArray')->willReturn($rawStatus);
77
78
        $transactionStatusRepository = $this->getMockBuilder(TransactionStatusRepository::class)->disableOriginalConstructor()->getMock();
79
        $transactionStatusRepository->method('getAppointedByTxid')->willReturn($transactionStatus);
80
81
        $this->classToTest = $this->objectManager->getObject(ClassToTest::class, [
82
            'transactionStatusRepository' => $transactionStatusRepository
83
        ]);
84
        $this->classToTest->setInfo($this->info);
85
    }
86
87
    public function testPrepareSpecificInformation()
88
    {
89
        $this->info->method('getLastTransId')->willReturn('12345');
90
91
        $result = $this->classToTest->getSpecificInformation();
92
        $this->assertArrayHasKey('IBAN:', $result);
93
94
        $result = $this->classToTest->getSpecificInformation();
95
        $this->assertNotEmpty($result);
96
    }
97
98
    public function testPrepareSpecificInformationNoLastTransId()
99
    {
100
        $this->info->method('getLastTransId')->willReturn('');
101
102
        $result = $this->classToTest->getSpecificInformation();
103
        $this->assertArrayHasKey('Payment has not been processed yet.', $result);
104
    }
105
}
106