CollectionTest.php 2.72 KB
Newer Older
Ketan's avatar
Ketan committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
<?php
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */

namespace Magento\Security\Model\ResourceModel\AdminSessionInfo;

use Magento\Framework\Stdlib\DateTime\DateTime;

class CollectionTest extends \PHPUnit\Framework\TestCase
{
    /**
     * @var \Magento\Security\Model\ResourceModel\AdminSessionInfo\Collection
     */
    protected $collectionModel;

    /**
     * @var \Magento\Framework\ObjectManagerInterface
     */
    protected $objectManager;

    /**
     * Set up
     */
    protected function setUp()
    {
        $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
        $this->collectionModel = $this->objectManager
            ->create(\Magento\Security\Model\ResourceModel\AdminSessionInfo\Collection::class);
    }

    /**
     * updateActiveSessionsStatus() test
     *
     * @magentoDataFixture Magento/Security/_files/adminsession.php
     */
    public function testUpdateActiveSessionsStatus()
    {
        $quantity = $this->collectionModel->updateActiveSessionsStatus(
            \Magento\Security\Model\AdminSessionInfo::LOGGED_OUT_BY_LOGIN,
            1,
            '569e2277752e9'
        );
        $this->assertGreaterThanOrEqual(1, $quantity);
    }

    /**
     * filterByUser() test
     *
     * @magentoDataFixture Magento/Security/_files/adminsession.php
     */
    public function testFilterByUser()
    {
        $this->collectionModel->filterByUser(
            1,
            \Magento\Security\Model\AdminSessionInfo::LOGGED_IN,
            '569e2e3d752e9'
        );
        $this->collectionModel->load();
        $this->assertGreaterThanOrEqual(1, $this->collectionModel->getSize());
    }

    /**
     * filterExpiredSessions() test
     *
     * @magentoDataFixture Magento/Security/_files/adminsession.php
     */
    public function testFilterExpiredSessions()
    {
        $startTime = strtotime('2016-01-19 15:42:13') - 1;
        $dateTime = $this->objectManager
            ->get(DateTime::class);
        $currentTime = $dateTime->gmtTimestamp();
        $sessionLifetime = $currentTime - $startTime;

        $this->collectionModel->filterExpiredSessions($sessionLifetime);
        $this->collectionModel->load();
        $this->assertGreaterThanOrEqual(1, $this->collectionModel->getSize());
    }

    /**
     * deleteSessionsOlderThen() test
     *
     * @magentoDataFixture Magento/Security/_files/adminsession.php
     */
    public function testDeleteSessionsOlderThen()
    {
        $startTime = strtotime('2016-01-19 15:42:13');
        $this->collectionModel->deleteSessionsOlderThen($startTime);
        $this->collectionModel->load();
        $this->assertGreaterThanOrEqual(1, $this->collectionModel->getSize());
    }
}