Issues (3627)

Test/EventListener/MaintenanceSubscriberTest.php (1 issue)

1
<?php
2
3
/*
4
 * @copyright   2018 Mautic Contributors. All rights reserved
5
 * @author      Mautic
6
 *
7
 * @link        http://mautic.org
8
 *
9
 * @license     GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
10
 */
11
12
namespace Mautic\CoreBundle\Test\EventListener;
13
14
use Doctrine\DBAL\Connection;
15
use Doctrine\DBAL\Query\Expression\ExpressionBuilder;
16
use Doctrine\DBAL\Query\QueryBuilder;
17
use Mautic\CoreBundle\CoreEvents;
18
use Mautic\CoreBundle\Event\MaintenanceEvent;
19
use Mautic\CoreBundle\EventListener\MaintenanceSubscriber;
20
use Mautic\UserBundle\Entity\UserTokenRepositoryInterface;
21
use Symfony\Component\Translation\TranslatorInterface;
22
23
class MaintenanceSubscriberTest extends \PHPUnit\Framework\TestCase
24
{
25
    /**
26
     * @var MaintenanceSubscriber
27
     */
28
    private $subscriber;
29
30
    protected function setUp(): void
31
    {
32
        $connection          = $this->createMock(Connection::class);
33
        $userTokenRepository = $this->createMock(UserTokenRepositoryInterface::class);
34
        $translator          = $this->createMock(TranslatorInterface::class);
35
        $this->subscriber    = new MaintenanceSubscriber($connection, $userTokenRepository, $translator);
36
    }
37
38
    public function testGetSubscribedEvents()
39
    {
40
        $this->assertEquals(
41
            [CoreEvents::MAINTENANCE_CLEANUP_DATA => ['onDataCleanup', -50]],
42
            $this->subscriber->getSubscribedEvents()
43
        );
44
    }
45
46
    public function testOnDataCleanup()
47
    {
48
        if (!defined('MAUTIC_TABLE_PREFIX')) {
49
            define('MAUTIC_TABLE_PREFIX', 'mautic');
50
        }
51
52
        $dateTime         = new \DateTimeImmutable();
53
        $format           = 'Y-m-d H:i:s';
54
        $rowCount         = 2;
55
        $translatedString = 'nonsense';
56
57
        $dateTimeMock = $this->createMock(\DateTime::class);
58
        $dateTimeMock
59
            ->expects($this->exactly(2))
60
            ->method('format')
61
            ->with($format)
62
            ->willReturn($dateTime->format($format));
63
64
        $event = $this->createMock(MaintenanceEvent::class);
65
        $event
66
            ->expects($this->exactly(2))
67
            ->method('getDate')
68
            ->willReturn($dateTimeMock);
69
        $event
70
            ->expects($this->exactly(3))
71
            ->method('isDryRun')
72
            ->willReturn(false);
73
        $event
74
            ->expects($this->exactly(3))
75
            ->method('setStat');
76
77
        $expressionBuilder = $this->createMock(ExpressionBuilder::class);
78
        $expressionBuilder
79
            ->expects($this->exactly(2))
80
            ->method('lte')
81
            ->with('date_added', ':date');
82
83
        $qb = $this->createMock(QueryBuilder::class);
84
        $qb
85
            ->expects($this->exactly(2))
86
            ->method('setParameter')
87
            ->willReturn($qb);
88
        $qb
89
            ->expects($this->exactly(2))
90
            ->method('delete')
91
            ->willReturn($qb);
92
        $qb
93
            ->expects($this->exactly(2))
94
            ->method('expr')
95
            ->willReturn($expressionBuilder);
96
        $qb
97
            ->expects($this->exactly(2))
98
            ->method('where')
99
            ->willReturn($qb);
100
        $qb
101
            ->expects($this->exactly(2))
102
            ->method('execute')
103
            ->willReturn($rowCount);
104
105
        $connection = $this->createMock(Connection::class);
106
        $connection
107
            ->expects($this->exactly(2))
108
            ->method('createQueryBuilder')
109
            ->willReturn($qb);
110
111
        $translator          = $this->createMock(TranslatorInterface::class);
112
        $userTokenRepository = $this->createMock(UserTokenRepositoryInterface::class);
113
        $subscriber          = new MaintenanceSubscriber($connection, $userTokenRepository, $translator);
114
115
        $translator
116
            ->expects($this->exactly(3))
117
            ->method('trans')
118
            ->willReturn($translatedString);
119
120
        $this->assertNull($subscriber->onDataCleanup($event));
0 ignored issues
show
Are you sure the usage of $subscriber->onDataCleanup($event) targeting Mautic\CoreBundle\EventL...criber::onDataCleanup() seems to always return null.

This check looks for function or method calls that always return null and whose return value is used.

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

}

$a = new A();
if ($a->getObject()) {

The method getObject() can return nothing but null, so it makes no sense to use the return value.

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

Loading history...
121
    }
122
}
123