forked from alexjustesen/speedtest-tracker
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSpeedtestFakeResultGenerator.php
More file actions
127 lines (121 loc) · 4.66 KB
/
SpeedtestFakeResultGenerator.php
File metadata and controls
127 lines (121 loc) · 4.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<?php
namespace App\Services;
use App\Models\Result;
use Illuminate\Support\Str;
class SpeedtestFakeResultGenerator
{
public static function completed(): Result
{
$data = [
'isp' => 'Speedtest Communications',
'ping' => [
'low' => 17.841,
'high' => 24.077,
'jitter' => 1.878,
'latency' => 19.133,
],
'type' => 'result',
'result' => [
'id' => (string) Str::uuid(),
'url' => 'https://docs.speedtest-tracker.dev',
'persisted' => true,
],
'server' => [
'id' => 1234,
'ip' => '127.0.0.1',
'host' => 'docs.speedtest-tracker.dev',
'name' => 'Speedtest',
'port' => 8080,
'country' => 'United States',
'location' => 'New York City, NY',
],
'upload' => [
'bytes' => 124297377,
'elapsed' => 9628,
'latency' => [
'iqm' => 341.111,
'low' => 16.663,
'high' => 529.86,
'jitter' => 37.587,
],
'bandwidth' => 113750000,
],
'download' => [
'bytes' => 230789788,
'elapsed' => 14301,
'latency' => [
'iqm' => 104.125,
'low' => 23.72,
'high' => 269.563,
'jitter' => 13.447,
],
'bandwidth' => 115625000,
],
'interface' => [
'name' => 'eth0',
'isVpn' => false,
'macAddr' => '00:00:00:00:00:00',
'externalIp' => '127.0.0.1',
'internalIp' => '127.0.0.1',
],
'timestamp' => now()->toIso8601String(),
'packetLoss' => 11,
];
return new Result([
'ping' => $data['ping']['latency'],
'ping_low' => $data['ping']['low'],
'ping_high' => $data['ping']['high'],
'ping_jitter' => $data['ping']['jitter'],
'packet_loss' => $data['packetLoss'],
'download' => $data['download']['bandwidth'],
'download_bits' => $data['download']['bandwidth'],
'download_bytes' => $data['download']['bytes'],
'download_elapsed' => $data['download']['elapsed'],
'download_latency_iqm' => $data['download']['latency']['iqm'],
'download_latency_low' => $data['download']['latency']['low'],
'download_latency_high' => $data['download']['latency']['high'],
'download_latency_jitter' => $data['download']['latency']['jitter'],
'upload' => $data['upload']['bandwidth'],
'upload_bits' => $data['upload']['bandwidth'],
'upload_bytes' => $data['upload']['bytes'],
'upload_elapsed' => $data['upload']['elapsed'],
'upload_latency_iqm' => $data['upload']['latency']['iqm'],
'upload_latency_low' => $data['upload']['latency']['low'],
'upload_latency_high' => $data['upload']['latency']['high'],
'upload_latency_jitter' => $data['upload']['latency']['jitter'],
'server_id' => $data['server']['id'],
'server_ip' => $data['server']['ip'],
'server_host' => $data['server']['host'],
'server_name' => $data['server']['name'],
'server_port' => $data['server']['port'],
'server_country' => $data['server']['country'],
'server_location' => $data['server']['location'],
'interface_name' => $data['interface']['name'],
'interface_is_vpn' => $data['interface']['isVpn'],
'interface_mac_addr' => $data['interface']['macAddr'],
'interface_internal_ip' => $data['interface']['internalIp'],
'ip_address' => $data['interface']['externalIp'],
'uuid' => $data['result']['id'],
'result_url' => $data['result']['url'],
'data' => $data,
'status' => 'completed',
'service' => 'faker',
'scheduled' => false,
]);
}
public static function failed(): Result
{
$data = [
'type' => 'log',
'level' => 'error',
'message' => 'A faked error message.',
'timestamp' => now()->toIso8601String(),
];
return new Result([
'data' => $data,
'status' => 'failed',
'service' => 'faker',
'scheduled' => false,
]);
}
}