summaryrefslogtreecommitdiffstats
path: root/tests/unit/controller/ItemControllerTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/controller/ItemControllerTest.php')
-rw-r--r--tests/unit/controller/ItemControllerTest.php620
1 files changed, 310 insertions, 310 deletions
diff --git a/tests/unit/controller/ItemControllerTest.php b/tests/unit/controller/ItemControllerTest.php
index b366fdfa0..fd0904ef7 100644
--- a/tests/unit/controller/ItemControllerTest.php
+++ b/tests/unit/controller/ItemControllerTest.php
@@ -23,316 +23,316 @@ use \OCA\News\Service\ServiceNotFoundException;
class ItemControllerTest extends \PHPUnit_Framework_TestCase {
- private $appName;
- private $settings;
- private $itemService;
- private $feedService;
- private $request;
- private $controller;
- private $newestItemId;
-
-
- /**
- * Gets run before each test
- */
- public function setUp(){
- $this->appName = 'news';
- $this->user = 'jackob';
- $this->settings = $this->getMockBuilder(
- '\OCP\IConfig')
- ->disableOriginalConstructor()
- ->getMock();
- $this->itemService =
- $this->getMockBuilder('\OCA\News\Service\ItemService')
- ->disableOriginalConstructor()
- ->getMock();
- $this->feedService =
- $this->getMockBuilder('\OCA\News\Service\FeedService')
- ->disableOriginalConstructor()
- ->getMock();
- $this->request = $this->getMockBuilder(
- '\OCP\IRequest')
- ->disableOriginalConstructor()
- ->getMock();
- $this->controller = new ItemController($this->appName, $this->request,
- $this->feedService, $this->itemService, $this->settings,
- $this->user);
- $this->newestItemId = 12312;
- }
-
-
- public function testRead(){
- $this->itemService->expects($this->once())
- ->method('read')
- ->with(4, true, $this->user);
-
- $this->controller->read(4, true);
- }
-
-
- public function testReadDoesNotExist(){
- $msg = 'hi';
-
- $this->itemService->expects($this->once())
- ->method('read')
- ->will($this->throwException(new ServiceNotFoundException($msg)));
-
- $response = $this->controller->read(4);
- $params = json_decode($response->render(), true);
-
- $this->assertEquals($response->getStatus(), Http::STATUS_NOT_FOUND);
- $this->assertEquals($msg, $params['message']);
- }
-
-
- public function testReadMultiple() {
- $this->itemService->expects($this->at(0))
- ->method('read')
- ->with($this->equalTo(2),
- $this->equalTo(true),
- $this->equalTo($this->user));
- $this->itemService->expects($this->at(1))
- ->method('read')
- ->with($this->equalTo(4),
- $this->equalTo(true),
- $this->equalTo($this->user));
- $this->controller->readMultiple([2, 4]);
- }
-
-
- public function testReadMultipleDontStopOnException() {
- $this->itemService->expects($this->at(0))
- ->method('read')
- ->with($this->equalTo(2),
- $this->equalTo(true),
- $this->equalTo($this->user))
- ->will($this->throwException(new ServiceNotFoundException('yo')));
- $this->itemService->expects($this->at(1))
- ->method('read')
- ->with($this->equalTo(4),
- $this->equalTo(true),
- $this->equalTo($this->user));
- $this->controller->readMultiple([2, 4]);
- }
-
-
- public function testStar(){
- $this->itemService->expects($this->once())
- ->method('star')
- ->with(
- $this->equalTo(4),
- $this->equalTo('test'),
- $this->equalTo(true),
- $this->equalTo($this->user));
-
- $this->controller->star(4, 'test', true);
- }
-
-
- public function testStarDoesNotExist(){
- $msg = 'ho';
-
- $this->itemService->expects($this->once())
- ->method('star')
- ->will($this->throwException(new ServiceNotFoundException($msg)));;
-
- $response = $this->controller->star(4, 'test', false);
- $params = json_decode($response->render(), true);
-
- $this->assertEquals($response->getStatus(), Http::STATUS_NOT_FOUND);
- $this->assertEquals($msg, $params['message']);
- }
-
-
- public function testReadAll(){
- $feed = new Feed();
-
- $expected = ['feeds' => [$feed]];
-
- $this->itemService->expects($this->once())
- ->method('readAll')
- ->with($this->equalTo(5),
- $this->equalTo($this->user));
- $this->feedService->expects($this->once())
- ->method('findAll')
- ->with($this->equalTo($this->user))
- ->will($this->returnValue([$feed]));
-
- $response = $this->controller->readAll(5);
- $this->assertEquals($expected, $response);
- }
-
-
- private function itemsApiExpects($id, $type, $oldestFirst='1'){
- $this->settings->expects($this->at(0))
- ->method('getUserValue')
- ->with($this->equalTo($this->user),
- $this->equalTo($this->appName),
- $this->equalTo('showAll'))
- ->will($this->returnValue('1'));
- $this->settings->expects($this->at(1))
- ->method('getUserValue')
- ->with($this->equalTo($this->user),
- $this->equalTo($this->appName),
- $this->equalTo('oldestFirst'))
- ->will($this->returnValue($oldestFirst));
- $this->settings->expects($this->at(2))
- ->method('setUserValue')
- ->with($this->equalTo($this->user),
- $this->equalTo($this->appName),
- $this->equalTo('lastViewedFeedId'),
- $this->equalTo($id));
- $this->settings->expects($this->at(3))
- ->method('setUserValue')
- ->with($this->equalTo($this->user),
- $this->equalTo($this->appName),
- $this->equalTo('lastViewedFeedType'),
- $this->equalTo($type));
- }
-
-
- public function testIndex(){
- $feeds = [new Feed()];
- $result = [
- 'items' => [new Item()],
- 'feeds' => $feeds,
- 'newestItemId' => $this->newestItemId,
- 'starred' => 3111
- ];
-
- $this->itemsApiExpects(2, FeedType::FEED, '0');
-
- $this->feedService->expects($this->once())
- ->method('findAll')
- ->with($this->equalTo($this->user))
- ->will($this->returnValue($feeds));
-
- $this->itemService->expects($this->once())
- ->method('getNewestItemId')
- ->with($this->equalTo($this->user))
- ->will($this->returnValue($this->newestItemId));
-
- $this->itemService->expects($this->once())
- ->method('starredCount')
- ->with($this->equalTo($this->user))
- ->will($this->returnValue(3111));
-
- $this->itemService->expects($this->once())
- ->method('findAll')
- ->with(
- $this->equalTo(2),
- $this->equalTo(FeedType::FEED),
- $this->equalTo(3),
- $this->equalTo(0),
- $this->equalTo(true),
- $this->equalTo(false),
- $this->equalTo($this->user))
- ->will($this->returnValue($result['items']));
-
- $response = $this->controller->index(FeedType::FEED, 2, 3);
- $this->assertEquals($result, $response);
- }
-
-
- public function testItemsOffsetNotZero(){
- $result = ['items' => [new Item()]];
-
- $this->itemsApiExpects(2, FeedType::FEED);
-
- $this->itemService->expects($this->once())
- ->method('findAll')
- ->with($this->equalTo(2),
- $this->equalTo(FeedType::FEED),
- $this->equalTo(3),
- $this->equalTo(10),
- $this->equalTo(true),
- $this->equalTo(true),
- $this->equalTo($this->user))
- ->will($this->returnValue($result['items']));
-
- $this->feedService->expects($this->never())
- ->method('findAll');
-
- $response = $this->controller->index(FeedType::FEED, 2, 3, 10);
- $this->assertEquals($result, $response);
- }
-
-
- public function testGetItemsNoNewestItemsId(){
- $this->itemsApiExpects(2, FeedType::FEED);
-
- $this->itemService->expects($this->once())
- ->method('getNewestItemId')
- ->with($this->equalTo($this->user))
- ->will($this->throwException(new ServiceNotFoundException('')));
-
- $response = $this->controller->index(FeedType::FEED, 2, 3);
- $this->assertEquals([], $response);
- }
-
-
- public function testNewItems(){
- $feeds = [new Feed()];
- $result = [
- 'items' => [new Item()],
- 'feeds' => $feeds,
- 'newestItemId' => $this->newestItemId,
- 'starred' => 3111
- ];
-
- $this->settings->expects($this->once())
- ->method('getUserValue')
- ->with($this->equalTo($this->user),
- $this->equalTo($this->appName),
- $this->equalTo('showAll'))
- ->will($this->returnValue('1'));
-
- $this->feedService->expects($this->once())
- ->method('findAll')
- ->with($this->equalTo($this->user))
- ->will($this->returnValue($feeds));
-
- $this->itemService->expects($this->once())
- ->method('getNewestItemId')
- ->with($this->equalTo($this->user))
- ->will($this->returnValue($this->newestItemId));
-
- $this->itemService->expects($this->once())
- ->method('starredCount')
- ->with($this->equalTo($this->user))
- ->will($this->returnValue(3111));
-
- $this->itemService->expects($this->once())
- ->method('findAllNew')
- ->with(
- $this->equalTo(2),
- $this->equalTo(FeedType::FEED),
- $this->equalTo(3),
- $this->equalTo(true),
- $this->equalTo($this->user))
- ->will($this->returnValue($result['items']));
-
- $response = $this->controller->newItems(FeedType::FEED, 2, 3);
- $this->assertEquals($result, $response);
- }
-
-
- public function testGetNewItemsNoNewestItemsId(){
- $this->settings->expects($this->once())
- ->method('getUserValue')
- ->with($this->equalTo($this->user),
- $this->equalTo($this->appName),
- $this->equalTo('showAll'))
- ->will($this->returnValue('1'));
-
- $this->itemService->expects($this->once())
- ->method('getNewestItemId')
- ->with($this->equalTo($this->user))
- ->will($this->throwException(new ServiceNotFoundException('')));
-
- $response = $this->controller->newItems(FeedType::FEED, 2, 3);
- $this->assertEquals([], $response);
- }
+ private $appName;
+ private $settings;
+ private $itemService;
+ private $feedService;
+ private $request;
+ private $controller;
+ private $newestItemId;
+
+
+ /**
+ * Gets run before each test
+ */
+ public function setUp(){
+ $this->appName = 'news';
+ $this->user = 'jackob';
+ $this->settings = $this->getMockBuilder(
+ '\OCP\IConfig')
+ ->disableOriginalConstructor()
+ ->getMock();
+ $this->itemService =
+ $this->getMockBuilder('\OCA\News\Service\ItemService')
+ ->disableOriginalConstructor()
+ ->getMock();
+ $this->feedService =
+ $this->getMockBuilder('\OCA\News\Service\FeedService')
+ ->disableOriginalConstructor()
+ ->getMock();
+ $this->request = $this->getMockBuilder(
+ '\OCP\IRequest')
+ ->disableOriginalConstructor()
+ ->getMock();
+ $this->controller = new ItemController($this->appName, $this->request,
+ $this->feedService, $this->itemService, $this->settings,
+ $this->user);
+ $this->newestItemId = 12312;
+ }
+
+
+ public function testRead(){
+ $this->itemService->expects($this->once())
+ ->method('read')
+ ->with(4, true, $this->user);
+
+ $this->controller->read(4, true);
+ }
+
+
+ public function testReadDoesNotExist(){
+ $msg = 'hi';
+
+ $this->itemService->expects($this->once())
+ ->method('read')
+ ->will($this->throwException(new ServiceNotFoundException($msg)));
+
+ $response = $this->controller->read(4);
+ $params = json_decode($response->render(), true);
+
+ $this->assertEquals($response->getStatus(), Http::STATUS_NOT_FOUND);
+ $this->assertEquals($msg, $params['message']);
+ }
+
+
+ public function testReadMultiple() {
+ $this->itemService->expects($this->at(0))
+ ->method('read')
+ ->with($this->equalTo(2),
+ $this->equalTo(true),
+ $this->equalTo($this->user));
+ $this->itemService->expects($this->at(1))
+ ->method('read')
+ ->with($this->equalTo(4),
+ $this->equalTo(true),
+ $this->equalTo($this->user));
+ $this->controller->readMultiple([2, 4]);
+ }
+
+
+ public function testReadMultipleDontStopOnException() {
+ $this->itemService->expects($this->at(0))
+ ->method('read')
+ ->with($this->equalTo(2),
+ $this->equalTo(true),
+ $this->equalTo($this->user))
+ ->will($this->throwException(new ServiceNotFoundException('yo')));
+ $this->itemService->expects($this->at(1))
+ ->method('read')
+ ->with($this->equalTo(4),
+ $this->equalTo(true),
+ $this->equalTo($this->user));
+ $this->controller->readMultiple([2, 4]);
+ }
+
+
+ public function testStar(){
+ $this->itemService->expects($this->once())
+ ->method('star')
+ ->with(
+ $this->equalTo(4),
+ $this->equalTo('test'),
+ $this->equalTo(true),
+ $this->equalTo($this->user));
+
+ $this->controller->star(4, 'test', true);
+ }
+
+
+ public function testStarDoesNotExist(){
+ $msg = 'ho';
+
+ $this->itemService->expects($this->once())
+ ->method('star')
+ ->will($this->throwException(new ServiceNotFoundException($msg)));;
+
+ $response = $this->controller->star(4, 'test', false);
+ $params = json_decode($response->render(), true);
+
+ $this->assertEquals($response->getStatus(), Http::STATUS_NOT_FOUND);
+ $this->assertEquals($msg, $params['message']);
+ }
+
+
+ public function testReadAll(){
+ $feed = new Feed();
+
+ $expected = ['feeds' => [$feed]];
+
+ $this->itemService->expects($this->once())
+ ->method('readAll')
+ ->with($this->equalTo(5),
+ $this->equalTo($this->user));
+ $this->feedService->expects($this->once())
+ ->method('findAll')
+ ->with($this->equalTo($this->user))
+ ->will($this->returnValue([$feed]));
+
+ $response = $this->controller->readAll(5);
+ $this->assertEquals($expected, $response);
+ }
+
+
+ private function itemsApiExpects($id, $type, $oldestFirst='1'){
+ $this->settings->expects($this->at(0))
+ ->method('getUserValue')
+ ->with($this->equalTo($this->user),
+ $this->equalTo($this->appName),
+ $this->equalTo('showAll'))
+ ->will($this->returnValue('1'));
+ $this->settings->expects($this->at(1))
+ ->method('getUserValue')
+ ->with($this->equalTo($this->user),
+ $this->equalTo($this->appName),
+ $this->equalTo('oldestFirst'))
+ ->will($this->returnValue($oldestFirst));
+ $this->settings->expects($this->at(2))
+ ->method('setUserValue')
+ ->with($this->equalTo($this->user),
+ $this->equalTo($this->appName),
+ $this->equalTo('lastViewedFeedId'),
+ $this->equalTo($id));
+ $this->settings->expects($this->at(3))
+ ->method('setUserValue')
+ ->with($this->equalTo($this->user),
+ $this->equalTo($this->appName),
+ $this->equalTo('lastViewedFeedType'),
+ $this->equalTo($type));
+ }
+
+
+ public function testIndex(){
+ $feeds = [new Feed()];
+ $result = [
+ 'items' => [new Item()],
+ 'feeds' => $feeds,
+ 'newestItemId' => $this->newestItemId,
+ 'starred' => 3111
+ ];
+
+ $this->itemsApiExpects(2, FeedType::FEED, '0');
+
+ $this->feedService->expects($this->once())
+ ->method('findAll')
+ ->with($this->equalTo($this->user))
+ ->will($this->returnValue($feeds));
+
+ $this->itemService->expects($this->once())
+ ->method('getNewestItemId')
+ ->with($this->equalTo($this->user))
+ ->will($this->returnValue($this->newestItemId));
+
+ $this->itemService->expects($this->once())
+ ->method('starredCount')
+ ->with($this->equalTo($this->user))
+ ->will($this->returnValue(3111));
+
+ $this->itemService->expects($this->once())
+ ->method('findAll')
+ ->with(
+ $this->equalTo(2),
+ $this->equalTo(FeedType::FEED),
+ $this->equalTo(3),
+ $this->equalTo(0),
+ $this->equalTo(true),
+ $this->equalTo(false),
+ $this->equalTo($this->user))
+ ->will($this->returnValue($result['items']));
+
+ $response = $this->controller->index(FeedType::FEED, 2, 3);
+ $this->assertEquals($result, $response);
+ }
+
+
+ public function testItemsOffsetNotZero(){
+ $result = ['items' => [new Item()]];
+
+ $this->itemsApiExpects(2, FeedType::FEED);
+
+ $this->itemService->expects($this->once())
+ ->method('findAll')
+ ->with($this->equalTo(2),
+ $this->equalTo(FeedType::FEED),
+ $this->equalTo(3),
+ $this->equalTo(10),
+ $this->equalTo(true),
+ $this->equalTo(true),
+ $this->equalTo($this->user))
+ ->will($this->returnValue($result['items']));
+
+ $this->feedService->expects($this->never())
+ ->method('findAll');
+
+ $response = $this->controller->index(FeedType::FEED, 2, 3, 10);
+ $this->assertEquals($result, $response);
+ }
+
+
+ public function testGetItemsNoNewestItemsId(){
+ $this->itemsApiExpects(2, FeedType::FEED);
+
+ $this->itemService->expects($this->once())
+ ->method('getNewestItemId')
+ ->with($this->equalTo($this->user))
+ ->will($this->throwException(new ServiceNotFoundException('')));
+
+ $response = $this->controller->index(FeedType::FEED, 2, 3);
+ $this->assertEquals([], $response);
+ }
+
+
+ public function testNewItems(){
+ $feeds = [new Feed()];
+ $result = [
+ 'items' => [new Item()],
+ 'feeds' => $feeds,
+ 'newestItemId' => $this->newestItemId,
+ 'starred' => 3111
+ ];
+
+ $this->settings->expects($this->once())
+ ->method('getUserValue')
+ ->with($this->equalTo($this->user),
+ $this->equalTo($this->appName),
+ $this->equalTo('showAll'))
+ ->will($this->returnValue('1'));
+
+ $this->feedService->expects($this->once())
+ ->method('findAll')
+ ->with($this->equalTo($this->user))
+ ->will($this->returnValue($feeds));
+
+ $this->itemService->expects($this->once())
+ ->method('getNewestItemId')
+ ->with($this->equalTo($this->user))
+ ->will($this->returnValue($this->newestItemId));
+
+ $this->itemService->expects($this->once())
+ ->method('starredCount')
+ ->with($this->equalTo($this->user))
+ ->will($this->returnValue(3111));
+
+ $this->itemService->expects($this->once())
+ ->method('findAllNew')
+ ->with(
+ $this->equalTo(2),
+ $this->equalTo(FeedType::FEED),
+ $this->equalTo(3),
+ $this->equalTo(true),
+ $this->equalTo($this->user))
+ ->will($this->returnValue($result['items']));
+
+ $response = $this->controller->newItems(FeedType::FEED, 2, 3);
+ $this->assertEquals($result, $response);
+ }
+
+
+ public function testGetNewItemsNoNewestItemsId(){
+ $this->settings->expects($this->once())
+ ->method('getUserValue')
+ ->with($this->equalTo($this->user),
+ $this->equalTo($this->appName),
+ $this->equalTo('showAll'))
+ ->will($this->returnValue('1'));
+
+ $this->itemService->expects($this->once())
+ ->method('getNewestItemId')
+ ->with($this->equalTo($this->user))
+ ->will($this->throwException(new ServiceNotFoundException('')));
+
+ $response = $this->controller->newItems(FeedType::FEED, 2, 3);
+ $this->assertEquals([], $response);
+ }
} \ No newline at end of file