devboard/github-object-api-facade

View on GitHub
tests/Repo/Milestone/Converter/GithubMilestoneConverterTest.php

Summary

Maintainability
A
2 hrs
Test Coverage
<?php

namespace tests\DevBoardLib\GithubObjectApiFacade\Repo\Milestone\Converter;

use DevBoardLib\GithubObjectApiFacade\Repo\Milestone\Converter\GithubMilestoneConverter;
use Mockery as m;
use tests\DevBoardLib\GithubObjectApiFacade\JsonSampleDataProvider;

/**
 * Class GithubMilestoneConverterTest.
 */
class GithubMilestoneConverterTest extends \PHPUnit_Framework_TestCase
{
    /**
     * @dataProvider  provideConversionData
     *
     * @param array $milestoneData
     */
    public function testConvert(array $milestoneData)
    {
        $repo = $this->provideTestRepo();

        $target = new GithubMilestoneConverter($repo);

        self::assertInstanceOf(
            'DevBoardLib\GithubCore\Milestone\GithubMilestoneSource',
            $target->convert($milestoneData)
        );
    }

    /**
     * @return array
     */
    public function provideConversionData()
    {
        $testData = [];

        foreach ($this->getDataProvider()->getAllMilestones() as $item) {
            $testData[] = [$item];
        }

        return $testData;
    }

    /**
     * @return m\MockInterface
     */
    protected function provideTestRepo()
    {
        return m::mock('DevBoardLib\GithubCore\Repo\GithubRepo');
    }

    /**
     * @return JsonSampleDataProvider
     */
    protected function getDataProvider()
    {
        return new JsonSampleDataProvider();
    }
}