Code Coverage
 
Lines
Branches
Paths
Functions and Methods
Classes and Traits
Total
80.95% covered (warning)
80.95%
17 / 21
73.33% covered (warning)
73.33%
11 / 15
14.29% covered (danger)
14.29%
2 / 14
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
Json
80.95% covered (warning)
80.95%
17 / 21
73.33% covered (warning)
73.33%
11 / 15
14.29% covered (danger)
14.29%
2 / 14
0.00% covered (danger)
0.00%
0 / 1
37.86
0.00% covered (danger)
0.00%
0 / 1
 fetch
80.95% covered (warning)
80.95%
17 / 21
73.33% covered (warning)
73.33%
11 / 15
14.29% covered (danger)
14.29%
2 / 14
0.00% covered (danger)
0.00%
0 / 1
37.86
1<?php
2namespace Hsit\Webservice\Event\ThematicEffect;
3
4use Hsit\Webservice\Event\ThematicEffect as HWE_ThematicEffect;
5use Fdsn\DataStructure\Id as DS_Id;
6use Fdsn\DataStructure\LatLon as DS_LatLon;
7
8/**
9 * Fetch Json thematic effect data from HSIT portal
10 * 
11 * @param Fdsn\DataStructure\Id $fdsnQuakeId Id quake to scan for data
12 * @param string $thematicEffect study (now only ????? are supported)
13 * @param string $localFileFullPath base url to fetch local file (filepath will be: baseUrl/<hsit_filename>.txt) 
14 */
15class Json extends HWE_ThematicEffect {
16    protected const fileExtension = 'json';
17    
18    /**
19     * fetch data from url  (remote or local - if $localFileFullPath is set in __construct)
20     * 
21     * @return int number of data found
22     */
23    public function fetch():int{
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
25        $data = json_decode($jsonString, true);
26
27        if( ! array_key_exists('Quakes', $data) )
28            return -1;
29
30        if( ! array_key_exists($this->idQuake->value(), $data['Quakes']) )
31            return -2;
32
33        if( ! array_key_exists('MacroseismicData', $data['Quakes'][$this->idQuake->value()]) )
34            return -3;
35
36        if( ! array_key_exists('MDPs', $data['Quakes'][$this->idQuake->value()]['MacroseismicData']) )
37            return -4;
38
39        $mdpsArray = $data['Quakes'][$this->idQuake->value()]['MacroseismicData']['MDPs'];
40
41        foreach($mdpsArray as $mdp){
42            $this->places[] = array(
43                'point' => new DS_LatLon($mdp['TerritorialUnit']['Coordinates']['Latitude'], $mdp['TerritorialUnit']['Coordinates']['Longitude']),
44                'percentage' => $mdp['Value'],
45                'reports' =>  $mdp['QuestNumber']['Total'],
46                'felt' =>  $mdp['QuestNumber']['Felt'],
47                'notFelt' =>  $mdp['QuestNumber']['NotFelt'],
48                'place' => $mdp['TerritorialUnit']['Name']
49
50            );
51        }
52
53        return count($this->places);
54    }
55}
56?>

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.

Json->fetch
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
 
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
 
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
25        $data = json_decode($jsonString, true);
26
27        if( ! array_key_exists('Quakes', $data) )
 
28            return -1;
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
 
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
 
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
25        $data = json_decode($jsonString, true);
26
27        if( ! array_key_exists('Quakes', $data) )
 
30        if( ! array_key_exists($this->idQuake->value(), $data['Quakes']) )
 
31            return -2;
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
 
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
 
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
25        $data = json_decode($jsonString, true);
26
27        if( ! array_key_exists('Quakes', $data) )
 
30        if( ! array_key_exists($this->idQuake->value(), $data['Quakes']) )
 
33        if( ! array_key_exists('MacroseismicData', $data['Quakes'][$this->idQuake->value()]) )
 
34            return -3;
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
 
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
 
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
25        $data = json_decode($jsonString, true);
26
27        if( ! array_key_exists('Quakes', $data) )
 
30        if( ! array_key_exists($this->idQuake->value(), $data['Quakes']) )
 
33        if( ! array_key_exists('MacroseismicData', $data['Quakes'][$this->idQuake->value()]) )
 
36        if( ! array_key_exists('MDPs', $data['Quakes'][$this->idQuake->value()]['MacroseismicData']) )
 
37            return -4;
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
 
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
 
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
25        $data = json_decode($jsonString, true);
26
27        if( ! array_key_exists('Quakes', $data) )
 
30        if( ! array_key_exists($this->idQuake->value(), $data['Quakes']) )
 
33        if( ! array_key_exists('MacroseismicData', $data['Quakes'][$this->idQuake->value()]) )
 
36        if( ! array_key_exists('MDPs', $data['Quakes'][$this->idQuake->value()]['MacroseismicData']) )
 
