diff options
author | Bernhard Posselt <nukeawhale@gmail.com> | 2013-03-21 20:38:09 +0100 |
---|---|---|
committer | Bernhard Posselt <nukeawhale@gmail.com> | 2013-03-21 20:38:20 +0100 |
commit | c8bdd9c3fb0ab872b868c151f052748235601653 (patch) | |
tree | af4ffc33ad013f817af14aed25e54606429ad612 /tests | |
parent | d692600a31bf4aa9be8b71d8fcb16e90e9393aea (diff) |
finished feedcontroller
Diffstat (limited to 'tests')
-rw-r--r-- | tests/bl/FeedBlTest.php | 53 | ||||
-rw-r--r-- | tests/bl/ItemBlTest.php | 140 | ||||
-rw-r--r-- | tests/controller/FeedControllerTest.php | 180 | ||||
-rw-r--r-- | tests/controller/ItemControllerTest.php | 4 |
4 files changed, 372 insertions, 5 deletions
diff --git a/tests/bl/FeedBlTest.php b/tests/bl/FeedBlTest.php index 08f98beab..444018349 100644 --- a/tests/bl/FeedBlTest.php +++ b/tests/bl/FeedBlTest.php @@ -36,6 +36,8 @@ class FeedBlTest extends \OCA\AppFramework\Utility\TestUtility { protected $api; protected $feedMapper; protected $feedBl; + protected $user; + protected $response; protected function setUp(){ $this->api = $this->getAPIMock(); @@ -43,11 +45,62 @@ class FeedBlTest extends \OCA\AppFramework\Utility\TestUtility { ->disableOriginalConstructor() ->getMock(); $this->feedBl = new FeedBl($this->feedMapper); + $this->user = 'jack'; + $response = 'hi'; } public function testFindAll(){ + $this->feedMapper->expects($this->once()) + ->method('findAll') + ->will($this->returnValue($this->response)); + $result = $this->feedBl->findAll(); + $this->assertEquals($this->response, $result); } + + public function testFindAllFromUser(){ + $this->feedMapper->expects($this->once()) + ->method('findAllFromUser') + ->with($this->equalTo($this->user)) + ->will($this->returnValue($this->response)); + + $result = $this->feedBl->findAllFromUser($this->user); + $this->assertEquals($this->response, $result); + } + + + public function testCreate(){ + // TODO + } + + + public function testUpdate(){ + // TODO + } + + + public function testMove(){ + $feedId = 3; + $folderId = 4; + $feed = new Feed(); + $feed->setFolderId(16); + $feed->setId($feedId); + + $this->feedMapper->expects($this->once()) + ->method('find') + ->with($this->equalTo($feedId), $this->equalTo($this->user)) + ->will($this->returnValue($feed)); + + $this->feedMapper->expects($this->once()) + ->method('update') + ->with($this->equalTo($feed)); + + $this->feedBl->move($feedId, $folderId, $this->user); + + $this->assertEquals($folderId, $feed->getFolderId()); + } + + }
\ No newline at end of file diff --git a/tests/bl/ItemBlTest.php b/tests/bl/ItemBlTest.php new file mode 100644 index 000000000..5a4070e06 --- /dev/null +++ b/tests/bl/ItemBlTest.php @@ -0,0 +1,140 @@ +<?php + +/** +* ownCloud - News +* +* @author Alessandro Cosentino +* @author Bernhard Posselt +* @copyright 2012 Alessandro Cosentino cosenal@gmail.com +* @copyright 2012 Bernhard Posselt nukeawhale@gmail.com +* +* This library is free software; you can redistribute it and/or +* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE +* License as published by the Free Software Foundation; either +* version 3 of the License, or any later version. +* +* This library is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU AFFERO GENERAL PUBLIC LICENSE for more details. +* +* You should have received a copy of the GNU Affero General Public +* License along with this library. If not, see <http://www.gnu.org/licenses/>. +* +*/ + +namespace OCA\News\Bl; + +require_once(__DIR__ . "/../classloader.php"); + + +use \OCA\News\Db\Item; + + +class ItemBlTest extends \OCA\AppFramework\Utility\TestUtility { + + protected $api; + protected $mapper; + protected $bl; + protected $user; + protected $response; + + protected function setUp(){ + $this->api = $this->getAPIMock(); + $this->mapper = $this->getMockBuilder('\OCA\News\Db\ItemMapper') + ->disableOriginalConstructor() + ->getMock(); + $this->bl = new ItemBl($this->mapper); + $this->user = 'jack'; + $response = 'hi'; + } + + + + + /* + public function testFindAll(){ + $this->mapper->expects($this->once()) + ->method('findAll') + ->with($this->equalTo($this->user)) + ->will($this->returnValue($this->response)); + + $result = $this->bl->findAllFromUser($this->user); + $this->assertEquals($this->response, $result); + } + + */ + + public function testStarredCount(){ + $star = 18; + + $this->mapper->expects($this->once()) + ->method('starredCount') + ->with($this->equalTo($this->user)) + ->will($this->returnValue($star)); + + $result = $this->bl->starredCount($this->user); + + $this->assertEquals($star, $result); + } + + + public function testStar(){ + $itemId = 3; + $item = new Item(); + $item->setStatus(128); + $item->setId($itemId); + + $this->mapper->expects($this->once()) + ->method('find') + ->with($this->equalTo($itemId), $this->equalTo($this->user)) + ->will($this->returnValue($item)); + + $this->mapper->expects($this->once()) + ->method('update') + ->with($this->equalTo($item)); + + $this->bl->star($itemId, false, $this->user); + + $this->assertTrue($item->isUnstarred()); + } + + + public function testRead(){ + $itemId = 3; + $item = new Item(); + $item->setStatus(128); + $item->setId($itemId); + + $this->mapper->expects($this->once()) + ->method('find') + ->with($this->equalTo($itemId), $this->equalTo($this->user)) + ->will($this->returnValue($item)); + + $this->mapper->expects($this->once()) + ->method('update') + ->with($this->equalTo($item)); + + $this->bl->read($itemId, false, $this->user); + + $this->assertTrue($item->isUnread()); + } + + + public function testReadFeed(){ + $feedId = 3; + + $this->mapper->expects($this->once()) + ->method('readFeed') + ->with($this->equalTo($feedId), $this->equalTo($this->user)); + + $this->bl->readFeed($feedId, $this->user); + } + +} + + + + + + diff --git a/tests/controller/FeedControllerTest.php b/tests/controller/FeedControllerTest.php index d702d8e41..cfb78083e 100644 --- a/tests/controller/FeedControllerTest.php +++ b/tests/controller/FeedControllerTest.php @@ -31,7 +31,8 @@ use \OCA\AppFramework\Utility\ControllerTestUtility; use \OCA\AppFramework\Db\DoesNotExistException; use \OCA\AppFramework\Db\MultipleObjectsReturnedException; -use \OCA\News\Db\Folder; +use \OCA\News\Db\Feed; +use \OCA\News\Bl\BLException; require_once(__DIR__ . "/../classloader.php"); @@ -56,6 +57,7 @@ class FeedControllerTest extends ControllerTestUtility { $this->request = new Request(); $this->controller = new FeedController($this->api, $this->request, $this->bl); + $this->user = 'jack'; } private function assertFeedControllerAnnotations($methodName){ @@ -63,6 +65,18 @@ class FeedControllerTest extends ControllerTestUtility { $this->assertAnnotations($this->controller, $methodName, $annotations); } + + private function getPostController($postValue, $url=array()){ + $post = array( + 'post' => $postValue, + 'urlParams' => $url + ); + + $request = $this->getRequest($post); + return new FeedController($this->api, $request, $this->bl); + } + + public function testFeedsAnnotations(){ $this->assertFeedControllerAnnotations('feeds'); } @@ -88,13 +102,169 @@ class FeedControllerTest extends ControllerTestUtility { } - public function testReadAnnotations(){ - $this->assertFeedControllerAnnotations('read'); + public function testMoveAnnotations(){ + $this->assertFeedControllerAnnotations('move'); } - public function testMoveAnnotations(){ - $this->assertFeedControllerAnnotations('move'); + public function testFeeds(){ + $result = array( + 'feeds' => array( + array('a feed') + ) + ); + $this->api->expects($this->once()) + ->method('getUserId') + ->will($this->returnValue($this->user)); + $this->bl->expects($this->once()) + ->method('findAllFromUser') + ->with($this->equalTo($this->user)) + ->will($this->returnValue($result['feeds'])); + + $response = $this->controller->feeds(); + + $this->assertEquals($result, $response->getParams()); + $this->assertTrue($response instanceof JSONResponse); + } + + + public function testActive(){ + $id = 3; + $type = 2; + $result = array( + 'activeFeed' => array( + 'id' => $id, + 'type' => $type + ) + ); + + $this->api->expects($this->at(0)) + ->method('getUserValue') + ->with($this->equalTo('lastViewedFeedId')) + ->will($this->returnValue($id)); + $this->api->expects($this->at(1)) + ->method('getUserValue') + ->with($this->equalTo('lastViewedFeedType')) + ->will($this->returnValue($type)); + + $response = $this->controller->active(); + + $this->assertEquals($result, $response->getParams()); + $this->assertTrue($response instanceof JSONResponse); + } + + + public function testCreate(){ + $result = array( + 'feeds' => array(new Feed()) + ); + + $post = array( + 'url' => 'hi', + 'parentFolderId' => 4 + ); + $this->controller = $this->getPostController($post); + + $this->api->expects($this->once()) + ->method('getUserId') + ->will($this->returnValue($this->user)); + + $this->bl->expects($this->once()) + ->method('create') + ->with($this->equalTo($post['url']), + $this->equalTo($post['parentFolderId']), + $this->equalTo($this->user)) + ->will($this->returnValue($result['feeds'][0])); + + $response = $this->controller->create(); + + $this->assertEquals($result, $response->getParams()); + $this->assertTrue($response instanceof JSONResponse); + } + + + public function testCreateReturnsErrorForInvalidCreate(){ + $msg = 'except'; + $ex = new BLException($msg); + $this->bl->expects($this->once()) + ->method('create') + ->will($this->throwException($ex)); + + $response = $this->controller->create(); + $params = json_decode($response->render(), true); + + $this->assertEquals('error', $params['status']); + $this->assertEquals($msg, $params['msg']); + $this->assertTrue($response instanceof JSONResponse); + } + + + public function testDelete(){ + $url = array( + 'feedId' => 4 + ); + $this->controller = $this->getPostController(array(), $url); + + $this->api->expects($this->once()) + ->method('getUserId') + ->will($this->returnValue($this->user)); + $this->bl->expects($this->once()) + ->method('delete') + ->with($this->equalTo($url['feedId'])); + + $response = $this->controller->delete(); + $this->assertTrue($response instanceof JSONResponse); + } + + + public function testUpdate(){ + $result = array( + 'feeds' => array( + new Feed() + ) + ); + + $url = array( + 'feedId' => 4 + ); + $this->controller = $this->getPostController(array(), $url); + + $this->api->expects($this->once()) + ->method('getUserId') + ->will($this->returnValue($this->user)); + $this->bl->expects($this->once()) + ->method('update') + ->with($this->equalTo($url['feedId']), $this->equalTo($this->user)) + ->will($this->returnValue($result['feeds'][0])); + + $response = $this->controller->update(); + + $this->assertEquals($result, $response->getParams()); + $this->assertTrue($response instanceof JSONResponse); + } + + + public function testMove(){ + $post = array( + 'parentFolderId' => 3 + ); + $url = array( + 'feedId' => 4 + ); + $this->controller = $this->getPostController($post, $url); + + $this->api->expects($this->once()) + ->method('getUserId') + ->will($this->returnValue($this->user)); + $this->bl->expects($this->once()) + ->method('move') + ->with($this->equalTo($url['feedId']), + $this->equalTo($post['parentFolderId']), + $this->equalTo($this->user)); + + $response = $this->controller->move(); + + $this->assertTrue($response instanceof JSONResponse); } }
\ No newline at end of file diff --git a/tests/controller/ItemControllerTest.php b/tests/controller/ItemControllerTest.php index 767b07b86..8e816e125 100644 --- a/tests/controller/ItemControllerTest.php +++ b/tests/controller/ItemControllerTest.php @@ -93,4 +93,8 @@ class ItemControllerTest extends ControllerTestUtility { } + public function testReadFeedAnnotations(){ + $this->assertItemControllerAnnotations('readFeed'); + } + }
\ No newline at end of file |