Completed
Push — master ( c2d471...c0413d )
by Aleksandar
208:47 queued 204:29
created

testHandlePostActionShouldReturnJsonResponseWithError()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 16
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 14
nc 1
nop 0
dl 0
loc 16
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Newsletter\Test\Web\Action;
6
7
class HelperPostActionTest extends \PHPUnit_Framework_TestCase
8
{
9
    public function testHandlePostActionShouldReturnJsonResponseWithError()
10
    {
11
        $newsletterService = $this->getMockBuilder(\Newsletter\Service\NewsletterService::class)
12
            ->disableOriginalConstructor()
13
            ->setMethods(['registerNew'])
14
            ->getMockForAbstractClass();
15
        $newsletterService->expects(static::once())
16
            ->method('registerNew')
17
            ->willThrowException(new \Exception('test error', 400));
18
        $request = $this->getMockBuilder(\Psr\Http\Message\ServerRequestInterface::class)
19
            ->getMockForAbstractClass();
20
        $response = $this->getMockBuilder(\Psr\Http\Message\ResponseInterface::class)
21
            ->getMockForAbstractClass();
22
        $newsletterAction = new \Newsletter\Web\Action\HandlePostAction($newsletterService);
23
        static::assertInstanceOf(\Zend\Diactoros\Response\JsonResponse::class, $newsletterAction($request, $response));
24
    }
25
26
    public function testHandlePostActionShouldReturnJsonResponseWithSuccess()
27
    {
28
        $newsletterService = $this->getMockBuilder(\Newsletter\Service\NewsletterService::class)
29
            ->setMethods(['registerNew'])
30
            ->disableOriginalConstructor()
31
            ->getMockForAbstractClass();
32
        $request = $this->getMockBuilder(\Psr\Http\Message\ServerRequestInterface::class)
33
            ->getMockForAbstractClass();
34
        $request->expects(static::once())
35
            ->method('getParsedBody')
36
            ->willReturn(['email' => '[email protected]']);
37
        $response = $this->getMockBuilder(\Psr\Http\Message\ResponseInterface::class)
38
            ->getMockForAbstractClass();
39
        $newsletterAction = new \Newsletter\Web\Action\HandlePostAction($newsletterService);
40
        static::assertSame('Uspešno ste se prijavili.', \GuzzleHttp\json_decode($newsletterAction($request, $response)->getBody()->getContents())->message);
41
    }
42
}
43