ScheduleRequestSubscriber - валидация это не зона ответственности реагирования на ивент. Для валидации есть другие слои/способы и этапы - до попадания данных в экшен контроллера или уже внутри него, получается что при использовании ивентов эти процессы могут пойти параллельно, а не последовательно. В доке написано (ссылка) - "Overall, the purpose of the kernel.request event is either to create and return a Response directly, or to add information to the Request (e.g. setting the locale or setting some other information on the Request attributes).".
namespace App\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
use Exception;
class CustomException extends Exception
{
}
class Demo
{
public function some()
{
echo '123';
}
}
class SomeControllerTest extends WebTestCase
{
public function testDemo()
{
$this->expectException(CustomException::class);
$demoStub = $this->createMock(Demo::class);
$demoStub->method('some')->willThrowException(new CustomException('Exception from some method.'));
$demoIntance = new $demoStub();
$demoIntance->some();
}
}
Failed asserting that exception of type "App\Tests\Controller\CustomException" is thrown.
$this->expectException();
Тут не очень понял, какие могут быть проблемы с маппингом?
Можно вместо файла использовать и базу. В данной задаче для маппинга потребуется только класс Value\Time для полей workStart и lunchStart в Entity\Employee и это решается добавлением custom mapping type при использовании Doctrine.