nochmal nue

This commit is contained in:
lubiana 2025-06-09 22:05:01 +02:00
parent 2c2e34b71e
commit 6f07d70436
Signed by: lubiana
SSH key fingerprint: SHA256:vW1EA0fRR3Fw+dD/sM0K+x3Il2gSry6YRYHqOeQwrfk
27 changed files with 311 additions and 1988 deletions

View file

@ -1,48 +0,0 @@
<?php
declare(strict_types=1);
use App\Entity\DrinkType;
use App\Entity\PropertyChangeLog;
use App\Repository\PropertyChangeLogRepository;
use Doctrine\ORM\EntityManagerInterface;
test('property change log is created when drink type desired stock is updated', function (): void {
// Arrange
$em = $this->getContainer()->get(EntityManagerInterface::class);
$propertyChangeLogRepository = $this->getContainer()->get(PropertyChangeLogRepository::class);
// Create a drink type
$drinkType = new DrinkType();
$drinkType->setName('Test Drink Type');
$drinkType->setDescription('Test Description');
$drinkType->setDesiredStock(5);
$em->persist($drinkType);
$em->flush();
$drinkTypeId = $drinkType->getId();
// Act - Update the desired stock
$drinkType->setDesiredStock(10);
$em->flush();
// Manually create a PropertyChangeLog entry since the event listener might not work in tests
$log = new PropertyChangeLog();
$log->setEntityClass(DrinkType::class);
$log->setEntityId($drinkTypeId);
$log->setPropertyName('desiredStock');
$log->setNewValue('10');
$em->persist($log);
$em->flush();
// Assert - Check that a PropertyChangeLog entry was created
$logs = $propertyChangeLogRepository->findBy([
'entityClass' => DrinkType::class,
'propertyName' => 'desiredStock',
'entityId' => $drinkTypeId
], ['changeDate' => 'DESC']);
expect($logs)->toHaveCount(1);
expect($logs[0])->toBeInstanceOf(PropertyChangeLog::class);
expect($logs[0]->getNewValue())->toBe('10');
});

View file

@ -0,0 +1,41 @@
<?php
use App\Entity\DrinkType;
use App\Entity\PropertyChangeLog;
use Doctrine\ORM\EntityManagerInterface;
test('Update Listener', function () {
$drinkType = new DrinkType();
$drinkType->setName('test');
$drinkType->setWantedStock(10);
$drinkType->setCurrentStock(10);
$em = $this->get(EntityManagerInterface::class);
$em->persist($drinkType);
$em->flush();
$propertyLogRepository = $em->getRepository(PropertyChangeLog::class);
$logs = $propertyLogRepository->findBy(['entityClass' => DrinkType::class]);
expect($logs)->toHaveCount(2);
$drinkType->setWantedStock(15);
$em->persist($drinkType);
$em->flush();
$logs = $propertyLogRepository->findBy(['entityClass' => DrinkType::class]);
expect($logs)->toHaveCount(3);
$drinkType->setCurrentStock(15);
$em->persist($drinkType);
$em->flush();
$logs = $propertyLogRepository->findBy(['entityClass' => DrinkType::class]);
expect($logs)->toHaveCount(4);
$drinkType->setDescription('test');
$em->persist($drinkType);
$em->flush();
$logs = $propertyLogRepository->findBy(['entityClass' => DrinkType::class]);
expect($logs)->toHaveCount(4);
});