aboutsummaryrefslogtreecommitdiff
path: root/tests/cli
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2024-09-06 09:06:46 +0200
committerGravatar GitHub <noreply@github.com> 2024-09-06 09:06:46 +0200
commita81656c3ed5b8fe0f31794a4fbe0d1a907fca8e8 (patch)
tree8bf49bd876aaebc985a9fb1214863190a799cbee /tests/cli
parent8f7c3473a76809efc88814253722c76f0cc8eb04 (diff)
Upgrade to PHP 8.1 (#6711)
* Upgrade to PHP 8.1 As discussed in https://github.com/FreshRSS/FreshRSS/discussions/5474 https://www.php.net/releases/8.0/en.php https://www.php.net/releases/8.1/en.php Upgrade to available native type declarations https://php.net/language.types.declarations Upgrade to https://phpunit.de/announcements/phpunit-10.html which requires PHP 8.1+ (good timing, as version 9 was not maintained anymore) Upgrade `:oldest` Docker dev image to oldest Alpine version supporting PHP 8.1: Alpine 3.16, which includes PHP 8.1.22. * Include 6736 https://github.com/FreshRSS/FreshRSS/pull/6736
Diffstat (limited to 'tests/cli')
-rw-r--r--tests/cli/CliOptionsParserTest.php129
-rw-r--r--tests/cli/i18n/I18nCompletionValidatorTest.php2
-rw-r--r--tests/cli/i18n/I18nUsageValidatorTest.php2
-rw-r--r--tests/cli/i18n/I18nValueTest.php18
4 files changed, 63 insertions, 88 deletions
diff --git a/tests/cli/CliOptionsParserTest.php b/tests/cli/CliOptionsParserTest.php
index facb5dbc5..046617721 100644
--- a/tests/cli/CliOptionsParserTest.php
+++ b/tests/cli/CliOptionsParserTest.php
@@ -52,163 +52,138 @@ final class CliOptionsOptionalAndRequiredTest extends CliOptionsParser {
class CliOptionsParserTest extends TestCase {
- public function testInvalidOptionSetWithValueReturnsError(): void {
- $result = $this->runOptionalOptions('--invalid=invalid');
-
+ public static function testInvalidOptionSetWithValueReturnsError(): void {
+ $result = self::runOptionalOptions('--invalid=invalid');
self::assertEquals(['invalid' => 'unknown option: invalid'], $result->errors);
}
- public function testInvalidOptionSetWithoutValueReturnsError(): void {
- $result = $this->runOptionalOptions('--invalid');
-
+ public static function testInvalidOptionSetWithoutValueReturnsError(): void {
+ $result = self::runOptionalOptions('--invalid');
self::assertEquals(['invalid' => 'unknown option: invalid'], $result->errors);
}
- public function testValidOptionSetWithValidValueAndInvalidOptionSetWithValueReturnsValueForValidOptionAndErrorForInvalidOption(): void {
- $result = $this->runOptionalOptions('--string=string --invalid=invalid');
-
+ public static function testValidOptionSetWithValidValueAndInvalidOptionSetWithValueReturnsValueForValidOptionAndErrorForInvalidOption(): void {
+ $result = self::runOptionalOptions('--string=string --invalid=invalid');
self::assertEquals('string', $result->string);
self::assertEquals(['invalid' => 'unknown option: invalid'], $result->errors);
}
- public function testOptionWithValueTypeOfStringSetOnceWithValidValueReturnsValueAsString(): void {
- $result = $this->runOptionalOptions('--string=string');
-
+ public static function testOptionWithValueTypeOfStringSetOnceWithValidValueReturnsValueAsString(): void {
+ $result = self::runOptionalOptions('--string=string');
self::assertEquals('string', $result->string);
}
- public function testOptionWithRequiredValueTypeOfIntSetOnceWithValidValueReturnsValueAsInt(): void {
- $result = $this->runOptionalOptions('--int=111');
-
+ public static function testOptionWithRequiredValueTypeOfIntSetOnceWithValidValueReturnsValueAsInt(): void {
+ $result = self::runOptionalOptions('--int=111');
self::assertEquals(111, $result->int);
}
- public function testOptionWithRequiredValueTypeOfBoolSetOnceWithValidValueReturnsValueAsBool(): void {
- $result = $this->runOptionalOptions('--bool=on');
-
+ public static function testOptionWithRequiredValueTypeOfBoolSetOnceWithValidValueReturnsValueAsBool(): void {
+ $result = self::runOptionalOptions('--bool=on');
self::assertEquals(true, $result->bool);
}
- public function testOptionWithValueTypeOfArrayOfStringSetOnceWithValidValueReturnsValueAsArrayOfString(): void {
- $result = $this->runOptionalOptions('--array-of-string=string');
-
+ public static function testOptionWithValueTypeOfArrayOfStringSetOnceWithValidValueReturnsValueAsArrayOfString(): void {
+ $result = self::runOptionalOptions('--array-of-string=string');
self::assertEquals(['string'], $result->arrayOfString);
}
- public function testOptionWithValueTypeOfStringSetMultipleTimesWithValidValueReturnsLastValueSetAsString(): void {
- $result = $this->runOptionalOptions('--string=first --string=second');
-
+ public static function testOptionWithValueTypeOfStringSetMultipleTimesWithValidValueReturnsLastValueSetAsString(): void {
+ $result = self::runOptionalOptions('--string=first --string=second');
self::assertEquals('second', $result->string);
}
- public function testOptionWithValueTypeOfIntSetMultipleTimesWithValidValueReturnsLastValueSetAsInt(): void {
- $result = $this->runOptionalOptions('--int=111 --int=222');
-
+ public static function testOptionWithValueTypeOfIntSetMultipleTimesWithValidValueReturnsLastValueSetAsInt(): void {
+ $result = self::runOptionalOptions('--int=111 --int=222');
self::assertEquals(222, $result->int);
}
- public function testOptionWithValueTypeOfBoolSetMultipleTimesWithValidValueReturnsLastValueSetAsBool(): void {
- $result = $this->runOptionalOptions('--bool=on --bool=off');
-
+ public static function testOptionWithValueTypeOfBoolSetMultipleTimesWithValidValueReturnsLastValueSetAsBool(): void {
+ $result = self::runOptionalOptions('--bool=on --bool=off');
self::assertEquals(false, $result->bool);
}
- public function testOptionWithValueTypeOfArrayOfStringSetMultipleTimesWithValidValueReturnsAllSetValuesAsArrayOfString(): void {
- $result = $this->runOptionalOptions('--array-of-string=first --array-of-string=second');
-
+ public static function testOptionWithValueTypeOfArrayOfStringSetMultipleTimesWithValidValueReturnsAllSetValuesAsArrayOfString(): void {
+ $result = self::runOptionalOptions('--array-of-string=first --array-of-string=second');
self::assertEquals(['first', 'second'], $result->arrayOfString);
}
- public function testOptionWithValueTypeOfIntSetWithInvalidValueReturnsAnError(): void {
- $result = $this->runOptionalOptions('--int=one');
-
+ public static function testOptionWithValueTypeOfIntSetWithInvalidValueReturnsAnError(): void {
+ $result = self::runOptionalOptions('--int=one');
self::assertEquals(['int' => 'invalid input: int must be an integer'], $result->errors);
}
- public function testOptionWithValueTypeOfBoolSetWithInvalidValuesReturnsAnError(): void {
- $result = $this->runOptionalOptions('--bool=bad');
-
+ public static function testOptionWithValueTypeOfBoolSetWithInvalidValuesReturnsAnError(): void {
+ $result = self::runOptionalOptions('--bool=bad');
self::assertEquals(['bool' => 'invalid input: bool must be a boolean'], $result->errors);
}
- public function testOptionWithValueTypeOfIntSetMultipleTimesWithValidAndInvalidValuesReturnsLastValidValueSetAsIntAndError(): void {
- $result = $this->runOptionalOptions('--int=111 --int=one --int=222 --int=two');
-
+ public static function testOptionWithValueTypeOfIntSetMultipleTimesWithValidAndInvalidValuesReturnsLastValidValueSetAsIntAndError(): void {
+ $result = self::runOptionalOptions('--int=111 --int=one --int=222 --int=two');
self::assertEquals(222, $result->int);
self::assertEquals(['int' => 'invalid input: int must be an integer'], $result->errors);
}
- public function testOptionWithValueTypeOfBoolSetMultipleTimesWithWithValidAndInvalidValuesReturnsLastValidValueSetAsBoolAndError(): void {
- $result = $this->runOptionalOptions('--bool=on --bool=good --bool=off --bool=bad');
-
+ public static function testOptionWithValueTypeOfBoolSetMultipleTimesWithWithValidAndInvalidValuesReturnsLastValidValueSetAsBoolAndError(): void {
+ $result = self::runOptionalOptions('--bool=on --bool=good --bool=off --bool=bad');
self::assertEquals(false, $result->bool);
self::assertEquals(['bool' => 'invalid input: bool must be a boolean'], $result->errors);
}
- public function testNotSetOptionWithDefaultInputReturnsDefaultInput(): void {
- $result = $this->runOptionalOptions('');
-
+ public static function testNotSetOptionWithDefaultInputReturnsDefaultInput(): void {
+ $result = self::runOptionalOptions('');
self::assertEquals('default', $result->defaultInput);
}
- public function testOptionWithDefaultInputSetWithValidValueReturnsCorrectlyTypedValue(): void {
- $result = $this->runOptionalOptions('--default-input=input');
-
+ public static function testOptionWithDefaultInputSetWithValidValueReturnsCorrectlyTypedValue(): void {
+ $result = self::runOptionalOptions('--default-input=input');
self::assertEquals('input', $result->defaultInput);
}
- public function testOptionWithOptionalValueSetWithoutValueReturnsEmptyString(): void {
- $result = $this->runOptionalOptions('--optional-value');
-
+ public static function testOptionWithOptionalValueSetWithoutValueReturnsEmptyString(): void {
+ $result = self::runOptionalOptions('--optional-value');
self::assertEquals('', $result->optionalValue);
}
- public function testOptionWithOptionalValueDefaultSetWithoutValueReturnsOptionalValueDefault(): void {
- $result = $this->runOptionalOptions('--optional-value-with-default');
-
+ public static function testOptionWithOptionalValueDefaultSetWithoutValueReturnsOptionalValueDefault(): void {
+ $result = self::runOptionalOptions('--optional-value-with-default');
self::assertEquals(true, $result->optionalValueWithDefault);
}
- public function testNotSetOptionWithOptionalValueDefaultAndDefaultInputReturnsDefaultInput(): void {
- $result = $this->runOptionalOptions('');
-
+ public static function testNotSetOptionWithOptionalValueDefaultAndDefaultInputReturnsDefaultInput(): void {
+ $result = self::runOptionalOptions('');
self::assertEquals('default', $result->defaultInputAndOptionalValueWithDefault);
}
- public function testOptionWithOptionalValueDefaultAndDefaultInputSetWithoutValueReturnsOptionalValueDefault(): void {
- $result = $this->runOptionalOptions('--default-input-and-optional-value-with-default');
-
+ public static function testOptionWithOptionalValueDefaultAndDefaultInputSetWithoutValueReturnsOptionalValueDefault(): void {
+ $result = self::runOptionalOptions('--default-input-and-optional-value-with-default');
self::assertEquals('optional', $result->defaultInputAndOptionalValueWithDefault);
}
- public function testRequiredOptionNotSetReturnsError(): void {
- $result = $this->runOptionalAndRequiredOptions('');
-
+ public static function testRequiredOptionNotSetReturnsError(): void {
+ $result = self::runOptionalAndRequiredOptions('');
self::assertEquals(['required' => 'invalid input: required cannot be empty'], $result->errors);
}
- public function testOptionSetWithDeprecatedAliasGeneratesDeprecationWarningAndReturnsValue(): void {
- $result = $this->runCommandReadingStandardError('--deprecated-string=string');
-
+ public static function testOptionSetWithDeprecatedAliasGeneratesDeprecationWarningAndReturnsValue(): void {
+ $result = self::runCommandReadingStandardError('--deprecated-string=string');
self::assertEquals('FreshRSS deprecation warning: the CLI option(s): deprecated-string are deprecated ' .
'and will be removed in a future release. Use: string instead',
$result
);
- $result = $this->runOptionalOptions('--deprecated-string=string');
-
+ $result = self::runOptionalOptions('--deprecated-string=string');
self::assertEquals('string', $result->string);
}
- public function testAlwaysReturnUsageMessageWithUsageInfoForAllOptions(): void {
- $result = $this->runOptionalAndRequiredOptions('');
-
+ public static function testAlwaysReturnUsageMessageWithUsageInfoForAllOptions(): void {
+ $result = self::runOptionalAndRequiredOptions('');
self::assertEquals('Usage: cli-parser-test.php --required=<required> [-s --string=<string>] [-i --int=<int>] [-b --bool=<bool>] [-f --flag]',
$result->usage,
);
}
- private function runOptionalOptions(string $cliOptions = ''): CliOptionsOptionalTest {
+ private static function runOptionalOptions(string $cliOptions = ''): CliOptionsOptionalTest {
$command = __DIR__ . '/cli-parser-test.php';
$className = CliOptionsOptionalTest::class;
@@ -219,7 +194,7 @@ class CliOptionsParserTest extends TestCase {
return $result;
}
- private function runOptionalAndRequiredOptions(string $cliOptions = ''): CliOptionsOptionalAndRequiredTest {
+ private static function runOptionalAndRequiredOptions(string $cliOptions = ''): CliOptionsOptionalAndRequiredTest {
$command = __DIR__ . '/cli-parser-test.php';
$className = CliOptionsOptionalAndRequiredTest::class;
@@ -230,7 +205,7 @@ class CliOptionsParserTest extends TestCase {
return $result;
}
- private function runCommandReadingStandardError(string $cliOptions = ''): string {
+ private static function runCommandReadingStandardError(string $cliOptions = ''): string {
$command = __DIR__ . '/cli-parser-test.php';
$className = CliOptionsOptionalTest::class;
diff --git a/tests/cli/i18n/I18nCompletionValidatorTest.php b/tests/cli/i18n/I18nCompletionValidatorTest.php
index bc992edbe..f16285005 100644
--- a/tests/cli/i18n/I18nCompletionValidatorTest.php
+++ b/tests/cli/i18n/I18nCompletionValidatorTest.php
@@ -42,7 +42,7 @@ class I18nCompletionValidatorTest extends PHPUnit\Framework\TestCase {
$validator->displayReport();
}
- public function testValidateWhenNoData(): void {
+ public static function testValidateWhenNoData(): void {
$validator = new I18nCompletionValidator([], []);
self::assertTrue($validator->validate());
self::assertEquals('', $validator->displayResult());
diff --git a/tests/cli/i18n/I18nUsageValidatorTest.php b/tests/cli/i18n/I18nUsageValidatorTest.php
index 3135cef22..1c604390f 100644
--- a/tests/cli/i18n/I18nUsageValidatorTest.php
+++ b/tests/cli/i18n/I18nUsageValidatorTest.php
@@ -42,7 +42,7 @@ class I18nUsageValidatorTest extends PHPUnit\Framework\TestCase {
$validator->displayReport();
}
- public function testValidateWhenNoData(): void {
+ public static function testValidateWhenNoData(): void {
$validator = new I18nUsageValidator([], []);
self::assertTrue($validator->validate());
self::assertEquals('', $validator->displayResult());
diff --git a/tests/cli/i18n/I18nValueTest.php b/tests/cli/i18n/I18nValueTest.php
index 06d57eb08..44984d7b2 100644
--- a/tests/cli/i18n/I18nValueTest.php
+++ b/tests/cli/i18n/I18nValueTest.php
@@ -3,35 +3,35 @@ declare(strict_types=1);
require_once __DIR__ . '/../../../cli/i18n/I18nValue.php';
class I18nValueTest extends PHPUnit\Framework\TestCase {
- public function testConstructorWithoutState(): void {
+ public static function testConstructorWithoutState(): void {
$value = new I18nValue('some value');
self::assertEquals('some value', $value->getValue());
self::assertFalse($value->isIgnore());
self::assertFalse($value->isTodo());
}
- public function testConstructorWithUnknownState(): void {
+ public static function testConstructorWithUnknownState(): void {
$value = new I18nValue('some value -> unknown');
self::assertEquals('some value', $value->getValue());
self::assertFalse($value->isIgnore());
self::assertFalse($value->isTodo());
}
- public function testConstructorWithTodoState(): void {
+ public static function testConstructorWithTodoState(): void {
$value = new I18nValue('some value -> todo');
self::assertEquals('some value', $value->getValue());
self::assertFalse($value->isIgnore());
self::assertTrue($value->isTodo());
}
- public function testConstructorWithIgnoreState(): void {
+ public static function testConstructorWithIgnoreState(): void {
$value = new I18nValue('some value -> ignore');
self::assertEquals('some value', $value->getValue());
self::assertTrue($value->isIgnore());
self::assertFalse($value->isTodo());
}
- public function testClone(): void {
+ public static function testClone(): void {
$value = new I18nValue('some value');
$clonedValue = clone $value;
self::assertEquals('some value', $value->getValue());
@@ -42,21 +42,21 @@ class I18nValueTest extends PHPUnit\Framework\TestCase {
self::assertTrue($clonedValue->isTodo());
}
- public function testEqualWhenValueIsIdentical(): void {
+ public static function testEqualWhenValueIsIdentical(): void {
$value = new I18nValue('some value');
$clonedValue = clone $value;
self::assertTrue($value->equal($clonedValue));
self::assertTrue($clonedValue->equal($value));
}
- public function testEqualWhenValueIsDifferent(): void {
+ public static function testEqualWhenValueIsDifferent(): void {
$value = new I18nValue('some value');
$otherValue = new I18nValue('some other value');
self::assertFalse($value->equal($otherValue));
self::assertFalse($otherValue->equal($value));
}
- public function testStates(): void {
+ public static function testStates(): void {
$reflectionProperty = new ReflectionProperty(I18nValue::class, 'state');
$reflectionProperty->setAccessible(true);
@@ -74,7 +74,7 @@ class I18nValueTest extends PHPUnit\Framework\TestCase {
self::assertEquals('todo', $reflectionProperty->getValue($value));
}
- public function testToString(): void {
+ public static function testToString(): void {
$value = new I18nValue('some value');
self::assertEquals('some value', $value->__toString());
$value->markAsTodo();