open-orchestra/open-orchestra-media-admin-bundle

View on GitHub
MediaAdminBundle/Tests/BusinessRules/Strategies/MediaStrategyTest.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php
namespace OpenOrchestra\BackOffice\Tests\BusinessRules\Strategies;

use OpenOrchestra\Backoffice\BusinessRules\Strategies\BusinessActionInterface;
use OpenOrchestra\BaseBundle\Tests\AbstractTest\AbstractBaseTestCase;
use OpenOrchestra\Media\Model\MediaInterface;
use Phake;
use OpenOrchestra\MediaAdminBundle\BusinessRules\Strategies\MediaStrategy;

/**
 * Class MediaStrategyTest
 */
class MediaStrategyTest extends AbstractBaseTestCase
{
    protected $strategy;

    /**
     * setUp
     */
    public function setUp()
    {
        $this->strategy = new MediaStrategy();
    }

    /**
     * @param boolean $isUsed
     * @param boolean $isGranted
     *
     * @dataProvider provideDeletable
     */
    public function testCanDelete($isUsed, $isGranted)
    {
        $media = Phake::mock('OpenOrchestra\Media\Model\MediaInterface');
        Phake::when($media)->isUsed()->thenReturn($isUsed);
        $this->assertSame($isGranted, $this->strategy->canDelete($media, array()));
    }

    /**
     * provide media isDeletable
     *
     * @return array
     */
    public function provideDeletable()
    {
        return array(
            array(true, false),
            array(false, true),
        );
    }

    /**
     * test getActions
     */
    public function testGetActions()
    {
        $this->assertEquals(array(
            BusinessActionInterface::DELETE => 'canDelete',
        ), $this->strategy->getActions());
    }

    /**
     * test getActions
     */
    public function testType()
    {
        $this->assertEquals(MediaInterface::ENTITY_TYPE, $this->strategy->getType());
    }
}