1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- <?php
- /*
- * This file is part of Psy Shell.
- *
- * (c) 2012-2017 Justin Hileman
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- namespace Psy\Test\VersionUpdater;
- use Psy\Shell;
- class GitHubCheckerTest extends \PHPUnit_Framework_TestCase
- {
- /**
- * @dataProvider malformedResults
- * @expectedException \InvalidArgumentException
- * @expectedExceptionMessage Unable to check for updates
- *
- * @param $input
- */
- public function testExceptionInvocation($input)
- {
- $checker = $this->getMockBuilder('Psy\\VersionUpdater\\GitHubChecker')
- ->setMethods(array('fetchLatestRelease'))
- ->getMock();
- $checker->expects($this->once())->method('fetchLatestRelease')->willReturn($input);
- $checker->isLatest();
- }
- /**
- * @dataProvider jsonResults
- *
- * @param $assertion
- * @param $input
- */
- public function testDataSetResults($assertion, $input)
- {
- $checker = $this->getMockBuilder('Psy\\VersionUpdater\\GitHubChecker')
- ->setMethods(array('fetchLatestRelease'))
- ->getMock();
- $checker->expects($this->once())->method('fetchLatestRelease')->willReturn($input);
- $this->assertSame($assertion, $checker->isLatest());
- }
- /**
- * @return array
- */
- public function jsonResults()
- {
- return array(
- array(false, json_decode('{"tag_name":"v9.0.0"}')),
- array(true, json_decode('{"tag_name":"v' . Shell::VERSION . '"}')),
- array(true, json_decode('{"tag_name":"v0.0.1"}')),
- array(true, json_decode('{"tag_name":"v0.4.1-alpha"}')),
- array(true, json_decode('{"tag_name":"v0.4.2-beta3"}')),
- array(true, json_decode('{"tag_name":"v0.0.1"}')),
- array(true, json_decode('{"tag_name":""}')),
- );
- }
- /**
- * @return array
- */
- public function malformedResults()
- {
- return array(
- array(null),
- array(false),
- array(true),
- array(json_decode('{"foo":"bar"}')),
- array(json_decode('{}')),
- array(json_decode('[]')),
- array(array()),
- array(json_decode('{"tag_name":false"}')),
- array(json_decode('{"tag_name":true"}')),
- );
- }
- }
|