mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-09-09 16:24:59 +00:00
Compare commits
3 Commits
v4.1.0
...
integrate_
Author | SHA1 | Date | |
---|---|---|---|
23a0cfae14 | |||
1a213ab5f8 | |||
aee8e17cfa |
@@ -62,6 +62,7 @@
|
||||
"twig/twig": "^3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"dama/doctrine-test-bundle": "^7.1",
|
||||
"doctrine/doctrine-fixtures-bundle": "^3.3",
|
||||
"fakerphp/faker": "^1.13",
|
||||
"jangregor/phpstan-prophecy": "^1.0",
|
||||
@@ -82,7 +83,8 @@
|
||||
"symfony/phpunit-bridge": "^4.4",
|
||||
"symfony/stopwatch": "^4.4",
|
||||
"symfony/var-dumper": "^4.4",
|
||||
"vimeo/psalm": "^4.30.0"
|
||||
"vimeo/psalm": "^4.30.0",
|
||||
"zenstruck/foundry": "^1.36"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/symfony": "*"
|
||||
|
@@ -78,6 +78,10 @@
|
||||
<listener class="Symfony\Bridge\PhpUnit\SymfonyTestsListener" />
|
||||
</listeners>
|
||||
|
||||
<extensions>
|
||||
<extension class="DAMA\DoctrineTestBundle\PHPUnit\PHPUnitExtension" />
|
||||
</extensions>
|
||||
|
||||
<!-- Run `composer require symfony/panther` before enabling this extension -->
|
||||
<!--
|
||||
<extensions>
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user