Passed
Push — main ( 756af1...e120fa )
by Chema
03:55 queued 01:19
created

SendableRange   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Test Coverage

Coverage 68.75%

Importance

Changes 0
Metric Value
eloc 12
dl 0
loc 41
c 0
b 0
f 0
ccs 11
cts 16
cp 0.6875
rs 10
wmc 7

6 Methods

Rating   Name   Duplication   Size   Complexity  
A min() 0 3 1
A __construct() 0 4 1
A contains() 0 4 2
A withMinMax() 0 3 1
A max() 0 3 1
A default() 0 5 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace PhpLightning\Shared\Value;
6
7
final class SendableRange
8
{
9
    /** @var int 100 Minimum in msat (sat/1000) */
10
    private const DEFAULT_MIN_SENDABLE_IN_MILLISATS = 100_000;
0 ignored issues
show
Bug introduced by
The constant PhpLightning\Shared\Value\100_000 was not found. Maybe you did not declare it correctly or list all dependencies?
Loading history...
11
12
    /** @var int 10 000 000 Maximum in msat (sat/1000) */
13
    private const DEFAULT_MAX_SENDABLE_IN_MILLISATS = 10_000_000_000;
0 ignored issues
show
Bug introduced by
The constant PhpLightning\Shared\Value\10_000_000_000 was not found. Maybe you did not declare it correctly or list all dependencies?
Loading history...
14
15 5
    private function __construct(
16
        private int $min,
17
        private int $max,
18
    ) {
19 5
    }
20
21
    public static function default(): self
22
    {
23
        return self::withMinMax(
24
            self::DEFAULT_MIN_SENDABLE_IN_MILLISATS,
25
            self::DEFAULT_MAX_SENDABLE_IN_MILLISATS,
26
        );
27
    }
28
29 5
    public static function withMinMax(int $min, int $max): self
30
    {
31 5
        return new self($min, $max);
32
    }
33
34 3
    public function contains(int $amount): bool
35
    {
36 3
        return $amount >= $this->min
37 3
            && $amount <= $this->max;
38
    }
39
40 1
    public function min(): int
41
    {
42 1
        return $this->min;
43
    }
44
45 1
    public function max(): int
46
    {
47 1
        return $this->max;
48
    }
49
}
50