Code Coverage
 
Lines
Branches
Paths
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
25 / 25
100.00% covered (success)
100.00%
12 / 12
100.00% covered (success)
100.00%
12 / 12
100.00% covered (success)
100.00%
12 / 12
CRAP
100.00% covered (success)
100.00%
1 / 1
Quake
100.00% covered (success)
100.00%
25 / 25
100.00% covered (success)
100.00%
12 / 12
100.00% covered (success)
100.00%
12 / 12
100.00% covered (success)
100.00%
12 / 12
12
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
7 / 7
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 __destruct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 __toString
100.00% covered (success)
100.00%
8 / 8
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 eventId
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 originTimeObj
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 originTimeUTC
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 originTimeUTCISO8601
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 magnitude
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 epicenter
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 location
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 author
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 eventType
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2namespace Fdsn\Webservices\Event\Structs;
3
4//use Fdsn\Webservices\Event\Structs\Magnitude;
5//use Fdsn\Webservices\Event\Structs\Epicenter;
6//use Fdsn\Webservices\Event\Structs\Location;
7//use Fdsn\Webservices\Event\Structs\Author;
8
9/**
10 * Data structure to handle information about earthquakes
11 * This object must be instantiated only with quake data
12 * 
13 * @param Id $eventId        EventID according to INGV ONT ID (see https://terremoti.ingv.it/)
14 * @param \DateTime|null    $originTimeUTC        Quake UTC origin time, in ISO 8601 format (see: date('c'))
15 * @param Location|null     $location        Where the quake origin is
16 * @param Magnitude|null     $magnitude        Magnitude obj
17 * @param Epicenter|null     $epicenter         Epicenter obj
18 * @param Author|null         $author            Author obj
19 * @param EventType|null    $eventType        EventType obj
20 */
21class Quake {
22    private Id $eventId;
23    private \DateTime $originTimeUTC;
24    private Location  $location;
25    private Magnitude $magnitude;
26    private Epicenter $epicenter;
27    private Author $author;
28    private EventType $eventType;
29
30    function __construct(
31        Id    $eventId,
32        \DateTime $originTimeUTC,
33        Location  $location,
34        Magnitude $magnitude,
35        Epicenter $epicenter,
36        ?Author    $author = null,
37        ?EventType $eventType = null) {
38
39        $this->eventId = $eventId;
40        $this->originTimeUTC = $originTimeUTC;
41        $this->location = $location;
42        $this->magnitude = $magnitude;
43        $this->epicenter = $epicenter;
44        $this->author = $author;
45        $this->eventType = $eventType;
46    }
47
48    function __destruct(){ }
49
50    /**
51     * Returns quake details
52     *
53     * @return string Quake details: eventId, originTimeUTC, magnitude, epicenter, location
54     */
55    function __toString(){
56        return sprintf("Quake ID %s, on %s, mag: %s, origin: %s, location: %s, type: %s)",
57            $this->eventId,  //it's already converted to int in Id::__toString()
58            $this->originTimeUTC(), 
59            $this->magnitude,
60            $this->epicenter,
61            $this->location,
62            $this->eventType
63        );
64    }
65
66    /**
67     * Get event ID
68     *
69     * @return int Event ID
70     */
71    public function eventId():Id { return $this->eventId; }
72
73    /**
74     * Get origin time as DateTime obj
75     *
76     * @return \DateTime origin time as DateTime obj
77     */
78    public function originTimeObj():\DateTime{ return $this->originTimeUTC; }
79
80    /**
81     * Get UTC origin time
82     *
83     * @return int UTC Origin time in YYYY-mm-ddTHH:mm:ss
84     */
85    public function originTimeUTC():string { return $this->originTimeUTC->format('Y-m-d\TH:i:s'); }
86
87    /**
88     * Get UTC origin time
89     *
90     * @return int UTC Origin time in YYYY-mm-ddTHH:mm:ss
91     */
92    public function originTimeUTCISO8601():string { return $this->originTimeUTC->format('c'); }
93
94    /**
95     * Get magnitude
96     *
97     * @return Magnitude Magnitude obj
98     */
99    public function magnitude():Magnitude { return $this->magnitude; }
100
101    /**
102     * Get epicenter
103     *
104     * @return Epicenter Epicenter obj
105     */
106    public function epicenter():Epicenter { return $this->epicenter; }
107
108    /**
109     * Get location
110     *
111     * @return Location Location obj
112     */
113    public function location():Location { return $this->location; }
114
115    /**
116     * Get author
117     *
118     * @return Author Author obj
119     */
120    public function author():?Author { return $this->author; }
121
122    /**
123     * Get event type
124     *
125     * @return EventType EventType obj
126     */
127    public function eventType():?EventType{ return $this->eventType; }
128}

Paths

Below are the source code lines that represent each code path as identified by Xdebug. Please note a path is not necessarily coterminous with a line, a line may contain multiple paths and therefore show up more than once. Please also be aware that some paths may include implicit rather than explicit branches, e.g. an if statement always has an else as part of its logical flow even if you didn't write one.

Quake->__construct
30    function __construct(
31        Id    $eventId,
32        \DateTime $originTimeUTC,
33        Location  $location,
34        Magnitude $magnitude,
35        Epicenter $epicenter,
36        ?Author    $author = null,
37        ?EventType $eventType = null) {
38
39        $this->eventId = $eventId;
40        $this->originTimeUTC = $originTimeUTC;
41        $this->location = $location;
42        $this->magnitude = $magnitude;
43        $this->epicenter = $epicenter;
44        $this->author = $author;
45        $this->eventType = $eventType;
46    }
Quake->__destruct
48    function __destruct(){ }
Quake->__toString
56        return sprintf("Quake ID %s, on %s, mag: %s, origin: %s, location: %s, type: %s)",
57            $this->eventId,  //it's already converted to int in Id::__toString()
58            $this->originTimeUTC(), 
59            $this->magnitude,
60            $this->epicenter,
61            $this->location,
62            $this->eventType
63        );
64    }
Quake->author
120    public function author():?Author { return $this->author; }
Quake->epicenter
106    public function epicenter():Epicenter { return $this->epicenter; }
Quake->eventId
71    public function eventId():Id { return $this->eventId; }
Quake->eventType
127    public function eventType():?EventType{ return $this->eventType; }
Quake->location
113    public function location():Location { return $this->location; }
Quake->magnitude
99    public function magnitude():Magnitude { return $this->magnitude; }
Quake->originTimeObj
78    public function originTimeObj():\DateTime{ return $this->originTimeUTC; }
Quake->originTimeUTC
85    public function originTimeUTC():string { return $this->originTimeUTC->format('Y-m-d\TH:i:s'); }
Quake->originTimeUTCISO8601
92    public function originTimeUTCISO8601():string { return $this->originTimeUTC->format('c'); }