Passed
Branch master (4b23d6)
by Tim
04:40
created

Expiration   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 45
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 4
eloc 19
dl 0
loc 45
rs 10
c 1
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A initialize() 0 6 1
A invokeTest() 0 19 3
1
<?php
2
3
namespace SimpleSAML\Module\Monitor\TestCase\Metadata;
4
5
use SimpleSAML\Module\Monitor\State;
6
use SimpleSAML\Module\Monitor\TestData;
7
use SimpleSAML\Module\Monitor\TestResult;
8
9
final class Expiration extends \SimpleSAML\Module\Monitor\TestCaseFactory
10
{
11
    /** @var string */
12
    private $entityId;
13
14
    /** @var array */
15
    private $metadata;
16
17
18
    /**
19
     * @param \SimpleSAML\Module\Monitor\TestData $testData
20
     *
21
     * @return void
22
     */
23
    protected function initialize(TestData $testData): void
24
    {
25
        $this->entityId = $testData->getInputItem('entityId');
26
        $this->metadata = $testData->getInputItem('entityMetadata');
27
28
        parent::initialize($testData);
29
    }
30
31
32
    /**
33
     * @return void
34
     */
35
    public function invokeTest(): void
36
    {
37
        $testResult = new TestResult('Metadata expiration', $this->entityId);
38
39
        if (array_key_exists('expire', $this->metadata)) {
40
            $expiration = $this->metadata['expire'];
41
            if ($expiration <= time()) {
42
                $testResult->setState(State::ERROR);
43
                $testResult->setMessage('Metadata has expired');
44
            } else {
45
                $testResult->setState(State::OK);
46
                $testResult->setMessage('Metadata will expire on ' . strftime('%c', $expiration));
47
            }
48
        } else {
49
            $testResult->setState(State::OK);
50
            $testResult->setMessage('Metadata never expires');
51
        }
52
53
        $this->setTestResult($testResult);
54
    }
55
}
56