DisableMessageTest.php 2.32 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
<?php
/**
 * @copyright  Vertex. All rights reserved.  https://www.vertexinc.com/
 * @author     Mediotype                     https://www.mediotype.com/
 */

namespace Vertex\Tax\Test\Unit\Model\Config;

use Vertex\Tax\Model\Config\DisableMessage;
use Vertex\Tax\Test\Unit\TestCase;

class DisableMessageTest extends TestCase
{
    /**
     * Test get message results
     *
     * @param string $message
     * @param array $data
     * @dataProvider getMessageDataProvider
     */
    public function testGetMessage($message, $data)
    {
        list ($affectedScopes, $scopeId, $showAffectedStores, $expected) = $data;
        /** @var DisableMessage $disableMessage */
        $disableMessage = $this->getObject(DisableMessage::class);
        $this->setInaccessibleProperty($disableMessage, 'affectedScopes', $affectedScopes);
        $result = $disableMessage->getMessage($scopeId, $showAffectedStores);
        if ($expected === '') {
            $this->assertEmpty($result);
        } else {
            $this->assertContains($expected, $result, $message);
        }
    }

    /**
     * Data Provider for test @see DisableMessageTest::testGetMessage()
     *
     * @return array
     */
    public function getMessageDataProvider()
    {

        return [
            [
                'test if specific scope is disable',
                [
                    [
                        0 => 'Admin (Admin)',
                        1 => 'Main Website (Default Store View)',
                        2 => 'newWebsite (testview)',
                    ],
                    2,
                    false,
                    'disabled',
                ],
            ],
            [
                'get message for a not affect scope',
                [
                    [2 => 'newWebsite (testview)'],
                    1,
                    false,
                    '',
                ],
            ],
            [
                'get message with all stores affected',
                [
                    [
                        0 => 'Admin (Admin)',
                        1 => 'Main Website (Default Store View)',
                        2 => 'newWebsite (testview)',
                    ],
                    1,
                    true,
                    'newWebsite (testview)',
                ],
            ],
        ];
    }
}