. * */ namespace OCA\News\Fetcher; class FetcherTest extends \PHPUnit_Framework_TestCase { private $fetcher; protected function setUp(){ $this->fetcher = new Fetcher(); } public function testFetch(){ $url = 'hi'; $mockFetcher = $this->getMockBuilder('\OCA\News\Fetcher\IFeedFetcher') ->disableOriginalConstructor() ->getMock(); $mockFetcher->expects($this->once()) ->method('canHandle') ->with($this->equalTo($url)) ->will($this->returnValue(true)); $this->fetcher->registerFetcher($mockFetcher); $this->fetcher->fetch($url); } public function testMultipleFetchers(){ $url = 'hi'; $mockFetcher = $this->getMockBuilder('\OCA\News\Fetcher\IFeedFetcher') ->disableOriginalConstructor() ->getMock(); $mockFetcher->expects($this->once()) ->method('canHandle') ->with($this->equalTo($url)) ->will($this->returnValue(false)); $mockFetcher2 = $this->getMockBuilder('\OCA\News\Fetcher\IFeedFetcher') ->disableOriginalConstructor() ->getMock(); $mockFetcher2->expects($this->once()) ->method('canHandle') ->with($this->equalTo($url)) ->will($this->returnValue(true)); $this->fetcher->registerFetcher($mockFetcher); $this->fetcher->registerFetcher($mockFetcher2); $this->fetcher->fetch($url); } public function testMultipleFetchersOnlyOneShouldHandle(){ $url = 'hi'; $return = 'zeas'; $mockFetcher = $this->getMockBuilder('\OCA\News\Fetcher\IFeedFetcher') ->disableOriginalConstructor() ->getMock(); $mockFetcher->expects($this->once()) ->method('canHandle') ->with($this->equalTo($url)) ->will($this->returnValue(true)); $mockFetcher->expects($this->once()) ->method('fetch') ->with($this->equalTo($url)) ->will($this->returnValue($return)); $mockFetcher2 = $this->getMockBuilder('\OCA\News\Fetcher\IFeedFetcher') ->disableOriginalConstructor() ->getMock(); $mockFetcher2->expects($this->never()) ->method('canHandle'); $this->fetcher->registerFetcher($mockFetcher); $this->fetcher->registerFetcher($mockFetcher2); $result = $this->fetcher->fetch($url); $this->assertEquals($return, $result); } }