Completed
Push — develop ( 6f5b7e...20603c )
by Freddie
03:09
created

UseCaseMock::execute()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 15
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 9
nc 2
nop 1
dl 0
loc 15
rs 9.9666
c 0
b 0
f 0
1
<?php
2
3
namespace FlexPHP\UseCases\Tests\Mocks;
4
5
use FlexPHP\UseCases\UseCase;
6
use FlexPHP\UseCases\Exception\UnavailableRepositoryUseCaseException;
7
use FlexPHP\UseCases\Tests\Mocks\ResponseMock;
8
use FlexPHP\UseCases\Tests\Mocks\RequestMock;
9
use Exception;
10
11
/**
12
 * Class UseCaseMock
13
 * @package FlexPHP\UseCases\Tests\Mocks
14
 * @method RepositoryMock getRepository()
15
 */
16
class UseCaseMock extends UseCase
17
{
18
    /**
19
     * Use case mock
20
     *
21
     * @param RequestMock $request
22
     * @return ResponseMock
23
     */
24
    public function execute($request)
25
    {
26
        $this->throwExceptionIfRequestNotValid(__FUNCTION__, RequestMock::class, $request);
27
28
        $item = [];
29
        $item['foo'] = $request->foo;
30
        $item['bar'] = $request->bar;
31
32
        try {
33
            $response = $this->getRepository()->push($item);
34
        } catch (Exception $exception) {
35
            throw new UnavailableRepositoryUseCaseException($exception->getMessage());
36
        }
37
38
        return new ResponseMock($response);
39
    }
40
}
41