diff options
author | Bernhard Posselt <nukeawhale@gmail.com> | 2013-05-10 13:30:00 +0200 |
---|---|---|
committer | Bernhard Posselt <nukeawhale@gmail.com> | 2013-05-10 13:30:00 +0200 |
commit | 347000cc2d5597c1971942ebdbe97461c9fa5802 (patch) | |
tree | 8a2f6dc166ad871c646b4cf8bf13f4a9fcd02e55 /tests/unit/businesslayer | |
parent | c487bfe23312a5b266d8eb21a3825ab791a1c3e8 (diff) |
use a deleted flag for deleted feeds to handle undo
Diffstat (limited to 'tests/unit/businesslayer')
-rw-r--r-- | tests/unit/businesslayer/FeedBusinessLayerTest.php | 161 | ||||
-rw-r--r-- | tests/unit/businesslayer/FolderBusinessLayerTest.php | 79 |
2 files changed, 186 insertions, 54 deletions
diff --git a/tests/unit/businesslayer/FeedBusinessLayerTest.php b/tests/unit/businesslayer/FeedBusinessLayerTest.php index 34a6030e4..882106693 100644 --- a/tests/unit/businesslayer/FeedBusinessLayerTest.php +++ b/tests/unit/businesslayer/FeedBusinessLayerTest.php @@ -38,8 +38,8 @@ use \OCA\News\Utility\ImportParser; class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { - private $mapper; - private $businessLayer; + private $feedMapper; + private $feedBusinessLayer; private $user; private $response; private $fetcher; @@ -47,10 +47,12 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { private $threshold; private $time; private $importParser; + private $autoPurgeMinimumInterval; protected function setUp(){ $this->api = $this->getAPIMock(); $this->time = 222; + $this->autoPurgeMinimumInterval = 10; $timeFactory = $this->getMockBuilder( '\OCA\AppFramework\Utility\TimeFactory') ->disableOriginalConstructor() @@ -58,7 +60,7 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { $timeFactory->expects($this->any()) ->method('getTime') ->will($this->returnValue($this->time)); - $this->mapper = $this->getMockBuilder('\OCA\News\Db\FeedMapper') + $this->feedMapper = $this->getMockBuilder('\OCA\News\Db\FeedMapper') ->disableOriginalConstructor() ->getMock(); $this->fetcher = $this->getMockBuilder('\OCA\News\Utility\Fetcher') @@ -70,21 +72,21 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { $this->importParser = $this->getMockBuilder('\OCA\News\Utility\ImportParser') ->disableOriginalConstructor() ->getMock(); - $this->businessLayer = new FeedBusinessLayer($this->mapper, + $this->feedBusinessLayer = new FeedBusinessLayer($this->feedMapper, $this->fetcher, $this->itemMapper, $this->api, - $timeFactory, $this->importParser); + $timeFactory, $this->importParser, $this->autoPurgeMinimumInterval); $this->user = 'jack'; $response = 'hi'; } public function testFindAll(){ - $this->mapper->expects($this->once()) + $this->feedMapper->expects($this->once()) ->method('findAllFromUser') ->with($this->equalTo($this->user)) ->will($this->returnValue($this->response)); - $result = $this->businessLayer->findAll($this->user); + $result = $this->feedBusinessLayer->findAll($this->user); $this->assertEquals($this->response, $result); } @@ -98,7 +100,7 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { $this->api->expects($this->once()) ->method('getTrans') ->will($this->returnValue($trans)); - $this->mapper->expects($this->once()) + $this->feedMapper->expects($this->once()) ->method('findByUrlHash') ->with($this->equalTo(md5($url)), $this->equalTo($this->user)) ->will($this->throwException(new DoesNotExistException('yo'))); @@ -107,7 +109,7 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { ->with($this->equalTo($url)) ->will($this->throwException($ex)); $this->setExpectedException('\OCA\News\BusinessLayer\BusinessLayerException'); - $this->businessLayer->create($url, 1, $this->user); + $this->feedBusinessLayer->create($url, 1, $this->user); } public function testCreate(){ @@ -125,7 +127,7 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { array($item1, $item2) ); - $this->mapper->expects($this->once()) + $this->feedMapper->expects($this->once()) ->method('findByUrlHash') ->with($this->equalTo(md5($url)), $this->equalTo($this->user)) ->will($this->throwException($ex)); @@ -133,7 +135,7 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { ->method('fetch') ->with($this->equalTo($url)) ->will($this->returnValue($return)); - $this->mapper->expects($this->once()) + $this->feedMapper->expects($this->once()) ->method('insert') ->with($this->equalTo($createdFeed)) ->will($this->returnValue($createdFeed)); @@ -158,7 +160,7 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { ->method('insert') ->with($this->equalTo($return[1][0])); - $feed = $this->businessLayer->create($url, $folderId, $this->user); + $feed = $this->feedBusinessLayer->create($url, $folderId, $this->user); $this->assertEquals($feed->getFolderId(), $folderId); $this->assertEquals($feed->getUrl(), $url); @@ -180,7 +182,7 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { array($item1, $item2) ); - $this->mapper->expects($this->once()) + $this->feedMapper->expects($this->once()) ->method('findByUrlHash') ->with($this->equalTo(md5($url)), $this->equalTo($this->user)) ->will($this->throwException($ex)); @@ -188,7 +190,7 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { ->method('fetch') ->with($this->equalTo($url)) ->will($this->returnValue($return)); - $this->mapper->expects($this->once()) + $this->feedMapper->expects($this->once()) ->method('insert') ->with($this->equalTo($createdFeed)) ->will($this->returnValue($createdFeed)); @@ -209,7 +211,7 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { $this->equalTo($item1->getFeedId()), $this->equalTo($this->user)); - $feed = $this->businessLayer->create($url, $folderId, $this->user); + $feed = $this->feedBusinessLayer->create($url, $folderId, $this->user); $this->assertEquals($feed->getFolderId(), $folderId); $this->assertEquals($feed->getUrl(), $url); @@ -233,7 +235,7 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { $fetchReturn = array($feed, $items); - $this->mapper->expects($this->at(0)) + $this->feedMapper->expects($this->at(0)) ->method('find') ->with($this->equalTo($feed->getId()), $this->equalTo($this->user)) @@ -251,12 +253,12 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { ->method('insert') ->with($this->equalTo($items[0])); - $this->mapper->expects($this->at(1)) + $this->feedMapper->expects($this->at(1)) ->method('find') ->with($feed->getId(), $this->user) ->will($this->returnValue($feed)); - $return = $this->businessLayer->update($feed->getId(), $this->user); + $return = $this->feedBusinessLayer->update($feed->getId(), $this->user); $this->assertEquals($return, $feed); } @@ -276,7 +278,7 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { $fetchReturn = array($feed, $items); - $this->mapper->expects($this->at(0)) + $this->feedMapper->expects($this->at(0)) ->method('find') ->with($this->equalTo($feed->getId()), $this->equalTo($this->user)) @@ -295,12 +297,12 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { $this->itemMapper->expects($this->never()) ->method('delete'); - $this->mapper->expects($this->at(1)) + $this->feedMapper->expects($this->at(1)) ->method('find') ->with($feed->getId(), $this->user) ->will($this->returnValue($feed)); - $return = $this->businessLayer->update($feed->getId(), $this->user); + $return = $this->feedBusinessLayer->update($feed->getId(), $this->user); $this->assertEquals($return, $feed); } @@ -323,7 +325,7 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { $fetchReturn = array($feed, $items); - $this->mapper->expects($this->at(0)) + $this->feedMapper->expects($this->at(0)) ->method('find') ->with($this->equalTo($feed->getId()), $this->equalTo($this->user)) @@ -342,12 +344,12 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { $this->itemMapper->expects($this->never()) ->method('delete'); - $this->mapper->expects($this->at(1)) + $this->feedMapper->expects($this->at(1)) ->method('find') ->with($feed->getId(), $this->user) ->will($this->returnValue($feed)); - $return = $this->businessLayer->update($feed->getId(), $this->user); + $return = $this->feedBusinessLayer->update($feed->getId(), $this->user); $this->assertEquals($return, $feed); } @@ -369,7 +371,7 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { $fetchReturn = array($feed, $items); - $this->mapper->expects($this->at(0)) + $this->feedMapper->expects($this->at(0)) ->method('find') ->with($this->equalTo($feed->getId()), $this->equalTo($this->user)) @@ -388,12 +390,12 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { $this->itemMapper->expects($this->never()) ->method('delete'); - $this->mapper->expects($this->at(1)) + $this->feedMapper->expects($this->at(1)) ->method('find') ->with($feed->getId(), $this->user) ->will($this->returnValue($feed)); - $return = $this->businessLayer->update($feed->getId(), $this->user); + $return = $this->feedBusinessLayer->update($feed->getId(), $this->user); $this->assertEquals($return, $feed); } @@ -415,7 +417,7 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { $fetchReturn = array($feed, $items); - $this->mapper->expects($this->at(0)) + $this->feedMapper->expects($this->at(0)) ->method('find') ->with($this->equalTo($feed->getId()), $this->equalTo($this->user)) @@ -436,12 +438,12 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { ->method('insert') ->with($this->equalTo($item)); - $this->mapper->expects($this->at(1)) + $this->feedMapper->expects($this->at(1)) ->method('find') ->with($feed->getId(), $this->user) ->will($this->returnValue($feed)); - $return = $this->businessLayer->update($feed->getId(), $this->user); + $return = $this->feedBusinessLayer->update($feed->getId(), $this->user); $this->assertEquals($return, $feed); $this->assertTrue($item->isUnread()); @@ -454,7 +456,7 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { $feed->getUrl('test'); $ex = new FetcherException(''); - $this->mapper->expects($this->at(0)) + $this->feedMapper->expects($this->at(0)) ->method('find') ->with($this->equalTo($feed->getId()), $this->equalTo($this->user)) @@ -465,12 +467,12 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { $this->api->expects($this->any()) ->method('log'); - $this->mapper->expects($this->at(1)) + $this->feedMapper->expects($this->at(1)) ->method('find') ->with($feed->getId(), $this->user) ->will($this->returnValue($feed)); - $return = $this->businessLayer->update($feed->getId(), $this->user); + $return = $this->feedBusinessLayer->update($feed->getId(), $this->user); $this->assertEquals($return, $feed); } @@ -483,14 +485,14 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { $ex = new DoesNotExistException(''); - $this->mapper->expects($this->at(0)) + $this->feedMapper->expects($this->at(0)) ->method('find') ->with($this->equalTo($feed->getId()), $this->equalTo($this->user)) ->will($this->throwException($ex)); $this->setExpectedException('\OCA\News\BusinessLayer\BusinessLayerException'); - $return = $this->businessLayer->update($feed->getId(), $this->user); + $return = $this->feedBusinessLayer->update($feed->getId(), $this->user); } @@ -513,7 +515,7 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { $fetchReturn = array($feed, $items); $ex = new DoesNotExistException(''); - $this->mapper->expects($this->at(0)) + $this->feedMapper->expects($this->at(0)) ->method('find') ->with($this->equalTo($feed->getId()), $this->equalTo($this->user)) @@ -528,14 +530,14 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { $this->equalTo($this->user)) ->will($this->returnValue($item2));; - $this->mapper->expects($this->at(1)) + $this->feedMapper->expects($this->at(1)) ->method('find') ->with($this->equalTo($feed->getId()), $this->equalTo($this->user)) ->will($this->throwException($ex)); $this->setExpectedException('\OCA\News\BusinessLayer\BusinessLayerException'); - $return = $this->businessLayer->update($feed->getId(), $this->user); + $return = $this->feedBusinessLayer->update($feed->getId(), $this->user); } @@ -547,7 +549,7 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { $feed->setId($feedId); $feed->setPreventUpdate(true); - $this->mapper->expects($this->once()) + $this->feedMapper->expects($this->once()) ->method('find') ->with($this->equalTo($feedId), $this->equalTo($this->user)) @@ -555,7 +557,7 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { $this->fetcher->expects($this->never()) ->method('fetch'); - $this->businessLayer->update($feedId, $this->user); + $this->feedBusinessLayer->update($feedId, $this->user); } @@ -566,16 +568,16 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { $feed->setFolderId(16); $feed->setId($feedId); - $this->mapper->expects($this->once()) + $this->feedMapper->expects($this->once()) ->method('find') ->with($this->equalTo($feedId), $this->equalTo($this->user)) ->will($this->returnValue($feed)); - $this->mapper->expects($this->once()) + $this->feedMapper->expects($this->once()) ->method('update') ->with($this->equalTo($feed)); - $this->businessLayer->move($feedId, $folderId, $this->user); + $this->feedBusinessLayer->move($feedId, $folderId, $this->user); $this->assertEquals($folderId, $feed->getFolderId()); } @@ -597,15 +599,15 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { $items = array(new Item()); - $this->mapper->expects($this->at(0)) + $this->feedMapper->expects($this->at(0)) ->method('findByUrlHash') ->with($this->equalTo($urlHash), $this->equalTo($this->user)) ->will($this->throwException(new DoesNotExistException('hi'))); - $this->mapper->expects($this->at(1)) + $this->feedMapper->expects($this->at(1)) ->method('insert') ->will($this->returnValue($feed)); - $this->mapper->expects($this->at(2)) + $this->feedMapper->expects($this->at(2)) ->method('findByUrlHash') ->with($this->equalTo($urlHash), $this->equalTo($this->user)) @@ -619,7 +621,7 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { ->method('insert'); - $result = $this->businessLayer->importGoogleReaderJSON(array(), $this->user); + $result = $this->feedBusinessLayer->importGoogleReaderJSON(array(), $this->user); $this->assertEquals($feed, $result); } @@ -649,12 +651,12 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { $in = array(); - $this->mapper->expects($this->at(0)) + $this->feedMapper->expects($this->at(0)) ->method('findByUrlHash') ->with($this->equalTo($urlHash), $this->equalTo($this->user)) ->will($this->returnValue($feed)); - $this->mapper->expects($this->at(1)) + $this->feedMapper->expects($this->at(1)) ->method('findByUrlHash') ->with($this->equalTo($urlHash), $this->equalTo($this->user)) @@ -673,10 +675,69 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { ->method('insert') ->with($this->equalTo($savedItem)); - $result = $this->businessLayer->importGoogleReaderJSON($in, $this->user); + $result = $this->feedBusinessLayer->importGoogleReaderJSON($in, $this->user); $this->assertEquals($feed, $result); } + public function testMarkDeleted() { + $id = 3; + $feed = new Feed(); + $feed2 = new Feed(); + $feed2->setDeletedAt($this->time); + + $this->feedMapper->expects($this->once()) + ->method('find') + ->with($this->equalTo($id), $this->equalTo($this->user)) + ->will($this->returnValue($feed)); + $this->feedMapper->expects($this->once()) + ->method('update') + ->with($this->equalTo($feed2)); + + $this->feedBusinessLayer->markDeleted($id, $this->user); + } + + + public function testUnmarkDeleted() { + $id = 3; + $feed = new Feed(); + $feed2 = new Feed(); + $feed2->setDeletedAt(0); + + $this->feedMapper->expects($this->once()) + ->method('find') + ->with($this->equalTo($id), $this->equalTo($this->user)) + ->will($this->returnValue($feed)); + $this->feedMapper->expects($this->once()) + ->method('update') + ->with($this->equalTo($feed2)); + + $this->feedBusinessLayer->unmarkDeleted($id, $this->user); + } + + + public function testPurgeDeleted(){ + $feed1 = new Feed(); + $feed1->setId(3); + $feed2 = new Feed(); + $feed2->setId(5); + $feeds = array($feed1, $feed2); + + $time = $this->time - $this->autoPurgeMinimumInterval; + $this->feedMapper->expects($this->once()) + ->method('getToDelete') + ->with($this->equalTo($time), $this->equalTo($this->user)) + ->will($this->returnValue($feeds)); + $this->feedMapper->expects($this->at(1)) + ->method('delete') + ->with($this->equalTo($feed1)); + $this->feedMapper->expects($this->at(2)) + ->method('delete') + ->with($this->equalTo($feed2)); + + $this->feedBusinessLayer->purgeDeleted($this->user); + } + + } diff --git a/tests/unit/businesslayer/FolderBusinessLayerTest.php b/tests/unit/businesslayer/FolderBusinessLayerTest.php index ad4e188e4..1e26f0226 100644 --- a/tests/unit/businesslayer/FolderBusinessLayerTest.php +++ b/tests/unit/businesslayer/FolderBusinessLayerTest.php @@ -33,17 +33,31 @@ use \OCA\News\Db\Folder; class FolderBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { - protected $api; - protected $folderMapper; - protected $folderBusinessLayer; + private $folderMapper; + private $folderBusinessLayer; + private $time; + private $user; + private $autoPurgeMinimumInterval; protected function setUp(){ $this->api = $this->getAPIMock(); + $this->time = 222; + $timeFactory = $this->getMockBuilder( + '\OCA\AppFramework\Utility\TimeFactory') + ->disableOriginalConstructor() + ->getMock(); + $timeFactory->expects($this->any()) + ->method('getTime') + ->will($this->returnValue($this->time)); $this->folderMapper = $this->getMockBuilder( '\OCA\News\Db\FolderMapper') ->disableOriginalConstructor() ->getMock(); - $this->folderBusinessLayer = new FolderBusinessLayer($this->folderMapper, $this->api); + $this->autoPurgeMinimumInterval = 10; + $this->folderBusinessLayer = new FolderBusinessLayer( + $this->folderMapper, $this->api, $timeFactory, + $this->autoPurgeMinimumInterval); + $this->user = 'hi'; } @@ -161,4 +175,61 @@ class FolderBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility { } + public function testMarkDeleted() { + $id = 3; + $folder = new Folder(); + $folder2 = new Folder(); + $folder2->setDeletedAt($this->time); + + $this->folderMapper->expects($this->once()) + ->method('find') + ->with($this->equalTo($id), $this->equalTo($this->user)) + ->will($this->returnValue($folder)); + $this->folderMapper->expects($this->once()) + ->method('update') + ->with($this->equalTo($folder2)); + + $this->folderBusinessLayer->markDeleted($id, $this->user); + } + + + public function testUnmarkDeleted() { + $id = 3; + $folder = new Folder(); + $folder2 = new Folder(); + $folder2->setDeletedAt(0); + + $this->folderMapper->expects($this->once()) + ->method('find') + ->with($this->equalTo($id), $this->equalTo($this->user)) + ->will($this->returnValue($folder)); + $this->folderMapper->expects($this->once()) + ->method('update') + ->with($this->equalTo($folder2)); + + $this->folderBusinessLayer->unmarkDeleted($id, $this->user); + } + + public function testPurgeDeleted(){ + $folder1 = new Folder(); + $folder1->setId(3); + $folder2 = new Folder(); + $folder2->setId(5); + $feeds = array($folder1, $folder2); + + $time = $this->time - $this->autoPurgeMinimumInterval; + $this->folderMapper->expects($this->once()) + ->method('getToDelete') + ->with($this->equalTo($time), $this->equalTo($this->user)) + ->will($this->returnValue($feeds)); + $this->folderMapper->expects($this->at(1)) + ->method('delete') + ->with($this->equalTo($folder1)); + $this->folderMapper->expects($this->at(2)) + ->method('delete') + ->with($this->equalTo($folder2)); + + $this->folderBusinessLayer->purgeDeleted($this->user); + } + } |