namespace Tests\Wallabag\CoreBundle\Helper;
+use Monolog\Handler\TestHandler;
+use Monolog\Logger;
+use PHPUnit\Framework\TestCase;
use Wallabag\CoreBundle\Entity\Config;
use Wallabag\CoreBundle\Entity\Entry;
use Wallabag\CoreBundle\Entity\Tag;
use Wallabag\CoreBundle\Helper\RuleBasedTagger;
use Wallabag\UserBundle\Entity\User;
-class RuleBasedTaggerTest extends \PHPUnit_Framework_TestCase
+class RuleBasedTaggerTest extends TestCase
{
private $rulerz;
private $tagRepository;
private $entryRepository;
private $tagger;
+ private $logger;
+ private $handler;
public function setUp()
{
$this->rulerz = $this->getRulerZMock();
$this->tagRepository = $this->getTagRepositoryMock();
$this->entryRepository = $this->getEntryRepositoryMock();
+ $this->logger = $this->getLogger();
+ $this->handler = new TestHandler();
+ $this->logger->pushHandler($this->handler);
- $this->tagger = new RuleBasedTagger($this->rulerz, $this->tagRepository, $this->entryRepository);
+ $this->tagger = new RuleBasedTagger($this->rulerz, $this->tagRepository, $this->entryRepository, $this->logger);
}
public function testTagWithNoRule()
$this->tagger->tag($entry);
$this->assertTrue($entry->getTags()->isEmpty());
+ $records = $this->handler->getRecords();
+ $this->assertCount(0, $records);
}
public function testTagWithNoMatchingRule()
$this->tagger->tag($entry);
$this->assertTrue($entry->getTags()->isEmpty());
+ $records = $this->handler->getRecords();
+ $this->assertCount(0, $records);
}
public function testTagWithAMatchingRule()
$tags = $entry->getTags();
$this->assertSame('foo', $tags[0]->getLabel());
$this->assertSame('bar', $tags[1]->getLabel());
+
+ $records = $this->handler->getRecords();
+ $this->assertCount(1, $records);
}
public function testTagWithAMixOfMatchingRules()
$tags = $entry->getTags();
$this->assertSame('foo', $tags[0]->getLabel());
+ $records = $this->handler->getRecords();
+ $this->assertCount(1, $records);
}
public function testWhenTheTagExists()
$tags = $entry->getTags();
$this->assertSame($tag, $tags[0]);
+ $records = $this->handler->getRecords();
+ $this->assertCount(1, $records);
}
public function testSameTagWithDifferentfMatchingRules()
$tags = $entry->getTags();
$this->assertCount(1, $tags);
+ $records = $this->handler->getRecords();
+ $this->assertCount(2, $records);
}
public function testTagAllEntriesForAUser()
$tags = $entry->getTags();
$this->assertCount(1, $tags);
- $this->assertEquals('hey', $tags[0]->getLabel());
+ $this->assertSame('hey', $tags[0]->getLabel());
}
}
->disableOriginalConstructor()
->getMock();
}
+
+ private function getLogger()
+ {
+ return new Logger('foo');
+ }
}