39        $mdpsArray = $data['Quakes'][$this->idQuake->value()]['MacroseismicData']['MDPs'];
40
41        foreach($mdpsArray as $mdp){
 
41        foreach($mdpsArray as $mdp){
 
41        foreach($mdpsArray as $mdp){
42            $this->places[] = array(
43                'point' => new DS_LatLon($mdp['TerritorialUnit']['Coordinates']['Latitude'], $mdp['TerritorialUnit']['Coordinates']['Longitude']),
 
41        foreach($mdpsArray as $mdp){
 
41        foreach($mdpsArray as $mdp){
42            $this->places[] = array(
43                'point' => new DS_LatLon($mdp['TerritorialUnit']['Coordinates']['Latitude'], $mdp['TerritorialUnit']['Coordinates']['Longitude']),
44                'percentage' => $mdp['Value'],
45                'reports' =>  $mdp['QuestNumber']['Total'],
46                'felt' =>  $mdp['QuestNumber']['Felt'],
47                'notFelt' =>  $mdp['QuestNumber']['NotFelt'],
48                'place' => $mdp['TerritorialUnit']['Name']
49
50            );
51        }
52
53        return count($this->places);
54    }
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
 
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
 
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
25        $data = json_decode($jsonString, true);
26
27        if( ! array_key_exists('Quakes', $data) )
 
30        if( ! array_key_exists($this->idQuake->value(), $data['Quakes']) )
 
33        if( ! array_key_exists('MacroseismicData', $data['Quakes'][$this->idQuake->value()]) )
 
36        if( ! array_key_exists('MDPs', $data['Quakes'][$this->idQuake->value()]['MacroseismicData']) )
 
39        $mdpsArray = $data['Quakes'][$this->idQuake->value()]['MacroseismicData']['MDPs'];
40
41        foreach($mdpsArray as $mdp){
 
41        foreach($mdpsArray as $mdp){
 
41        foreach($mdpsArray as $mdp){
42            $this->places[] = array(
43                'point' => new DS_LatLon($mdp['TerritorialUnit']['Coordinates']['Latitude'], $mdp['TerritorialUnit']['Coordinates']['Longitude']),
44                'percentage' => $mdp['Value'],
45                'reports' =>  $mdp['QuestNumber']['Total'],
46                'felt' =>  $mdp['QuestNumber']['Felt'],
47                'notFelt' =>  $mdp['QuestNumber']['NotFelt'],
48                'place' => $mdp['TerritorialUnit']['Name']
49
50            );
51        }
52
53        return count($this->places);
54    }
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
 
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
 
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
25        $data = json_decode($jsonString, true);
26
27        if( ! array_key_exists('Quakes', $data) )
 
30        if( ! array_key_exists($this->idQuake->value(), $data['Quakes']) )
 
33        if( ! array_key_exists('MacroseismicData', $data['Quakes'][$this->idQuake->value()]) )
 
36        if( ! array_key_exists('MDPs', $data['Quakes'][$this->idQuake->value()]['MacroseismicData']) )
 
39        $mdpsArray = $data['Quakes'][$this->idQuake->value()]['MacroseismicData']['MDPs'];
40
41        foreach($mdpsArray as $mdp){
 
41        foreach($mdpsArray as $mdp){
42            $this->places[] = array(
43                'point' => new DS_LatLon($mdp['TerritorialUnit']['Coordinates']['Latitude'], $mdp['TerritorialUnit']['Coordinates']['Longitude']),
44                'percentage' => $mdp['Value'],
45                'reports' =>  $mdp['QuestNumber']['Total'],
46                'felt' =>  $mdp['QuestNumber']['Felt'],
47                'notFelt' =>  $mdp['QuestNumber']['NotFelt'],
48                'place' => $mdp['TerritorialUnit']['Name']
49
50            );
51        }
52
53        return count($this->places);
54    }
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
 
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
 
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
25        $data = json_decode($jsonString, true);
26
27        if( ! array_key_exists('Quakes', $data) )
 
28            return -1;
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
 
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
 
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
25        $data = json_decode($jsonString, true);
26
27        if( ! array_key_exists('Quakes', $data) )
 
30        if( ! array_key_exists($this->idQuake->value(), $data['Quakes']) )
 
31            return -2;
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
 
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
 
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
25        $data = json_decode($jsonString, true);
26
27        if( ! array_key_exists('Quakes', $data) )
 
30        if( ! array_key_exists($this->idQuake->value(), $data['Quakes']) )
 
33        if( ! array_key_exists('MacroseismicData', $data['Quakes'][$this->idQuake->value()]) )
 
34            return -3;
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
 
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
 
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
25        $data = json_decode($jsonString, true);
26
27        if( ! array_key_exists('Quakes', $data) )
 
30        if( ! array_key_exists($this->idQuake->value(), $data['Quakes']) )
 
33        if( ! array_key_exists('MacroseismicData', $data['Quakes'][$this->idQuake->value()]) )
 
36        if( ! array_key_exists('MDPs', $data['Quakes'][$this->idQuake->value()]['MacroseismicData']) )
 
37            return -4;
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
 
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
 
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
25        $data = json_decode($jsonString, true);
26
27        if( ! array_key_exists('Quakes', $data) )
 
30        if( ! array_key_exists($this->idQuake->value(), $data['Quakes']) )
 
33        if( ! array_key_exists('MacroseismicData', $data['Quakes'][$this->idQuake->value()]) )
 
36        if( ! array_key_exists('MDPs', $data['Quakes'][$this->idQuake->value()]['MacroseismicData']) )
 
39        $mdpsArray = $data['Quakes'][$this->idQuake->value()]['MacroseismicData']['MDPs'];
40
41        foreach($mdpsArray as $mdp){
 
41        foreach($mdpsArray as $mdp){
 
41        foreach($mdpsArray as $mdp){
42            $this->places[] = array(
43                'point' => new DS_LatLon($mdp['TerritorialUnit']['Coordinates']['Latitude'], $mdp['TerritorialUnit']['Coordinates']['Longitude']),
 
41        foreach($mdpsArray as $mdp){
 
41        foreach($mdpsArray as $mdp){
42            $this->places[] = array(
43                'point' => new DS_LatLon($mdp['TerritorialUnit']['Coordinates']['Latitude'], $mdp['TerritorialUnit']['Coordinates']['Longitude']),
44                'percentage' => $mdp['Value'],
45                'reports' =>  $mdp['QuestNumber']['Total'],
46                'felt' =>  $mdp['QuestNumber']['Felt'],
47                'notFelt' =>  $mdp['QuestNumber']['NotFelt'],
48                'place' => $mdp['TerritorialUnit']['Name']
49
50            );
51        }
52
53        return count($this->places);
54    }
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
 
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
 
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
25        $data = json_decode($jsonString, true);
26
27        if( ! array_key_exists('Quakes', $data) )
 
30        if( ! array_key_exists($this->idQuake->value(), $data['Quakes']) )
 
33        if( ! array_key_exists('MacroseismicData', $data['Quakes'][$this->idQuake->value()]) )
 
36        if( ! array_key_exists('MDPs', $data['Quakes'][$this->idQuake->value()]['MacroseismicData']) )
 
39        $mdpsArray = $data['Quakes'][$this->idQuake->value()]['MacroseismicData']['MDPs'];
40
41        foreach($mdpsArray as $mdp){
 
41        foreach($mdpsArray as $mdp){
 
41        foreach($mdpsArray as $mdp){
42            $this->places[] = array(
43                'point' => new DS_LatLon($mdp['TerritorialUnit']['Coordinates']['Latitude'], $mdp['TerritorialUnit']['Coordinates']['Longitude']),
44                'percentage' => $mdp['Value'],
45                'reports' =>  $mdp['QuestNumber']['Total'],
46                'felt' =>  $mdp['QuestNumber']['Felt'],
47                'notFelt' =>  $mdp['QuestNumber']['NotFelt'],
48                'place' => $mdp['TerritorialUnit']['Name']
49
50            );
51        }
52
53        return count($this->places);
54    }
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
 
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
 
24        $jsonString = is_null($this->localFileFullPath) ? $this->fetchFromUrl() : $this->fetchFromLocalPath();
25        $data = json_decode($jsonString, true);
26
27        if( ! array_key_exists('Quakes', $data) )
 
30        if( ! array_key_exists($this->idQuake->value(), $data['Quakes']) )
 
33        if( ! array_key_exists('MacroseismicData', $data['Quakes'][$this->idQuake->value()]) )
 
36        if( ! array_key_exists('MDPs', $data['Quakes'][$this->idQuake->value()]['MacroseismicData']) )
 
39        $mdpsArray = $data['Quakes'][$this->idQuake->value()]['MacroseismicData']['MDPs'];
40
41        foreach($mdpsArray as $mdp){
 
41        foreach($mdpsArray as $mdp){
42            $this->places[] = array(
43                'point' => new DS_LatLon($mdp['TerritorialUnit']['Coordinates']['Latitude'], $mdp['TerritorialUnit']['Coordinates']['Longitude']),
44                'percentage' => $mdp['Value'],
45                'reports' =>  $mdp['QuestNumber']['Total'],
46                'felt' =>  $mdp['QuestNumber']['Felt'],
47                'notFelt' =>  $mdp['QuestNumber']['NotFelt'],
48                'place' => $mdp['TerritorialUnit']['Name']
49
50            );
51        }
52
53        return count($this->places);
54    }