Chris@0: getMockBuilder('Psy\\VersionUpdater\\GitHubChecker') Chris@0: ->setMethods(array('fetchLatestRelease')) Chris@0: ->getMock(); Chris@0: $checker->expects($this->once())->method('fetchLatestRelease')->willReturn($input); Chris@0: $checker->isLatest(); Chris@0: } Chris@0: Chris@0: /** Chris@0: * @dataProvider jsonResults Chris@0: * Chris@0: * @param $assertion Chris@0: * @param $input Chris@0: */ Chris@0: public function testDataSetResults($assertion, $input) Chris@0: { Chris@0: $checker = $this->getMockBuilder('Psy\\VersionUpdater\\GitHubChecker') Chris@0: ->setMethods(array('fetchLatestRelease')) Chris@0: ->getMock(); Chris@0: $checker->expects($this->once())->method('fetchLatestRelease')->willReturn($input); Chris@0: $this->assertSame($assertion, $checker->isLatest()); Chris@0: } Chris@0: Chris@0: /** Chris@0: * @return array Chris@0: */ Chris@0: public function jsonResults() Chris@0: { Chris@0: return array( Chris@0: array(false, json_decode('{"tag_name":"v9.0.0"}')), Chris@0: array(true, json_decode('{"tag_name":"v' . Shell::VERSION . '"}')), Chris@0: array(true, json_decode('{"tag_name":"v0.0.1"}')), Chris@0: array(true, json_decode('{"tag_name":"v0.4.1-alpha"}')), Chris@0: array(true, json_decode('{"tag_name":"v0.4.2-beta3"}')), Chris@0: array(true, json_decode('{"tag_name":"v0.0.1"}')), Chris@0: array(true, json_decode('{"tag_name":""}')), Chris@0: ); Chris@0: } Chris@0: Chris@0: /** Chris@0: * @return array Chris@0: */ Chris@0: public function malformedResults() Chris@0: { Chris@0: return array( Chris@0: array(null), Chris@0: array(false), Chris@0: array(true), Chris@0: array(json_decode('{"foo":"bar"}')), Chris@0: array(json_decode('{}')), Chris@0: array(json_decode('[]')), Chris@0: array(array()), Chris@0: array(json_decode('{"tag_name":false"}')), Chris@0: array(json_decode('{"tag_name":true"}')), Chris@0: ); Chris@0: } Chris@0: }