diff --git a/psalm-baseline.xml b/psalm-baseline.xml index fc764df..1448363 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -1,5 +1,5 @@ - + $label @@ -1006,6 +1006,11 @@ Generator + + + $extensionName + + $resultClass diff --git a/src/Check/AbstractMemoryCheck.php b/src/Check/AbstractMemoryCheck.php index 459902a..08a42aa 100644 --- a/src/Check/AbstractMemoryCheck.php +++ b/src/Check/AbstractMemoryCheck.php @@ -82,14 +82,14 @@ public function check() ); if ($percentUsed > $this->criticalThreshold) { - return new Failure($message); + return new Failure($message, $percentUsed); } if ($percentUsed > $this->warningThreshold) { - return new Warning($message); + return new Warning($message, $percentUsed); } - return new Success($message); + return new Success($message, $percentUsed); } /** diff --git a/src/Check/ApcFragmentation.php b/src/Check/ApcFragmentation.php index 37f0149..921d087 100644 --- a/src/Check/ApcFragmentation.php +++ b/src/Check/ApcFragmentation.php @@ -134,13 +134,13 @@ public function check() $message = sprintf('%.0f%% memory fragmentation.', $fragPercent); if ($fragPercent > $this->criticalThreshold) { - return new Failure($message); + return new Failure($message, $fragPercent); } if ($fragPercent > $this->warningThreshold) { - return new Warning($message); + return new Warning($message, $fragPercent); } - return new Success($message); + return new Success($message, $fragPercent); } } diff --git a/src/Check/DiskUsage.php b/src/Check/DiskUsage.php index 3eabb0b..0dd7e35 100644 --- a/src/Check/DiskUsage.php +++ b/src/Check/DiskUsage.php @@ -95,13 +95,13 @@ public function check() $dp = ($du / $dt) * 100; if ($dp >= $this->criticalThreshold) { - return new Failure(sprintf('Disk usage too high: %2d percent.', $dp)); + return new Failure(sprintf('Disk usage too high: %2d percent.', $dp), $dp); } if ($dp >= $this->warningThreshold) { - return new Warning(sprintf('Disk usage high: %2d percent.', $dp)); + return new Warning(sprintf('Disk usage high: %2d percent.', $dp), $dp); } - return new Success(sprintf('Disk usage is %2d percent.', $dp)); + return new Success(sprintf('Disk usage is %2d percent.', $dp), $dp); } } diff --git a/src/Check/ExtensionLoaded.php b/src/Check/ExtensionLoaded.php index 5f0eeca..3a16853 100644 --- a/src/Check/ExtensionLoaded.php +++ b/src/Check/ExtensionLoaded.php @@ -67,9 +67,9 @@ public function check() } if (count($missing)) { if (count($missing) > 1) { - return new Failure('Extensions ' . implode(', ', $missing) . ' are not available.'); + return new Failure('Extensions ' . implode(', ', $missing) . ' are not available.', $missing); } else { - return new Failure('Extension ' . implode('', $missing) . ' is not available.'); + return new Failure('Extension ' . implode('', $missing) . ' is not available.', $missing); } } else { if (count($this->extensions) > 1) { diff --git a/test/DiskUsageTest.php b/test/DiskUsageTest.php index 7c308f5..43ac40e 100644 --- a/test/DiskUsageTest.php +++ b/test/DiskUsageTest.php @@ -41,16 +41,19 @@ public function testCheck(): void $result = $check->check(); self::assertInstanceof(SuccessInterface::class, $result); + self::assertSame($dp, $result->getData()); $check = new DiskUsage($dp - 1, 100, $this->getTempDir()); $result = $check->check(); self::assertInstanceof(WarningInterface::class, $result); + self::assertSame($dp, $result->getData()); $check = new DiskUsage(0, $dp - 1, $this->getTempDir()); $result = $check->check(); self::assertInstanceof(FailureInterface::class, $result); + self::assertSame($dp, $result->getData()); } public function invalidArgumentProvider(): array diff --git a/test/ExtensionLoadedTest.php b/test/ExtensionLoadedTest.php new file mode 100644 index 0000000..c0a9890 --- /dev/null +++ b/test/ExtensionLoadedTest.php @@ -0,0 +1,68 @@ +expectException(InvalidArgumentException::class); + + new ExtensionLoaded($extensionName); + } + + public function testCheck(): void + { + $check = new ExtensionLoaded('json'); + $result = $check->check(); + + self::assertInstanceof(SuccessInterface::class, $result); + self::assertSame('json ' . phpversion('json'), $result->getData()); + + $check = new ExtensionLoaded(['json', 'xml']); + $result = $check->check(); + + self::assertInstanceof(SuccessInterface::class, $result); + self::assertSame(['json' => phpversion('json'), 'xml' => phpversion('xml')], $result->getData()); + } + + public function testCheckMissingExtension(): void + { + $check = new ExtensionLoaded('unknown-foo'); + $result = $check->check(); + + self::assertInstanceof(FailureInterface::class, $result); + self::assertSame(['unknown-foo'], $result->getData()); + + $check = new ExtensionLoaded(['unknown-foo', 'unknown-bar']); + $result = $check->check(); + + self::assertInstanceof(FailureInterface::class, $result); + self::assertSame(['unknown-foo', 'unknown-bar'], $result->getData()); + } + + /** + * @return array> + */ + public function invalidArgumentProvider(): array + { + return [ + [new stdClass()], + [100], + ]; + } +}