Lines 75.00% 3 / 4
Functions and Methods 50.00% 1 / 2
Classes and Traits 0.00% 0 / 1
Name Lines Functions and Methods CRAP Classes and Traits
ConnectionEstablishedEvent 75.00% 3 / 4 50.00% 1 / 2 4.25 0.00% 0 / 1
 from 100.00% 3 / 3 100.00% 1 / 1 3
 summary 0.00% 0 / 1 0.00% 0 / 1 2
1<?php
2
3declare(strict_types=1);
4
5namespace Lorekeeper\Server\Event\Session;
6
7use Lorekeeper\Server\Event\Event;
8use Lorekeeper\Server\Event\NamedAfterClass;
9use Lorekeeper\Server\Message\Message;
10use Lorekeeper\Server\Message\XmlMessage;
11use Override;
12use Psl\Option;
13
14final readonly class ConnectionEstablishedEvent implements Event
15{
16    use NamedAfterClass;
17
18    /** @return Option\Option<static> */
19    #[Override]
20    public static function from(Message $message): Option\Option
21    {
22        if (!$message instanceof XmlMessage || $message->dom->documentElement?->nodeName !== 'cross-domain-policy') {
23            return Option\none();
24        }
25
26        return Option\some(new static());
27    }
28
29    #[Override]
30    public function summary(): string
31    {
32        return 'Connection established';
33    }
34}