open-orchestra/open-orchestra-cms-bundle

View on GitHub
WorkflowAdminBundle/Tests/DataTransformer/GroupWorkflowProfileCollectionTransformerTest.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace OpenOrchestra\Backoffice\Tests\Form\DataTransformer;

use OpenOrchestra\WorkflowAdminBundle\Form\DataTransformer\GroupWorkflowProfileCollectionTransformer;
use OpenOrchestra\BaseBundle\Tests\AbstractTest\AbstractBaseTestCase;
use Phake;
use Doctrine\Common\Collections\ArrayCollection;

/**
 * Class GroupWorkflowProfileCollectionTransformerTest
 */
class GroupWorkflowProfileCollectionTransformerTest extends AbstractBaseTestCase
{
    /**
     * Set up the test
     */
    public function setUp()
    {
        $workflowProfile = Phake::mock('OpenOrchestra\ModelInterface\Model\WorkflowProfileInterface');
        Phake::when($workflowProfile)->getLabel()->thenReturn('fakeWorkflowProfileLabel');
        Phake::when($workflowProfile)->getId()->thenReturn('fakeId');
        $workflowProfileRepository = Phake::mock('OpenOrchestra\ModelBundle\Repository\WorkflowProfileRepository');
        Phake::when($workflowProfileRepository)->findAll()->thenReturn(array($workflowProfile));

        $contenType = Phake::mock('OpenOrchestra\ModelInterface\Model\ContentTypeInterface');
        Phake::when($contenType)->getContentTypeId()->thenReturn('fakeContentTypeId');
        Phake::when($contenType)->getName(Phake::anyParameters())->thenReturn('fakeName');
        $contentTypeRepository = Phake::mock('OpenOrchestra\ModelInterface\Repository\ContentTypeRepositoryInterface');
        Phake::when($contentTypeRepository)->findAllNotDeletedInLastVersion()->thenReturn(array($contenType));

        $contextManager = Phake::mock('OpenOrchestra\Backoffice\Context\ContextBackOfficeInterface');

        $this->transformer = new GroupWorkflowProfileCollectionTransformer(
            $workflowProfileRepository,
            $contentTypeRepository,
            $contextManager
        );
    }

    /**
     * Test instance
     */
    public function testInstance()
    {
        $this->assertInstanceOf('Symfony\Component\Form\DataTransformerInterface', $this->transformer);
    }

    /**
     * Test transform
     */
    public function testTransform()
    {
        $workflowProfile = Phake::mock('OpenOrchestra\ModelInterface\Model\WorkflowProfileInterface');
        Phake::when($workflowProfile)->getId()->thenReturn('fakeId');
        $workflowProfileCollection = Phake::mock('OpenOrchestra\ModelBundle\Document\WorkflowProfileCollection');
        Phake::when($workflowProfileCollection)->getProfiles()->thenReturn(array($workflowProfile));

        $value = new ArrayCollection();
        $value->set('node', $workflowProfileCollection);

        $result = $this->transformer->transform($value);

        $this->assertEquals(array('node' => array('fakeId' => true), 'fakeContentTypeId' => array('fakeId' => false)), $result);
    }

    /**
     * Test reverseTransform
     */
    public function testReverseTransform()
    {
        $value = array('node' => array('fakeId' => true), 'fakeContentTypeId' => array('fakeId' => false));
        $result = $this->transformer->reverseTransform($value);

        $this->assertArrayHasKey('node', $result);
        $this->assertArrayHasKey('fakeContentTypeId', $result);
    }
}