Improved repository tests

This commit is contained in:
Alejandro Celaya 2018-12-02 19:13:49 +01:00
parent d4924897b2
commit a7a5667301
7 changed files with 34 additions and 4 deletions

View file

@ -22,6 +22,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
* [#267](https://github.com/shlinkio/shlink/issues/267) API responses and the CLI interface is no longer translated and uses english always. Only not found error templates are still translated.
* [#289](https://github.com/shlinkio/shlink/issues/289) Extracted coding standard rules to a separated package.
* [#273](https://github.com/shlinkio/shlink/issues/273) Improved code coverage in repository classes.
#### Deprecated

View file

@ -119,7 +119,7 @@
"test:pretty": [
"@test",
"phpcov merge build --html build/html"
"phpdbg -qrr vendor/bin/phpcov merge build --html build/html"
],
"test:unit:pretty": "phpdbg -qrr vendor/bin/phpunit --coverage-html build/coverage --order-by=random",

View file

@ -1,2 +1,9 @@
#!/usr/bin/env bash
# Run docker containers if they are not up yet
if [[ $(docker ps | grep shlink_swoole) ]]; then :
else
docker-compose up -d
fi
docker exec -it shlink_swoole /bin/sh -c "$*"

View file

@ -14,7 +14,7 @@ class TagRepository extends EntityRepository implements TagRepositoryInterface
* @param array $names
* @return int The number of affected entries
*/
public function deleteByName(array $names)
public function deleteByName(array $names): int
{
if (empty($names)) {
return 0;

View file

@ -13,5 +13,5 @@ interface TagRepositoryInterface extends ObjectRepository
* @param array $names
* @return int The number of affected entries
*/
public function deleteByName(array $names);
public function deleteByName(array $names): int;
}

View file

@ -76,6 +76,7 @@ class ShortUrlRepositoryTest extends DatabaseTestCase
$this->getEntityManager()->flush();
$this->assertEquals($count, $this->repo->countList());
$this->assertEquals($count, $this->repo->countList());
}
/**
@ -92,7 +93,10 @@ class ShortUrlRepositoryTest extends DatabaseTestCase
$this->getEntityManager()->persist($foo);
$bar = new ShortUrl('bar');
$bar->setShortCode('bar_very_long_text');
$visit = new Visit($bar, Visitor::emptyInstance());
$this->getEntityManager()->persist($visit);
$bar->setShortCode('bar_very_long_text')
->setVisits(new ArrayCollection([$visit]));
$this->getEntityManager()->persist($bar);
$foo2 = new ShortUrl('foo_2');
@ -104,6 +108,22 @@ class ShortUrlRepositoryTest extends DatabaseTestCase
$result = $this->repo->findList(null, null, 'foo', ['bar']);
$this->assertCount(1, $result);
$this->assertSame($foo, $result[0]);
$result = $this->repo->findList();
$this->assertCount(3, $result);
$result = $this->repo->findList(2);
$this->assertCount(2, $result);
$result = $this->repo->findList(2, 1);
$this->assertCount(2, $result);
$result = $this->repo->findList(2, 2);
$this->assertCount(1, $result);
$result = $this->repo->findList(null, null, null, [], ['visits' => 'DESC']);
$this->assertCount(3, $result);
$this->assertSame($bar, $result[0]);
}
/**

View file

@ -82,6 +82,8 @@ class VisitRepositoryTest extends DatabaseTestCase
$this->assertCount(4, $this->repo->findVisitsByShortCode($shortUrl->getShortCode(), new DateRange(
Chronos::parse('2016-01-03')
)));
$this->assertCount(3, $this->repo->findVisitsByShortCode($shortUrl->getShortCode(), null, 3, 2));
$this->assertCount(2, $this->repo->findVisitsByShortCode($shortUrl->getShortCode(), null, 5, 4));
}
/**