mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-09-29 01:55:01 +00:00
Add attachments to workflow
This commit is contained in:
@@ -11,10 +11,13 @@ declare(strict_types=1);
|
||||
|
||||
namespace Chill\DocStoreBundle\Tests\GenericDoc;
|
||||
|
||||
use Chill\DocStoreBundle\Entity\StoredObject;
|
||||
use Chill\DocStoreBundle\GenericDoc\Exception\NotNormalizableGenericDocException;
|
||||
use Chill\DocStoreBundle\GenericDoc\FetchQuery;
|
||||
use Chill\DocStoreBundle\GenericDoc\FetchQueryInterface;
|
||||
use Chill\DocStoreBundle\GenericDoc\GenericDocDTO;
|
||||
use Chill\DocStoreBundle\GenericDoc\GenericDocForPersonProviderInterface;
|
||||
use Chill\DocStoreBundle\GenericDoc\GenericDocNormalizerInterface;
|
||||
use Chill\DocStoreBundle\GenericDoc\Manager;
|
||||
use Chill\DocStoreBundle\GenericDoc\GenericDocForAccompanyingPeriodProviderInterface;
|
||||
use Chill\PersonBundle\Entity\AccompanyingPeriod;
|
||||
@@ -58,6 +61,7 @@ class ManagerTest extends KernelTestCase
|
||||
$manager = new Manager(
|
||||
[new SimpleGenericDocAccompanyingPeriodProvider()],
|
||||
[new SimpleGenericDocPersonProvider()],
|
||||
[],
|
||||
$this->connection,
|
||||
);
|
||||
|
||||
@@ -79,6 +83,7 @@ class ManagerTest extends KernelTestCase
|
||||
$manager = new Manager(
|
||||
[new SimpleGenericDocAccompanyingPeriodProvider()],
|
||||
[new SimpleGenericDocPersonProvider()],
|
||||
[],
|
||||
$this->connection,
|
||||
);
|
||||
|
||||
@@ -100,6 +105,7 @@ class ManagerTest extends KernelTestCase
|
||||
$manager = new Manager(
|
||||
[new SimpleGenericDocAccompanyingPeriodProvider()],
|
||||
[new SimpleGenericDocPersonProvider()],
|
||||
[],
|
||||
$this->connection,
|
||||
);
|
||||
|
||||
@@ -121,6 +127,7 @@ class ManagerTest extends KernelTestCase
|
||||
$manager = new Manager(
|
||||
[new SimpleGenericDocAccompanyingPeriodProvider()],
|
||||
[new SimpleGenericDocPersonProvider()],
|
||||
[],
|
||||
$this->connection,
|
||||
);
|
||||
|
||||
@@ -142,6 +149,7 @@ class ManagerTest extends KernelTestCase
|
||||
$manager = new Manager(
|
||||
[new SimpleGenericDocAccompanyingPeriodProvider()],
|
||||
[new SimpleGenericDocPersonProvider()],
|
||||
[],
|
||||
$this->connection,
|
||||
);
|
||||
|
||||
@@ -163,6 +171,7 @@ class ManagerTest extends KernelTestCase
|
||||
$manager = new Manager(
|
||||
[new SimpleGenericDocAccompanyingPeriodProvider()],
|
||||
[new SimpleGenericDocPersonProvider()],
|
||||
[],
|
||||
$this->connection,
|
||||
);
|
||||
|
||||
@@ -170,10 +179,77 @@ class ManagerTest extends KernelTestCase
|
||||
|
||||
self::assertEquals(['accompanying_course_document_dummy'], $places);
|
||||
}
|
||||
|
||||
public function testIsGenericDocNormalizable(): void
|
||||
{
|
||||
$genericDoc = new GenericDocDTO('test', ['id' => 1], new \DateTimeImmutable(), new AccompanyingPeriod());
|
||||
|
||||
$manager = new Manager([], [], [$this->buildNormalizer(true)], $this->connection);
|
||||
self::assertTrue($manager->isGenericDocNormalizable($genericDoc, 'json'));
|
||||
|
||||
$manager = new Manager([], [], [$this->buildNormalizer(false)], $this->connection);
|
||||
self::assertFalse($manager->isGenericDocNormalizable($genericDoc, 'json'));
|
||||
}
|
||||
|
||||
public function testNormalizeGenericDocMetadata(): void
|
||||
{
|
||||
$genericDoc = new GenericDocDTO('test', ['id' => 1], new \DateTimeImmutable(), new AccompanyingPeriod());
|
||||
|
||||
$manager = new Manager([], [], [$this->buildNormalizer(false), $this->buildNormalizer(true)], $this->connection);
|
||||
self::assertEquals(['title' => 'Some title'], $manager->normalizeGenericDoc($genericDoc, 'json'));
|
||||
}
|
||||
|
||||
public function testNormalizeGenericDocMetadataNoNormalizer(): void
|
||||
{
|
||||
$genericDoc = new GenericDocDTO('test', ['id' => 1], new \DateTimeImmutable(), new AccompanyingPeriod());
|
||||
|
||||
$manager = new Manager([], [], [$this->buildNormalizer(false)], $this->connection);
|
||||
|
||||
$this->expectException(NotNormalizableGenericDocException::class);
|
||||
|
||||
self::assertEquals(['title' => 'Some title'], $manager->normalizeGenericDoc($genericDoc, 'json'));
|
||||
}
|
||||
|
||||
public function buildNormalizer(bool $supports): GenericDocNormalizerInterface
|
||||
{
|
||||
return new class ($supports) implements GenericDocNormalizerInterface {
|
||||
public function __construct(private readonly bool $supports) {}
|
||||
|
||||
public function supportsNormalization(GenericDocDTO $genericDocDTO, string $format, array $context = []): bool
|
||||
{
|
||||
return $this->supports;
|
||||
}
|
||||
|
||||
public function normalize(GenericDocDTO $genericDocDTO, string $format, array $context = []): array
|
||||
{
|
||||
return ['title' => 'Some title'];
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
final readonly class SimpleGenericDocAccompanyingPeriodProvider implements GenericDocForAccompanyingPeriodProviderInterface
|
||||
{
|
||||
public function fetchAssociatedStoredObject(GenericDocDTO $genericDocDTO): ?StoredObject
|
||||
{
|
||||
throw new \BadMethodCallException('not implemented');
|
||||
}
|
||||
|
||||
public function supportsGenericDoc(GenericDocDTO $genericDocDTO): bool
|
||||
{
|
||||
throw new \BadMethodCallException('not implemented');
|
||||
}
|
||||
|
||||
public function supportsKeyAndIdentifiers(string $key, array $identifiers): bool
|
||||
{
|
||||
return 'accompanying_course_document_dummy' === $key;
|
||||
}
|
||||
|
||||
public function buildOneGenericDoc(string $key, array $identifiers): ?GenericDocDTO
|
||||
{
|
||||
return new GenericDocDTO('accompanying_course_document_dummy', $identifiers, new \DateTimeImmutable(), new AccompanyingPeriod());
|
||||
}
|
||||
|
||||
public function buildFetchQueryForAccompanyingPeriod(AccompanyingPeriod $accompanyingPeriod, ?\DateTimeImmutable $startDate = null, ?\DateTimeImmutable $endDate = null, ?string $content = null, ?string $origin = null): FetchQueryInterface
|
||||
{
|
||||
$query = new FetchQuery(
|
||||
|
@@ -13,6 +13,7 @@ namespace Chill\DocStoreBundle\Tests\GenericDoc\Providers;
|
||||
|
||||
use Chill\DocStoreBundle\GenericDoc\FetchQueryToSqlBuilder;
|
||||
use Chill\DocStoreBundle\GenericDoc\Providers\AccompanyingCourseDocumentGenericDocProvider;
|
||||
use Chill\DocStoreBundle\Repository\AccompanyingCourseDocumentRepository;
|
||||
use Chill\DocStoreBundle\Security\Authorization\AccompanyingCourseDocumentVoter;
|
||||
use Chill\PersonBundle\Entity\AccompanyingPeriod;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
@@ -56,7 +57,8 @@ class AccompanyingCourseDocumentGenericDocProviderTest extends KernelTestCase
|
||||
|
||||
$provider = new AccompanyingCourseDocumentGenericDocProvider(
|
||||
$security->reveal(),
|
||||
$this->entityManager
|
||||
$this->entityManager,
|
||||
$this->prophesize(AccompanyingCourseDocumentRepository::class)->reveal()
|
||||
);
|
||||
|
||||
$query = $provider->buildFetchQueryForAccompanyingPeriod($period, $startDate, $endDate, $content);
|
||||
|
@@ -14,6 +14,7 @@ namespace Chill\DocStoreBundle\Tests\GenericDoc\Providers;
|
||||
use Chill\DocStoreBundle\GenericDoc\FetchQueryToSqlBuilder;
|
||||
use Chill\DocStoreBundle\GenericDoc\Providers\PersonDocumentGenericDocProvider;
|
||||
use Chill\DocStoreBundle\Repository\PersonDocumentACLAwareRepositoryInterface;
|
||||
use Chill\DocStoreBundle\Repository\PersonDocumentRepository;
|
||||
use Chill\PersonBundle\Entity\Person;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Prophecy\PhpUnit\ProphecyTrait;
|
||||
@@ -33,11 +34,14 @@ class PersonDocumentGenericDocProviderTest extends KernelTestCase
|
||||
|
||||
private PersonDocumentACLAwareRepositoryInterface $personDocumentACLAwareRepository;
|
||||
|
||||
private PersonDocumentRepository $personDocumentRepository;
|
||||
|
||||
protected function setUp(): void
|
||||
{
|
||||
self::bootKernel();
|
||||
$this->entityManager = self::getContainer()->get(EntityManagerInterface::class);
|
||||
$this->personDocumentACLAwareRepository = self::getContainer()->get(PersonDocumentACLAwareRepositoryInterface::class);
|
||||
$this->personDocumentRepository = self::getContainer()->get(PersonDocumentRepository::class);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -60,7 +64,8 @@ class PersonDocumentGenericDocProviderTest extends KernelTestCase
|
||||
|
||||
$provider = new PersonDocumentGenericDocProvider(
|
||||
$security->reveal(),
|
||||
$this->personDocumentACLAwareRepository
|
||||
$this->personDocumentACLAwareRepository,
|
||||
$this->personDocumentRepository,
|
||||
);
|
||||
|
||||
$query = $provider->buildFetchQueryForPerson($person, $startDate, $endDate, $content);
|
||||
|
Reference in New Issue
Block a user