Created API tests for errors when getting short URL visits

This commit is contained in:
Alejandro Celaya
2019-11-20 20:58:16 +01:00
parent d044e1a5b7
commit 34e60ec5b8
5 changed files with 34 additions and 15 deletions

View File

@@ -9,15 +9,13 @@ use Psr\EventDispatcher\EventDispatcherInterface;
use Shlinkio\Shlink\Core\Entity\ShortUrl;
use Shlinkio\Shlink\Core\Entity\Visit;
use Shlinkio\Shlink\Core\EventDispatcher\ShortUrlVisited;
use Shlinkio\Shlink\Core\Exception\InvalidArgumentException;
use Shlinkio\Shlink\Core\Exception\InvalidShortCodeException;
use Shlinkio\Shlink\Core\Model\Visitor;
use Shlinkio\Shlink\Core\Model\VisitsParams;
use Shlinkio\Shlink\Core\Paginator\Adapter\VisitsPaginatorAdapter;
use Shlinkio\Shlink\Core\Repository\VisitRepository;
use Zend\Paginator\Paginator;
use function sprintf;
class VisitsTracker implements VisitsTrackerInterface
{
/** @var ORM\EntityManagerInterface */
@@ -53,14 +51,14 @@ class VisitsTracker implements VisitsTrackerInterface
* Returns the visits on certain short code
*
* @return Visit[]|Paginator
* @throws InvalidArgumentException
* @throws InvalidShortCodeException
*/
public function info(string $shortCode, VisitsParams $params): Paginator
{
/** @var ORM\EntityRepository $repo */
$repo = $this->em->getRepository(ShortUrl::class);
if ($repo->count(['shortCode' => $shortCode]) < 1) {
throw new InvalidArgumentException(sprintf('Short code "%s" not found', $shortCode));
throw InvalidShortCodeException::fromNotFoundShortCode($shortCode);
}
/** @var VisitRepository $repo */

View File

@@ -5,7 +5,7 @@ declare(strict_types=1);
namespace Shlinkio\Shlink\Core\Service;
use Shlinkio\Shlink\Core\Entity\Visit;
use Shlinkio\Shlink\Core\Exception\InvalidArgumentException;
use Shlinkio\Shlink\Core\Exception\InvalidShortCodeException;
use Shlinkio\Shlink\Core\Model\Visitor;
use Shlinkio\Shlink\Core\Model\VisitsParams;
use Zend\Paginator\Paginator;
@@ -21,7 +21,7 @@ interface VisitsTrackerInterface
* Returns the visits on certain short code
*
* @return Visit[]|Paginator
* @throws InvalidArgumentException
* @throws InvalidShortCodeException
*/
public function info(string $shortCode, VisitsParams $params): Paginator;
}