Issues (3627)

ReportBundle/Tests/Model/ExportHandlerTest.php (1 issue)

1
<?php
2
3
/*
4
 * @copyright   2016 Mautic Contributors. All rights reserved
5
 * @author      Mautic, Inc.
6
 *
7
 * @link        https://mautic.org
8
 *
9
 * @license     GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
10
 */
11
12
namespace Mautic\ReportBundle\Tests\Model;
13
14
use Mautic\CoreBundle\Exception\FilePathException;
15
use Mautic\CoreBundle\Helper\CoreParametersHelper;
16
use Mautic\CoreBundle\Helper\FilePathResolver;
17
use Mautic\ReportBundle\Exception\FileIOException;
18
use Mautic\ReportBundle\Model\ExportHandler;
19
20
class ExportHandlerTest extends \PHPUnit\Framework\TestCase
21
{
22
    public function testHandler()
23
    {
24
        $tmpDir = sys_get_temp_dir();
25
26
        $coreParametersHelperMock = $this->getMockBuilder(CoreParametersHelper::class)
27
            ->disableOriginalConstructor()
28
            ->getMock();
29
30
        $coreParametersHelperMock->expects($this->any())
31
            ->method('get')
32
            ->with('report_temp_dir')
33
            ->willReturn($tmpDir);
34
35
        $filePathResolver = $this->getMockBuilder(FilePathResolver::class)
36
            ->disableOriginalConstructor()
37
            ->getMock();
38
39
        $filePathResolver->expects($this->once())
40
            ->method('createDirectory');
41
42
        $exportHandler = new ExportHandler($coreParametersHelperMock, $filePathResolver);
43
44
        $handler = $exportHandler->getHandler('myFile');
45
46
        $this->assertTrue(is_resource($handler));
47
48
        $handler = $exportHandler->closeHandler($handler);
0 ignored issues
show
Are you sure the assignment to $handler is correct as $exportHandler->closeHandler($handler) targeting Mautic\ReportBundle\Mode...Handler::closeHandler() seems to always return null.

This check looks for function or method calls that always return null and whose return value is assigned to a variable.

class A
{
    function getObject()
    {
        return null;
    }

}

$a = new A();
$object = $a->getObject();

The method getObject() can return nothing but null, so it makes no sense to assign that value to a variable.

The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes.

Loading history...
49
50
        $this->assertFalse(is_resource($handler));
51
        $this->assertNull($handler);
52
    }
53
54
    public function testCreateDirectoryError()
55
    {
56
        $tmpDir = sys_get_temp_dir();
57
58
        $this->expectException(FileIOException::class);
59
        $this->expectExceptionMessage('Could not create directory '.$tmpDir);
60
61
        $coreParametersHelperMock = $this->getMockBuilder(CoreParametersHelper::class)
62
            ->disableOriginalConstructor()
63
            ->getMock();
64
65
        $coreParametersHelperMock->expects($this->any())
66
            ->method('get')
67
            ->with('report_temp_dir')
68
            ->willReturn($tmpDir);
69
70
        $filePathResolver = $this->getMockBuilder(FilePathResolver::class)
71
            ->disableOriginalConstructor()
72
            ->getMock();
73
74
        $filePathResolver->expects($this->once())
75
            ->method('createDirectory')
76
            ->willThrowException(new FilePathException());
77
78
        $exportHandler = new ExportHandler($coreParametersHelperMock, $filePathResolver);
79
80
        $exportHandler->getHandler('myFile');
81
    }
82
83
    public function testOpenFileError()
84
    {
85
        $tmpDir = 'xxx';
86
87
        $this->expectException(FileIOException::class);
88
        $this->expectExceptionMessage('Could not open file xxx/myFile.csv');
89
90
        $coreParametersHelperMock = $this->getMockBuilder(CoreParametersHelper::class)
91
            ->disableOriginalConstructor()
92
            ->getMock();
93
94
        $coreParametersHelperMock->expects($this->any())
95
            ->method('get')
96
            ->with('report_temp_dir')
97
            ->willReturn($tmpDir);
98
99
        $filePathResolver = $this->getMockBuilder(FilePathResolver::class)
100
            ->disableOriginalConstructor()
101
            ->getMock();
102
103
        $filePathResolver->expects($this->once())
104
            ->method('createDirectory');
105
106
        $exportHandler = new ExportHandler($coreParametersHelperMock, $filePathResolver);
107
108
        $exportHandler->getHandler('myFile');
109
    }
110
}
111