Passed
Push — master ( ca7ad6...579b04 )
by Mykolas
02:00
created

StatusAction   A

Complexity

Total Complexity 9

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Test Coverage

Coverage 77.27%

Importance

Changes 1
Bugs 1 Features 0
Metric Value
eloc 22
c 1
b 1
f 0
dl 0
loc 41
ccs 17
cts 22
cp 0.7727
rs 10
wmc 9

2 Methods

Rating   Name   Duplication   Size   Complexity  
B execute() 0 23 7
A supports() 0 5 2
1
<?php
2
namespace PTS\Paysera\Action;
3
4
use Payum\Core\Action\ActionInterface;
5
use Payum\Core\Request\GetStatusInterface;
6
use Payum\Core\Bridge\Spl\ArrayObject;
7
use Payum\Core\Exception\RequestNotSupportedException;
8
use WebToPay;
9
10
class StatusAction implements ActionInterface
11
{
12
    /**
13
     * {@inheritDoc}
14
     *
15
     * @param GetStatusInterface $request
16
     */
17 9
    public function execute($request)
18
    {
19 9
        RequestNotSupportedException::assertSupports($this, $request);
20
21 3
        $model = ArrayObject::ensureArrayObject($request->getModel());
22
23 3
        switch ($model['status']) {
24
            case null:
25 3
            case 'pending':
26 3
            case 'NEW':
27 1
                $request->markNew();
28 1
                return;
29 2
            case 'COMPLETED':
30 1
                $request->markCaptured();
31 1
                return;
32 1
            case 'FAILED':
33 1
                $request->markFailed();
34 1
                return;
35
            case 'NOT_EXECUTED':
36
                $request->markPending();
37
                return;
38
        }
39
        $request->markUnknown();
40
41
    }
42
43
    /**
44
     * {@inheritDoc}
45
     */
46 17
    public function supports($request)
47
    {
48
        return
49 17
            $request instanceof GetStatusInterface &&
50 17
            $request->getModel() instanceof \ArrayAccess
51
        ;
52
    }
53
}
54