shlink/module/Rest/test-api/Fixtures/ShortUrlsFixture.php

68 lines
2.4 KiB
PHP
Raw Normal View History

2019-01-27 14:14:18 +03:00
<?php
2019-10-05 18:26:10 +03:00
2019-01-27 14:14:18 +03:00
declare(strict_types=1);
namespace ShlinkioApiTest\Shlink\Rest\Fixtures;
use Cake\Chronos\Chronos;
use Doctrine\Common\DataFixtures\AbstractFixture;
use Doctrine\Persistence\ObjectManager;
2019-01-27 14:35:00 +03:00
use ReflectionObject;
2019-01-27 14:14:18 +03:00
use Shlinkio\Shlink\Core\Entity\ShortUrl;
use Shlinkio\Shlink\Core\Model\ShortUrlMeta;
class ShortUrlsFixture extends AbstractFixture
{
/**
* Load data fixtures with the passed EntityManager
*
*/
public function load(ObjectManager $manager): void
{
$abcShortUrl = $this->setShortUrlDate(
new ShortUrl('https://shlink.io', ShortUrlMeta::fromRawData(['customSlug' => 'abc123'])),
2020-01-01 22:48:31 +03:00
'2018-05-01',
);
2019-01-27 14:14:18 +03:00
$manager->persist($abcShortUrl);
2019-01-27 14:35:00 +03:00
$defShortUrl = $this->setShortUrlDate(new ShortUrl(
'https://blog.alejandrocelaya.com/2017/12/09/acmailer-7-0-the-most-important-release-in-a-long-time/',
ShortUrlMeta::fromRawData(['validSince' => Chronos::parse('2020-05-01'), 'customSlug' => 'def456']),
), '2019-01-01 00:00:10');
2019-01-27 14:14:18 +03:00
$manager->persist($defShortUrl);
2019-01-27 14:35:00 +03:00
$customShortUrl = $this->setShortUrlDate(new ShortUrl(
2019-01-27 14:14:18 +03:00
'https://shlink.io',
ShortUrlMeta::fromRawData(['customSlug' => 'custom', 'maxVisits' => 2]),
), '2019-01-01 00:00:20');
2019-01-27 14:14:18 +03:00
$manager->persist($customShortUrl);
$withDomainShortUrl = $this->setShortUrlDate(new ShortUrl(
'https://blog.alejandrocelaya.com/2019/04/27/considerations-to-properly-use-open-source-software-projects/',
ShortUrlMeta::fromRawData(['domain' => 'example.com', 'customSlug' => 'ghi789']),
), '2019-01-01 00:00:30');
$manager->persist($withDomainShortUrl);
$withDomainAndSlugShortUrl = $this->setShortUrlDate(new ShortUrl(
'https://google.com',
ShortUrlMeta::fromRawData(['domain' => 'some-domain.com', 'customSlug' => 'custom-with-domain']),
), '2018-10-20');
$manager->persist($withDomainAndSlugShortUrl);
2019-01-27 14:14:18 +03:00
$manager->flush();
$this->addReference('abc123_short_url', $abcShortUrl);
$this->addReference('def456_short_url', $defShortUrl);
}
2019-01-27 14:35:00 +03:00
private function setShortUrlDate(ShortUrl $shortUrl, string $date): ShortUrl
2019-01-27 14:35:00 +03:00
{
$ref = new ReflectionObject($shortUrl);
$dateProp = $ref->getProperty('dateCreated');
$dateProp->setAccessible(true);
$dateProp->setValue($shortUrl, Chronos::parse($date));
2019-01-27 14:35:00 +03:00
return $shortUrl;
}
2019-01-27 14:14:18 +03:00
}