X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2FWallabag%2FImportBundle%2FTests%2FImport%2FWallabagV2ImportTest.php;h=b0667c9ae063b8d323c3012bfbe61de9ef5f5a47;hb=f2e5fdc3666a2a6525b4202ab48df05efeebaf5c;hp=3268cd3e8a96057ae77b43c2c5c2757f97c837fc;hpb=9b5edf33a00490b033692efca9987a35225835ba;p=github%2Fwallabag%2Fwallabag.git diff --git a/src/Wallabag/ImportBundle/Tests/Import/WallabagV2ImportTest.php b/src/Wallabag/ImportBundle/Tests/Import/WallabagV2ImportTest.php index 3268cd3e..b0667c9a 100644 --- a/src/Wallabag/ImportBundle/Tests/Import/WallabagV2ImportTest.php +++ b/src/Wallabag/ImportBundle/Tests/Import/WallabagV2ImportTest.php @@ -4,6 +4,7 @@ namespace Wallabag\ImportBundle\Tests\Import; use Wallabag\ImportBundle\Import\WallabagV2Import; use Wallabag\UserBundle\Entity\User; +use Wallabag\CoreBundle\Entity\Entry; use Monolog\Logger; use Monolog\Handler\TestHandler; @@ -29,7 +30,7 @@ class WallabagV2ImportTest extends \PHPUnit_Framework_TestCase $wallabag = new WallabagV2Import($this->em, $this->contentProxy); $this->logHandler = new TestHandler(); - $logger = new Logger('test', array($this->logHandler)); + $logger = new Logger('test', [$this->logHandler]); $wallabag->setLogger($logger); if (false === $unsetUser) { @@ -45,7 +46,7 @@ class WallabagV2ImportTest extends \PHPUnit_Framework_TestCase $this->assertEquals('wallabag v2', $wallabagV2Import->getName()); $this->assertNotEmpty($wallabagV2Import->getUrl()); - $this->assertContains('This importer will import all your wallabag v2 articles.', $wallabagV2Import->getDescription()); + $this->assertEquals('import.wallabag_v2.description', $wallabagV2Import->getDescription()); } public function testImport() @@ -66,12 +67,55 @@ class WallabagV2ImportTest extends \PHPUnit_Framework_TestCase ->method('getRepository') ->willReturn($entryRepo); + $this->contentProxy + ->expects($this->exactly(2)) + ->method('updateEntry') + ->willReturn(new Entry($this->user)); + $res = $wallabagV2Import->import(); $this->assertTrue($res); $this->assertEquals(['skipped' => 1, 'imported' => 2], $wallabagV2Import->getSummary()); } + public function testImportAndMarkAllAsRead() + { + $wallabagV2Import = $this->getWallabagV2Import(); + $wallabagV2Import->setFilepath(__DIR__.'/../fixtures/wallabag-v2-read.json'); + + $entryRepo = $this->getMockBuilder('Wallabag\CoreBundle\Repository\EntryRepository') + ->disableOriginalConstructor() + ->getMock(); + + $entryRepo->expects($this->exactly(2)) + ->method('findByUrlAndUserId') + ->will($this->onConsecutiveCalls(false, false)); + + $this->em + ->expects($this->any()) + ->method('getRepository') + ->willReturn($entryRepo); + + $this->contentProxy + ->expects($this->exactly(2)) + ->method('updateEntry') + ->willReturn(new Entry($this->user)); + + // check that every entry persisted are archived + $this->em + ->expects($this->any()) + ->method('persist') + ->with($this->callback(function ($persistedEntry) { + return $persistedEntry->isArchived(); + })); + + $res = $wallabagV2Import->setMarkAsRead(true)->import(); + + $this->assertTrue($res); + + $this->assertEquals(['skipped' => 0, 'imported' => 2], $wallabagV2Import->getSummary()); + } + public function testImportBadFile() { $wallabagV1Import = $this->getWallabagV2Import();