mirror of
https://github.com/shlinkio/shlink.git
synced 2025-03-14 04:00:57 +03:00
Fix DB tests
This commit is contained in:
parent
26f237069c
commit
4dfc5ae681
3 changed files with 57 additions and 50 deletions
|
@ -54,7 +54,7 @@ class ShortUrlListRepositoryTest extends DatabaseTestCase
|
|||
public function findListProperlyFiltersResult(): void
|
||||
{
|
||||
$foo = ShortUrl::create(
|
||||
ShortUrlCreation::fromRawData(['longUrl' => 'foo', 'tags' => ['https://bar']]),
|
||||
ShortUrlCreation::fromRawData(['longUrl' => 'https://foo', 'tags' => ['bar']]),
|
||||
$this->relationResolver,
|
||||
);
|
||||
$this->getEntityManager()->persist($foo);
|
||||
|
|
|
@ -108,9 +108,9 @@ class ShortUrlRepositoryTest extends DatabaseTestCase
|
|||
);
|
||||
$this->getEntityManager()->persist($shortUrlWithoutDomain);
|
||||
|
||||
$shortUrlWithDomain = ShortUrl::create(
|
||||
ShortUrlCreation::fromRawData(['domain' => 's.test', 'customSlug' => 'another-slug', 'longUrl' => 'foo']),
|
||||
);
|
||||
$shortUrlWithDomain = ShortUrl::create(ShortUrlCreation::fromRawData(
|
||||
['domain' => 's.test', 'customSlug' => 'another-slug', 'longUrl' => 'https://foo'],
|
||||
));
|
||||
$this->getEntityManager()->persist($shortUrlWithDomain);
|
||||
|
||||
$this->getEntityManager()->flush();
|
||||
|
@ -133,13 +133,13 @@ class ShortUrlRepositoryTest extends DatabaseTestCase
|
|||
public function findOneLooksForShortUrlInProperSetOfTables(): void
|
||||
{
|
||||
$shortUrlWithoutDomain = ShortUrl::create(
|
||||
ShortUrlCreation::fromRawData(['customSlug' => 'my-cool-slug', 'longUrl' => 'foo']),
|
||||
ShortUrlCreation::fromRawData(['customSlug' => 'my-cool-slug', 'longUrl' => 'https://foo']),
|
||||
);
|
||||
$this->getEntityManager()->persist($shortUrlWithoutDomain);
|
||||
|
||||
$shortUrlWithDomain = ShortUrl::create(
|
||||
ShortUrlCreation::fromRawData(['domain' => 's.test', 'customSlug' => 'another-slug', 'longUrl' => 'foo']),
|
||||
);
|
||||
$shortUrlWithDomain = ShortUrl::create(ShortUrlCreation::fromRawData(
|
||||
['domain' => 's.test', 'customSlug' => 'another-slug', 'longUrl' => 'https://foo'],
|
||||
));
|
||||
$this->getEntityManager()->persist($shortUrlWithDomain);
|
||||
|
||||
$this->getEntityManager()->flush();
|
||||
|
@ -159,14 +159,14 @@ class ShortUrlRepositoryTest extends DatabaseTestCase
|
|||
#[Test]
|
||||
public function findOneMatchingReturnsNullForNonExistingShortUrls(): void
|
||||
{
|
||||
self::assertNull($this->repo->findOneMatching(ShortUrlCreation::fromRawData(['longUrl' => 'foobar'])));
|
||||
self::assertNull($this->repo->findOneMatching(ShortUrlCreation::fromRawData(['longUrl' => 'https://foobar'])));
|
||||
self::assertNull($this->repo->findOneMatching(
|
||||
ShortUrlCreation::fromRawData(['longUrl' => 'foobar', 'tags' => ['foo', 'bar']]),
|
||||
ShortUrlCreation::fromRawData(['longUrl' => 'https://foobar', 'tags' => ['foo', 'bar']]),
|
||||
));
|
||||
self::assertNull($this->repo->findOneMatching(ShortUrlCreation::fromRawData([
|
||||
'validSince' => Chronos::parse('2020-03-05 20:18:30'),
|
||||
'customSlug' => 'this_slug_does_not_exist',
|
||||
'longUrl' => 'foobar',
|
||||
'longUrl' => 'https://foobar',
|
||||
'tags' => ['foo', 'bar'],
|
||||
])));
|
||||
}
|
||||
|
@ -177,49 +177,54 @@ class ShortUrlRepositoryTest extends DatabaseTestCase
|
|||
$start = Chronos::parse('2020-03-05 20:18:30');
|
||||
$end = Chronos::parse('2021-03-05 20:18:30');
|
||||
|
||||
$shortUrl = ShortUrl::create(
|
||||
ShortUrlCreation::fromRawData(['validSince' => $start, 'longUrl' => 'foo', 'tags' => ['foo', 'bar']]),
|
||||
$this->relationResolver,
|
||||
);
|
||||
$shortUrl = ShortUrl::create(ShortUrlCreation::fromRawData(
|
||||
['validSince' => $start, 'longUrl' => 'https://foo', 'tags' => ['foo', 'bar']],
|
||||
), $this->relationResolver);
|
||||
$this->getEntityManager()->persist($shortUrl);
|
||||
|
||||
$shortUrl2 = ShortUrl::create(ShortUrlCreation::fromRawData(['validUntil' => $end, 'longUrl' => 'bar']));
|
||||
$shortUrl2 = ShortUrl::create(
|
||||
ShortUrlCreation::fromRawData(['validUntil' => $end, 'longUrl' => 'https://bar']),
|
||||
);
|
||||
$this->getEntityManager()->persist($shortUrl2);
|
||||
|
||||
$shortUrl3 = ShortUrl::create(
|
||||
ShortUrlCreation::fromRawData(['validSince' => $start, 'validUntil' => $end, 'longUrl' => 'baz']),
|
||||
ShortUrlCreation::fromRawData(['validSince' => $start, 'validUntil' => $end, 'longUrl' => 'https://baz']),
|
||||
);
|
||||
$this->getEntityManager()->persist($shortUrl3);
|
||||
|
||||
$shortUrl4 = ShortUrl::create(
|
||||
ShortUrlCreation::fromRawData(['customSlug' => 'custom', 'validUntil' => $end, 'longUrl' => 'foo']),
|
||||
ShortUrlCreation::fromRawData(['customSlug' => 'custom', 'validUntil' => $end, 'longUrl' => 'https://foo']),
|
||||
);
|
||||
$this->getEntityManager()->persist($shortUrl4);
|
||||
|
||||
$shortUrl5 = ShortUrl::create(ShortUrlCreation::fromRawData(['maxVisits' => 3, 'longUrl' => 'foo']));
|
||||
$shortUrl5 = ShortUrl::create(ShortUrlCreation::fromRawData(['maxVisits' => 3, 'longUrl' => 'https://foo']));
|
||||
$this->getEntityManager()->persist($shortUrl5);
|
||||
|
||||
$shortUrl6 = ShortUrl::create(ShortUrlCreation::fromRawData(['domain' => 's.test', 'longUrl' => 'foo']));
|
||||
$shortUrl6 = ShortUrl::create(
|
||||
ShortUrlCreation::fromRawData(['domain' => 's.test', 'longUrl' => 'https://foo']),
|
||||
);
|
||||
$this->getEntityManager()->persist($shortUrl6);
|
||||
|
||||
$this->getEntityManager()->flush();
|
||||
|
||||
self::assertSame(
|
||||
$shortUrl,
|
||||
$this->repo->findOneMatching(
|
||||
ShortUrlCreation::fromRawData(['validSince' => $start, 'longUrl' => 'foo', 'tags' => ['foo', 'bar']]),
|
||||
),
|
||||
$this->repo->findOneMatching(ShortUrlCreation::fromRawData(
|
||||
['validSince' => $start, 'longUrl' => 'https://foo', 'tags' => ['foo', 'bar']]
|
||||
)),
|
||||
);
|
||||
self::assertSame(
|
||||
$shortUrl2,
|
||||
$this->repo->findOneMatching(ShortUrlCreation::fromRawData(['validUntil' => $end, 'longUrl' => 'bar'])),
|
||||
$this->repo->findOneMatching(
|
||||
ShortUrlCreation::fromRawData(['validUntil' => $end, 'longUrl' => 'https://bar']),
|
||||
),
|
||||
);
|
||||
self::assertSame(
|
||||
$shortUrl3,
|
||||
$this->repo->findOneMatching(ShortUrlCreation::fromRawData([
|
||||
'validSince' => $start,
|
||||
'validUntil' => $end,
|
||||
'longUrl' => 'baz',
|
||||
'longUrl' => 'https://baz',
|
||||
])),
|
||||
);
|
||||
self::assertSame(
|
||||
|
@ -227,16 +232,18 @@ class ShortUrlRepositoryTest extends DatabaseTestCase
|
|||
$this->repo->findOneMatching(ShortUrlCreation::fromRawData([
|
||||
'customSlug' => 'custom',
|
||||
'validUntil' => $end,
|
||||
'longUrl' => 'foo',
|
||||
'longUrl' => 'https://foo',
|
||||
])),
|
||||
);
|
||||
self::assertSame(
|
||||
$shortUrl5,
|
||||
$this->repo->findOneMatching(ShortUrlCreation::fromRawData(['maxVisits' => 3, 'longUrl' => 'foo'])),
|
||||
$this->repo->findOneMatching(ShortUrlCreation::fromRawData(['maxVisits' => 3, 'longUrl' => 'https://foo'])),
|
||||
);
|
||||
self::assertSame(
|
||||
$shortUrl6,
|
||||
$this->repo->findOneMatching(ShortUrlCreation::fromRawData(['domain' => 's.test', 'longUrl' => 'foo'])),
|
||||
$this->repo->findOneMatching(
|
||||
ShortUrlCreation::fromRawData(['domain' => 's.test', 'longUrl' => 'https://foo']),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -246,7 +253,7 @@ class ShortUrlRepositoryTest extends DatabaseTestCase
|
|||
$start = Chronos::parse('2020-03-05 20:18:30');
|
||||
$tags = ['foo', 'bar'];
|
||||
$meta = ShortUrlCreation::fromRawData(
|
||||
['validSince' => $start, 'maxVisits' => 50, 'longUrl' => 'foo', 'tags' => $tags],
|
||||
['validSince' => $start, 'maxVisits' => 50, 'longUrl' => 'https://foo', 'tags' => $tags],
|
||||
);
|
||||
|
||||
$shortUrl1 = ShortUrl::create($meta, $this->relationResolver);
|
||||
|
@ -295,14 +302,14 @@ class ShortUrlRepositoryTest extends DatabaseTestCase
|
|||
'validSince' => $start,
|
||||
'apiKey' => $apiKey,
|
||||
'domain' => $rightDomain->authority,
|
||||
'longUrl' => 'foo',
|
||||
'longUrl' => 'https://foo',
|
||||
'tags' => ['foo', 'bar'],
|
||||
]), $this->relationResolver);
|
||||
$this->getEntityManager()->persist($shortUrl);
|
||||
|
||||
$nonDomainShortUrl = ShortUrl::create(ShortUrlCreation::fromRawData([
|
||||
'apiKey' => $apiKey,
|
||||
'longUrl' => 'non-domain',
|
||||
'longUrl' => 'https://non-domain',
|
||||
]), $this->relationResolver);
|
||||
$this->getEntityManager()->persist($nonDomainShortUrl);
|
||||
|
||||
|
@ -310,26 +317,26 @@ class ShortUrlRepositoryTest extends DatabaseTestCase
|
|||
|
||||
self::assertSame(
|
||||
$shortUrl,
|
||||
$this->repo->findOneMatching(
|
||||
ShortUrlCreation::fromRawData(['validSince' => $start, 'longUrl' => 'foo', 'tags' => ['foo', 'bar']]),
|
||||
),
|
||||
$this->repo->findOneMatching(ShortUrlCreation::fromRawData(
|
||||
['validSince' => $start, 'longUrl' => 'https://foo', 'tags' => ['foo', 'bar']],
|
||||
)),
|
||||
);
|
||||
self::assertSame($shortUrl, $this->repo->findOneMatching(ShortUrlCreation::fromRawData([
|
||||
'validSince' => $start,
|
||||
'apiKey' => $apiKey,
|
||||
'longUrl' => 'foo',
|
||||
'longUrl' => 'https://foo',
|
||||
'tags' => ['foo', 'bar'],
|
||||
])));
|
||||
self::assertSame($shortUrl, $this->repo->findOneMatching(ShortUrlCreation::fromRawData([
|
||||
'validSince' => $start,
|
||||
'apiKey' => $adminApiKey,
|
||||
'longUrl' => 'foo',
|
||||
'longUrl' => 'https://foo',
|
||||
'tags' => ['foo', 'bar'],
|
||||
])));
|
||||
self::assertNull($this->repo->findOneMatching(ShortUrlCreation::fromRawData([
|
||||
'validSince' => $start,
|
||||
'apiKey' => $otherApiKey,
|
||||
'longUrl' => 'foo',
|
||||
'longUrl' => 'https://foo',
|
||||
'tags' => ['foo', 'bar'],
|
||||
])));
|
||||
|
||||
|
@ -338,7 +345,7 @@ class ShortUrlRepositoryTest extends DatabaseTestCase
|
|||
$this->repo->findOneMatching(ShortUrlCreation::fromRawData([
|
||||
'validSince' => $start,
|
||||
'domain' => $rightDomain->authority,
|
||||
'longUrl' => 'foo',
|
||||
'longUrl' => 'https://foo',
|
||||
'tags' => ['foo', 'bar'],
|
||||
])),
|
||||
);
|
||||
|
@ -348,7 +355,7 @@ class ShortUrlRepositoryTest extends DatabaseTestCase
|
|||
'validSince' => $start,
|
||||
'domain' => $rightDomain->authority,
|
||||
'apiKey' => $rightDomainApiKey,
|
||||
'longUrl' => 'foo',
|
||||
'longUrl' => 'https://foo',
|
||||
'tags' => ['foo', 'bar'],
|
||||
])),
|
||||
);
|
||||
|
@ -358,7 +365,7 @@ class ShortUrlRepositoryTest extends DatabaseTestCase
|
|||
'validSince' => $start,
|
||||
'domain' => $rightDomain->authority,
|
||||
'apiKey' => $apiKey,
|
||||
'longUrl' => 'foo',
|
||||
'longUrl' => 'https://foo',
|
||||
'tags' => ['foo', 'bar'],
|
||||
])),
|
||||
);
|
||||
|
@ -367,7 +374,7 @@ class ShortUrlRepositoryTest extends DatabaseTestCase
|
|||
'validSince' => $start,
|
||||
'domain' => $rightDomain->authority,
|
||||
'apiKey' => $wrongDomainApiKey,
|
||||
'longUrl' => 'foo',
|
||||
'longUrl' => 'https://foo',
|
||||
'tags' => ['foo', 'bar'],
|
||||
])),
|
||||
);
|
||||
|
@ -376,20 +383,20 @@ class ShortUrlRepositoryTest extends DatabaseTestCase
|
|||
$nonDomainShortUrl,
|
||||
$this->repo->findOneMatching(ShortUrlCreation::fromRawData([
|
||||
'apiKey' => $apiKey,
|
||||
'longUrl' => 'non-domain',
|
||||
'longUrl' => 'https://non-domain',
|
||||
])),
|
||||
);
|
||||
self::assertSame(
|
||||
$nonDomainShortUrl,
|
||||
$this->repo->findOneMatching(ShortUrlCreation::fromRawData([
|
||||
'apiKey' => $adminApiKey,
|
||||
'longUrl' => 'non-domain',
|
||||
'longUrl' => 'https://non-domain',
|
||||
])),
|
||||
);
|
||||
self::assertNull(
|
||||
$this->repo->findOneMatching(ShortUrlCreation::fromRawData([
|
||||
'apiKey' => $otherApiKey,
|
||||
'longUrl' => 'non-domain',
|
||||
'longUrl' => 'https://non-domain',
|
||||
])),
|
||||
);
|
||||
}
|
||||
|
|
|
@ -371,7 +371,7 @@ class VisitRepositoryTest extends DatabaseTestCase
|
|||
#[Test]
|
||||
public function countOrphanVisitsReturnsExpectedResult(): void
|
||||
{
|
||||
$shortUrl = ShortUrl::create(ShortUrlCreation::fromRawData(['longUrl' => 'longUrl']));
|
||||
$shortUrl = ShortUrl::create(ShortUrlCreation::fromRawData(['longUrl' => 'https://longUrl']));
|
||||
$this->getEntityManager()->persist($shortUrl);
|
||||
$this->createVisitsForShortUrl($shortUrl, 7);
|
||||
|
||||
|
@ -408,15 +408,15 @@ class VisitRepositoryTest extends DatabaseTestCase
|
|||
#[Test]
|
||||
public function findNonOrphanVisitsReturnsExpectedResult(): void
|
||||
{
|
||||
$shortUrl = ShortUrl::create(ShortUrlCreation::fromRawData(['longUrl' => '1']));
|
||||
$shortUrl = ShortUrl::create(ShortUrlCreation::fromRawData(['longUrl' => 'https://1']));
|
||||
$this->getEntityManager()->persist($shortUrl);
|
||||
$this->createVisitsForShortUrl($shortUrl, 7);
|
||||
|
||||
$shortUrl2 = ShortUrl::create(ShortUrlCreation::fromRawData(['longUrl' => '2']));
|
||||
$shortUrl2 = ShortUrl::create(ShortUrlCreation::fromRawData(['longUrl' => 'https://2']));
|
||||
$this->getEntityManager()->persist($shortUrl2);
|
||||
$this->createVisitsForShortUrl($shortUrl2, 4);
|
||||
|
||||
$shortUrl3 = ShortUrl::create(ShortUrlCreation::fromRawData(['longUrl' => '3']));
|
||||
$shortUrl3 = ShortUrl::create(ShortUrlCreation::fromRawData(['longUrl' => 'https://3']));
|
||||
$this->getEntityManager()->persist($shortUrl3);
|
||||
$this->createVisitsForShortUrl($shortUrl3, 10);
|
||||
|
||||
|
@ -475,7 +475,7 @@ class VisitRepositoryTest extends DatabaseTestCase
|
|||
?ApiKey $apiKey = null,
|
||||
): array {
|
||||
$shortUrl = ShortUrl::create(ShortUrlCreation::fromRawData([
|
||||
ShortUrlInputFilter::LONG_URL => 'longUrl',
|
||||
ShortUrlInputFilter::LONG_URL => 'https://longUrl',
|
||||
ShortUrlInputFilter::TAGS => $tags,
|
||||
ShortUrlInputFilter::API_KEY => $apiKey,
|
||||
]), $this->relationResolver);
|
||||
|
@ -489,7 +489,7 @@ class VisitRepositoryTest extends DatabaseTestCase
|
|||
$shortUrlWithDomain = ShortUrl::create(ShortUrlCreation::fromRawData([
|
||||
'customSlug' => $shortCode,
|
||||
'domain' => $domain,
|
||||
'longUrl' => 'longUrl',
|
||||
'longUrl' => 'https://longUrl',
|
||||
]));
|
||||
$this->getEntityManager()->persist($shortUrlWithDomain);
|
||||
$this->createVisitsForShortUrl($shortUrlWithDomain, 3);
|
||||
|
|
Loading…
Add table
Reference in a new issue