Lines 85.71% 6 / 7
Methods 66.66% 2 / 3
Classes 0.00% 0 / 1
Name Lines Methods CRAP
 __construct 100.00% 1 / 1 100.00% 1 / 1 1
 handledMessageClass 0.00% 0 / 1 0.00% 0 / 1 2
 handle 100.00% 5 / 5 100.00% 1 / 1 2
14final readonly class ExposedEntityCommandedHandler implements BrokerMessageHandler
15{
16    public function __construct(
17        private ExposedHandleRegistry $handles,
18        private ExposedCommandStreams $commandStreams,
19        private ExposedCommandSettlements $settlements,
20    ) {}
21
22    public function handledMessageClass(): string
23    {
24        return ExposedEntityCommanded::class;
25    }
26
27    /** @param ExposedEntityCommanded $message */
28    public function handle(BrokerMessage $message): void
29    {
30        $handle = $this->handles->findHandle($message->scope, $message->key);
31
32        if ($handle === null) {
33            $this->settlements->refuseUnknownCommand($message->commandId, \sprintf('Entity %s is no longer exposed.', $message->key));
34
35            return;
36        }
37
38        $this->commandStreams->deliverCommand($message->commandId, $message->scope, $message->key, $message->command, $handle);
39    }
40}