mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-08-02 22:17:45 +00:00
Create a simple test to play with foundry - problem with test db remaining
This commit is contained in:
parent
aee8e17cfa
commit
1a213ab5f8
@ -0,0 +1,58 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Chill\MainBundle\Factory\Embeddable;
|
||||||
|
|
||||||
|
use Chill\MainBundle\Entity\Embeddable\PrivateCommentEmbeddable;
|
||||||
|
use Zenstruck\Foundry\ModelFactory;
|
||||||
|
use Zenstruck\Foundry\Proxy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @extends ModelFactory<PrivateCommentEmbeddable>
|
||||||
|
*
|
||||||
|
* @method PrivateCommentEmbeddable|Proxy create(array|callable $attributes = [])
|
||||||
|
* @method static PrivateCommentEmbeddable|Proxy createOne(array $attributes = [])
|
||||||
|
* @method static PrivateCommentEmbeddable[]|Proxy[] createMany(int $number, array|callable $attributes = [])
|
||||||
|
* @method static PrivateCommentEmbeddable[]|Proxy[] createSequence(iterable|callable $sequence)
|
||||||
|
*
|
||||||
|
* @phpstan-method Proxy<PrivateCommentEmbeddable> create(array|callable $attributes = [])
|
||||||
|
* @phpstan-method static Proxy<PrivateCommentEmbeddable> createOne(array $attributes = [])
|
||||||
|
*/
|
||||||
|
final class PrivateCommentEmbeddableFactory extends ModelFactory
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @see https://symfony.com/bundles/ZenstruckFoundryBundle/current/index.html#factories-as-services
|
||||||
|
*
|
||||||
|
* @todo inject services if required
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see https://symfony.com/bundles/ZenstruckFoundryBundle/current/index.html#model-factories
|
||||||
|
*
|
||||||
|
* @todo add your default values here
|
||||||
|
*/
|
||||||
|
protected function getDefaults(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see https://symfony.com/bundles/ZenstruckFoundryBundle/current/index.html#initialization
|
||||||
|
*/
|
||||||
|
protected function initialize(): self
|
||||||
|
{
|
||||||
|
return $this
|
||||||
|
->withoutPersisting()
|
||||||
|
// ->afterInstantiate(function(PrivateCommentEmbeddable $privateCommentEmbeddable): void {})
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static function getClass(): string
|
||||||
|
{
|
||||||
|
return PrivateCommentEmbeddable::class;
|
||||||
|
}
|
||||||
|
}
|
83
src/Bundle/ChillMainBundle/Factory/UserFactory.php
Normal file
83
src/Bundle/ChillMainBundle/Factory/UserFactory.php
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Chill\MainBundle\Factory;
|
||||||
|
|
||||||
|
use Chill\MainBundle\Entity\User;
|
||||||
|
use Doctrine\ORM\EntityRepository;
|
||||||
|
use Zenstruck\Foundry\ModelFactory;
|
||||||
|
use Zenstruck\Foundry\Proxy;
|
||||||
|
use Zenstruck\Foundry\RepositoryProxy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @extends ModelFactory<User>
|
||||||
|
*
|
||||||
|
* @method User|Proxy create(array|callable $attributes = [])
|
||||||
|
* @method static User|Proxy createOne(array $attributes = [])
|
||||||
|
* @method static User|Proxy find(object|array|mixed $criteria)
|
||||||
|
* @method static User|Proxy findOrCreate(array $attributes)
|
||||||
|
* @method static User|Proxy first(string $sortedField = 'id')
|
||||||
|
* @method static User|Proxy last(string $sortedField = 'id')
|
||||||
|
* @method static User|Proxy random(array $attributes = [])
|
||||||
|
* @method static User|Proxy randomOrCreate(array $attributes = [])
|
||||||
|
* @method static EntityRepository|RepositoryProxy repository()
|
||||||
|
* @method static User[]|Proxy[] all()
|
||||||
|
* @method static User[]|Proxy[] createMany(int $number, array|callable $attributes = [])
|
||||||
|
* @method static User[]|Proxy[] createSequence(iterable|callable $sequence)
|
||||||
|
* @method static User[]|Proxy[] findBy(array $attributes)
|
||||||
|
* @method static User[]|Proxy[] randomRange(int $min, int $max, array $attributes = [])
|
||||||
|
* @method static User[]|Proxy[] randomSet(int $number, array $attributes = [])
|
||||||
|
*
|
||||||
|
* @phpstan-method Proxy<User> create(array|callable $attributes = [])
|
||||||
|
* @phpstan-method static Proxy<User> createOne(array $attributes = [])
|
||||||
|
* @phpstan-method static Proxy<User> find(object|array|mixed $criteria)
|
||||||
|
* @phpstan-method static Proxy<User> findOrCreate(array $attributes)
|
||||||
|
* @phpstan-method static Proxy<User> first(string $sortedField = 'id')
|
||||||
|
* @phpstan-method static Proxy<User> last(string $sortedField = 'id')
|
||||||
|
* @phpstan-method static Proxy<User> random(array $attributes = [])
|
||||||
|
* @phpstan-method static Proxy<User> randomOrCreate(array $attributes = [])
|
||||||
|
* @phpstan-method static RepositoryProxy<User> repository()
|
||||||
|
*/
|
||||||
|
final class UserFactory extends ModelFactory
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @see https://symfony.com/bundles/ZenstruckFoundryBundle/current/index.html#factories-as-services
|
||||||
|
*
|
||||||
|
* @todo inject services if required
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see https://symfony.com/bundles/ZenstruckFoundryBundle/current/index.html#model-factories
|
||||||
|
*
|
||||||
|
* @todo add your default values here
|
||||||
|
*/
|
||||||
|
protected function getDefaults(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'attributes' => [],
|
||||||
|
'enabled' => self::faker()->boolean(),
|
||||||
|
'label' => self::faker()->text(200),
|
||||||
|
'locked' => self::faker()->boolean(),
|
||||||
|
'password' => self::faker()->text(255),
|
||||||
|
'username' => self::faker()->text(80),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see https://symfony.com/bundles/ZenstruckFoundryBundle/current/index.html#initialization
|
||||||
|
*/
|
||||||
|
protected function initialize(): self
|
||||||
|
{
|
||||||
|
return $this
|
||||||
|
// ->afterInstantiate(function(User $user): void {})
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static function getClass(): string
|
||||||
|
{
|
||||||
|
return User::class;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,83 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Chill\PersonBundle\Factory\AccompanyingPeriod;
|
||||||
|
|
||||||
|
use Chill\PersonBundle\Entity\AccompanyingPeriod;
|
||||||
|
use Doctrine\ORM\EntityRepository;
|
||||||
|
use Zenstruck\Foundry\ModelFactory;
|
||||||
|
use Zenstruck\Foundry\Proxy;
|
||||||
|
use Zenstruck\Foundry\RepositoryProxy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @extends ModelFactory<AccompanyingPeriod>
|
||||||
|
*
|
||||||
|
* @method AccompanyingPeriod|Proxy create(array|callable $attributes = [])
|
||||||
|
* @method static AccompanyingPeriod|Proxy createOne(array $attributes = [])
|
||||||
|
* @method static AccompanyingPeriod|Proxy find(object|array|mixed $criteria)
|
||||||
|
* @method static AccompanyingPeriod|Proxy findOrCreate(array $attributes)
|
||||||
|
* @method static AccompanyingPeriod|Proxy first(string $sortedField = 'id')
|
||||||
|
* @method static AccompanyingPeriod|Proxy last(string $sortedField = 'id')
|
||||||
|
* @method static AccompanyingPeriod|Proxy random(array $attributes = [])
|
||||||
|
* @method static AccompanyingPeriod|Proxy randomOrCreate(array $attributes = [])
|
||||||
|
* @method static EntityRepository|RepositoryProxy repository()
|
||||||
|
* @method static AccompanyingPeriod[]|Proxy[] all()
|
||||||
|
* @method static AccompanyingPeriod[]|Proxy[] createMany(int $number, array|callable $attributes = [])
|
||||||
|
* @method static AccompanyingPeriod[]|Proxy[] createSequence(iterable|callable $sequence)
|
||||||
|
* @method static AccompanyingPeriod[]|Proxy[] findBy(array $attributes)
|
||||||
|
* @method static AccompanyingPeriod[]|Proxy[] randomRange(int $min, int $max, array $attributes = [])
|
||||||
|
* @method static AccompanyingPeriod[]|Proxy[] randomSet(int $number, array $attributes = [])
|
||||||
|
*
|
||||||
|
* @phpstan-method Proxy<AccompanyingPeriod> create(array|callable $attributes = [])
|
||||||
|
* @phpstan-method static Proxy<AccompanyingPeriod> createOne(array $attributes = [])
|
||||||
|
* @phpstan-method static Proxy<AccompanyingPeriod> find(object|array|mixed $criteria)
|
||||||
|
* @phpstan-method static Proxy<AccompanyingPeriod> findOrCreate(array $attributes)
|
||||||
|
* @phpstan-method static Proxy<AccompanyingPeriod> first(string $sortedField = 'id')
|
||||||
|
* @phpstan-method static Proxy<AccompanyingPeriod> last(string $sortedField = 'id')
|
||||||
|
* @phpstan-method static Proxy<AccompanyingPeriod> random(array $attributes = [])
|
||||||
|
* @phpstan-method static Proxy<AccompanyingPeriod> randomOrCreate(array $attributes = [])
|
||||||
|
* @phpstan-method static RepositoryProxy<AccompanyingPeriod> repository()
|
||||||
|
* @phpstan-method static list<Proxy<AccompanyingPeriod>> all()
|
||||||
|
*/
|
||||||
|
final class AccompanyingPeriodFactory extends ModelFactory
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @see https://symfony.com/bundles/ZenstruckFoundryBundle/current/index.html#factories-as-services
|
||||||
|
*
|
||||||
|
* @todo inject services if required
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see https://symfony.com/bundles/ZenstruckFoundryBundle/current/index.html#model-factories
|
||||||
|
*
|
||||||
|
* @todo add your default values here
|
||||||
|
*/
|
||||||
|
protected function getDefaults(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'confidential' => self::faker()->boolean(),
|
||||||
|
'emergency' => self::faker()->boolean(),
|
||||||
|
'openingDate' => self::faker()->dateTime(),
|
||||||
|
'remark' => self::faker()->text(),
|
||||||
|
'requestorAnonymous' => self::faker()->boolean(),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see https://symfony.com/bundles/ZenstruckFoundryBundle/current/index.html#initialization
|
||||||
|
*/
|
||||||
|
protected function initialize(): self
|
||||||
|
{
|
||||||
|
return $this
|
||||||
|
// ->afterInstantiate(function(AccompanyingPeriod $accompanyingPeriod): void {})
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static function getClass(): string
|
||||||
|
{
|
||||||
|
return AccompanyingPeriod::class;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,89 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Chill\PersonBundle\Factory\AccompanyingPeriod;
|
||||||
|
|
||||||
|
use Chill\MainBundle\Factory\Embeddable\PrivateCommentEmbeddableFactory;
|
||||||
|
use Chill\MainBundle\Factory\UserFactory;
|
||||||
|
use Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWork;
|
||||||
|
use Doctrine\ORM\EntityRepository;
|
||||||
|
use Zenstruck\Foundry\ModelFactory;
|
||||||
|
use Zenstruck\Foundry\Proxy;
|
||||||
|
use Zenstruck\Foundry\RepositoryProxy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @extends ModelFactory<AccompanyingPeriodWork>
|
||||||
|
*
|
||||||
|
* @method AccompanyingPeriodWork|Proxy create(array|callable $attributes = [])
|
||||||
|
* @method static AccompanyingPeriodWork|Proxy createOne(array $attributes = [])
|
||||||
|
* @method static AccompanyingPeriodWork|Proxy find(object|array|mixed $criteria)
|
||||||
|
* @method static AccompanyingPeriodWork|Proxy findOrCreate(array $attributes)
|
||||||
|
* @method static AccompanyingPeriodWork|Proxy first(string $sortedField = 'id')
|
||||||
|
* @method static AccompanyingPeriodWork|Proxy last(string $sortedField = 'id')
|
||||||
|
* @method static AccompanyingPeriodWork|Proxy random(array $attributes = [])
|
||||||
|
* @method static AccompanyingPeriodWork|Proxy randomOrCreate(array $attributes = [])
|
||||||
|
* @method static EntityRepository|RepositoryProxy repository()
|
||||||
|
* @method static AccompanyingPeriodWork[]|Proxy[] all()
|
||||||
|
* @method static AccompanyingPeriodWork[]|Proxy[] createMany(int $number, array|callable $attributes = [])
|
||||||
|
* @method static AccompanyingPeriodWork[]|Proxy[] createSequence(iterable|callable $sequence)
|
||||||
|
* @method static AccompanyingPeriodWork[]|Proxy[] findBy(array $attributes)
|
||||||
|
* @method static AccompanyingPeriodWork[]|Proxy[] randomRange(int $min, int $max, array $attributes = [])
|
||||||
|
* @method static AccompanyingPeriodWork[]|Proxy[] randomSet(int $number, array $attributes = [])
|
||||||
|
*
|
||||||
|
* @phpstan-method Proxy<AccompanyingPeriodWork> create(array|callable $attributes = [])
|
||||||
|
* @phpstan-method static Proxy<AccompanyingPeriodWork> createOne(array $attributes = [])
|
||||||
|
* @phpstan-method static Proxy<AccompanyingPeriodWork> find(object|array|mixed $criteria)
|
||||||
|
* @phpstan-method static Proxy<AccompanyingPeriodWork> findOrCreate(array $attributes)
|
||||||
|
* @phpstan-method static Proxy<AccompanyingPeriodWork> first(string $sortedField = 'id')
|
||||||
|
* @phpstan-method static Proxy<AccompanyingPeriodWork> last(string $sortedField = 'id')
|
||||||
|
* @phpstan-method static Proxy<AccompanyingPeriodWork> random(array $attributes = [])
|
||||||
|
* @phpstan-method static Proxy<AccompanyingPeriodWork> randomOrCreate(array $attributes = [])
|
||||||
|
* @phpstan-method static RepositoryProxy<AccompanyingPeriodWork> repository()
|
||||||
|
*/
|
||||||
|
final class AccompanyingPeriodWorkFactory extends ModelFactory
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @see https://symfony.com/bundles/ZenstruckFoundryBundle/current/index.html#factories-as-services
|
||||||
|
*
|
||||||
|
* @todo inject services if required
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see https://symfony.com/bundles/ZenstruckFoundryBundle/current/index.html#model-factories
|
||||||
|
*
|
||||||
|
* @todo add your default values here
|
||||||
|
*/
|
||||||
|
protected function getDefaults(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'createdAt' => \DateTimeImmutable::createFromMutable(self::faker()->dateTime()),
|
||||||
|
'createdAutomatically' => self::faker()->boolean(),
|
||||||
|
'createdAutomaticallyReason' => self::faker()->text(),
|
||||||
|
'createdBy' => UserFactory::new(),
|
||||||
|
'note' => self::faker()->text(),
|
||||||
|
'privateComment' => PrivateCommentEmbeddableFactory::new(),
|
||||||
|
'startDate' => \DateTimeImmutable::createFromMutable(self::faker()->dateTime()),
|
||||||
|
'updatedAt' => \DateTimeImmutable::createFromMutable(self::faker()->dateTime()),
|
||||||
|
'updatedBy' => UserFactory::new(),
|
||||||
|
'version' => self::faker()->randomNumber(),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see https://symfony.com/bundles/ZenstruckFoundryBundle/current/index.html#initialization
|
||||||
|
*/
|
||||||
|
protected function initialize(): self
|
||||||
|
{
|
||||||
|
return $this
|
||||||
|
// ->afterInstantiate(function(AccompanyingPeriodWork $accompanyingPeriodWork): void {})
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static function getClass(): string
|
||||||
|
{
|
||||||
|
return AccompanyingPeriodWork::class;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,53 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Repository;
|
||||||
|
|
||||||
|
use Chill\MainBundle\Factory\UserFactory;
|
||||||
|
use Chill\PersonBundle\Entity\AccompanyingPeriod;
|
||||||
|
use Chill\PersonBundle\Factory\AccompanyingPeriod\AccompanyingPeriodFactory;
|
||||||
|
use Chill\PersonBundle\Repository\AccompanyingPeriodRepository;
|
||||||
|
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
|
||||||
|
use Zenstruck\Foundry\Test\Factories;
|
||||||
|
use Zenstruck\Foundry\Test\ResetDatabase;
|
||||||
|
|
||||||
|
class AccompanyingPeriodRepositoryTest extends KernelTestCase
|
||||||
|
{
|
||||||
|
use ResetDatabase, Factories;
|
||||||
|
|
||||||
|
public function testFindConfirmedByUser()
|
||||||
|
{
|
||||||
|
self::bootKernel();
|
||||||
|
|
||||||
|
$user = UserFactory::createOne([
|
||||||
|
'username' => 'Bob ISLA'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$userTwo = UserFactory::createOne([
|
||||||
|
'username' => 'Richard REEVES'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$apOne = AccompanyingPeriodFactory::createOne([
|
||||||
|
'step' => AccompanyingPeriod::STEP_CONFIRMED,
|
||||||
|
'user' => $user->object()
|
||||||
|
]);
|
||||||
|
|
||||||
|
$apTwo = AccompanyingPeriodFactory::createOne([
|
||||||
|
'step' => AccompanyingPeriod::STEP_DRAFT,
|
||||||
|
'user' => $user->object()
|
||||||
|
]);
|
||||||
|
|
||||||
|
$apThree = AccompanyingPeriodFactory::createOne([
|
||||||
|
'step' => AccompanyingPeriod::STEP_CONFIRMED,
|
||||||
|
'user' => $userTwo->object()
|
||||||
|
]);
|
||||||
|
|
||||||
|
$this->assertEquals($apOne, $this->getAccompanyingPeriodRepository()->findConfirmedByUser($user->object()));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getAccompanyingPeriodRepository(): AccompanyingPeriodRepository
|
||||||
|
{
|
||||||
|
return self::$container->get(AccompanyingPeriodRepository::class);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user