public function testFind() { $feedId = $this->feeds['first feed']->getId(); $item = new Item(); $item->setTitle('my title thats long'); $item->setGuid('a doner'); $item->setGuidHash('a doner'); $item->setFeedId($feedId); $item->setUnread(); $item->setBody('Döner'); $created = $this->itemMapper->insert($item); $fetched = $this->itemMapper->find($created->getId(), $this->userId); $this->assertEquals($item->getTitle(), $fetched->getTitle()); $this->assertEquals($item->getGuid(), $fetched->getGuid()); $this->assertEquals($item->getGuidHash(), $fetched->getGuidHash()); $this->assertEquals($item->getFeedId(), $fetched->getFeedId()); $this->assertEquals($item->isRead(), $fetched->isRead()); $this->assertEquals('Döner', $fetched->getBody()); }
public function testGetAllArticles() { $item1 = new Item(); $item1->setFeedId(3); $item2 = new Item(); $item2->setFeedId(5); $feed1 = new Feed(); $feed1->setId(3); $feed1->setLink('http://goo'); $feed2 = new Feed(); $feed2->setId(5); $feed2->setLink('http://gee'); $feeds = array($feed1, $feed2); $articles = array($item1, $item2); $this->feedBusinessLayer->expects($this->once())->method('findAll')->with($this->equalTo($this->user))->will($this->returnValue($feeds)); $this->itemBusinessLayer->expects($this->once())->method('getUnreadOrStarred')->with($this->equalTo($this->user))->will($this->returnValue($articles)); $return = $this->controller->articles(); $headers = $return->getHeaders(); $this->assertEquals('attachment; filename="articles.json"', $headers['Content-Disposition']); $this->assertEquals('[{"guid":null,"url":null,"title":null,' . '"author":null,"pubDate":null,"body":null,"enclosureMime":null,' . '"enclosureLink":null,"unread":false,"starred":false,' . '"feedLink":"http:\\/\\/goo"},{"guid":null,"url":null,"title":null,' . '"author":null,"pubDate":null,"body":null,"enclosureMime":null,' . '"enclosureLink":null,"unread":false,"starred":false,' . '"feedLink":"http:\\/\\/gee"}]', $return->render()); }
public function testImportArticlesCreatesOwnFeedWhenNotFound() { $url = 'http://owncloud/args'; $feed = new Feed(); $feed->setId(3); $feed->setUserId($this->user); $feed->setUrl($url); $feed->setLink($url); $feed->setTitle('Articles without feed'); $feed->setAdded($this->time); $feed->setFolderId(0); $feed->setPreventUpdate(true); $feeds = [$feed]; $item = new Item(); $item->setFeedId(3); $item->setAuthor('john'); $item->setGuid('s'); $item->setGuidHash('s'); $item->setTitle('hey'); $item->setPubDate(333); $item->setBody('come over'); $item->setEnclosureMime('mime'); $item->setEnclosureLink('lin'); $item->setUnread(); $item->setUnstarred(); $item->setLastModified($this->time); $json = $item->toExport(['feed3' => $feed]); $json2 = $json; // believe it or not this copies stuff :D $json2['feedLink'] = 'http://test.com'; $items = [$json, $json2]; $insertFeed = new Feed(); $insertFeed->setLink('http://owncloud/nofeed'); $insertFeed->setUrl('http://owncloud/nofeed'); $insertFeed->setUserId($this->user); $insertFeed->setTitle('Articles without feed'); $insertFeed->setAdded($this->time); $insertFeed->setPreventUpdate(true); $insertFeed->setFolderId(0); $this->l10n->expects($this->once())->method('t')->will($this->returnValue('Articles without feed')); $this->feedMapper->expects($this->once())->method('findAllFromUser')->with($this->equalTo($this->user))->will($this->returnValue($feeds)); $this->feedMapper->expects($this->once())->method('insert')->with($this->equalTo($insertFeed))->will($this->returnValue($insertFeed)); $this->itemMapper->expects($this->at(0))->method('findByGuidHash')->will($this->throwException(new DoesNotExistException('yo'))); $this->purifier->expects($this->once())->method('purify')->with($this->equalTo($item->getBody()))->will($this->returnValue($item->getBody())); $this->itemMapper->expects($this->at(1))->method('insert')->with($this->equalTo($item)); $this->itemMapper->expects($this->at(2))->method('findByGuidHash')->will($this->returnValue($item)); $this->itemMapper->expects($this->at(3))->method('update')->with($this->equalTo($item)); $this->feedMapper->expects($this->once())->method('findByUrlHash')->will($this->returnValue($feed)); $result = $this->feedService->importArticles($items, $this->user); $this->assertEquals($feed, $result); }
private function createItem($item) { $newItem = new Item(); $newItem->setFeedId($item['feedId']); $newItem->setStatus($item['status']); $newItem->setBody($item['body']); $newItem->setTitle($item['title']); $newItem->setAuthor($item['author']); $newItem->setGuid($item['guid']); $newItem->setGuidHash($item['guid']); $newItem->setUrl($item['url']); $newItem->setPubDate($item['pubDate']); $newItem->setLastModified($item['lastModified']); $newItem->setEnclosureMime($item['enclosureMime']); $newItem->setEnclosureLink($item['enclosureLink']); return $this->itemMapper->insert($newItem); }