diff options
| author | 2024-12-27 12:12:49 +0100 | |
|---|---|---|
| committer | 2024-12-27 12:12:49 +0100 | |
| commit | b1d24fbdb7d1cc948c946295035dad6df550fb7e (patch) | |
| tree | 7b4365a04097a779659474fbb9281a9661512522 /tests/app/Models | |
| parent | 897e4a3f4a273d50c28157edb67612b2d7fa2e6f (diff) | |
PHPStan 2.0 (#7131)
* PHPStan 2.0
fix https://github.com/FreshRSS/FreshRSS/issues/6989
https://github.com/phpstan/phpstan/releases/tag/2.0.0
https://github.com/phpstan/phpstan/blob/2.0.x/UPGRADING.md
* More
* More
* Done
* fix i18n CLI
* Restore a PHPStan Next test
For work towards PHPStan Level 10
* 4 more on Level 10
* fix getTagsForEntry
* API at Level 10
* More Level 10
* Finish Minz at Level 10
* Finish CLI at Level 10
* Finish Controllers at Level 10
* More Level 10
* More
* Pass bleedingEdge
* Clean PHPStan options and add TODOs
* Level 10 for main config
* More
* Consitency array vs. list
* Sanitize themes get_infos
* Simplify TagDAO->getTagsForEntries()
* Finish reportAnyTypeWideningInVarTag
* Prepare checkBenevolentUnionTypes and checkImplicitMixed
* Fixes
* Refix
* Another fix
* Casing of __METHOD__ constant
Diffstat (limited to 'tests/app/Models')
| -rw-r--r-- | tests/app/Models/CategoryTest.php | 22 | ||||
| -rw-r--r-- | tests/app/Models/FeedDAOTest.php | 4 | ||||
| -rw-r--r-- | tests/app/Models/LogDAOTest.php | 9 | ||||
| -rw-r--r-- | tests/app/Models/SearchTest.php | 104 | ||||
| -rw-r--r-- | tests/app/Models/UserQueryTest.php | 22 |
5 files changed, 80 insertions, 81 deletions
diff --git a/tests/app/Models/CategoryTest.php b/tests/app/Models/CategoryTest.php index f9aa1a280..70bed7477 100644 --- a/tests/app/Models/CategoryTest.php +++ b/tests/app/Models/CategoryTest.php @@ -7,17 +7,17 @@ class CategoryTest extends PHPUnit\Framework\TestCase { public static function test__construct_whenNoParameters_createsObjectWithDefaultValues(): void { $category = new FreshRSS_Category(); - self::assertEquals(0, $category->id()); - self::assertEquals('', $category->name()); + self::assertSame(0, $category->id()); + self::assertSame('', $category->name()); } #[DataProvider('provideValidNames')] public static function test_name_whenValidValue_storesModifiedValue(string $input, string $expected): void { $category = new FreshRSS_Category($input); - self::assertEquals($expected, $category->name()); + self::assertSame($expected, $category->name()); } - /** @return array<array{string,string}> */ + /** @return list<array{string,string}> */ public static function provideValidNames(): array { return [ ['', ''], @@ -60,11 +60,11 @@ class CategoryTest extends PHPUnit\Framework\TestCase { self::assertCount(3, $feeds); $feed = reset($feeds) ?: FreshRSS_Feed::default(); - self::assertEquals('AAA', $feed->name()); + self::assertSame('AAA', $feed->name()); $feed = next($feeds) ?: FreshRSS_Feed::default(); - self::assertEquals('lll', $feed->name()); + self::assertSame('lll', $feed->name()); $feed = next($feeds) ?: FreshRSS_Feed::default(); - self::assertEquals('ZZZ', $feed->name()); + self::assertSame('ZZZ', $feed->name()); /** @var FreshRSS_Feed&PHPUnit\Framework\MockObject\MockObject */ $feed_4 = $this->getMockBuilder(FreshRSS_Feed::class) @@ -79,12 +79,12 @@ class CategoryTest extends PHPUnit\Framework\TestCase { self::assertCount(4, $feeds); $feed = reset($feeds) ?: FreshRSS_Feed::default(); - self::assertEquals('AAA', $feed->name()); + self::assertSame('AAA', $feed->name()); $feed = next($feeds) ?: FreshRSS_Feed::default(); - self::assertEquals('BBB', $feed->name()); + self::assertSame('BBB', $feed->name()); $feed = next($feeds) ?: FreshRSS_Feed::default(); - self::assertEquals('lll', $feed->name()); + self::assertSame('lll', $feed->name()); $feed = next($feeds) ?: FreshRSS_Feed::default(); - self::assertEquals('ZZZ', $feed->name()); + self::assertSame('ZZZ', $feed->name()); } } diff --git a/tests/app/Models/FeedDAOTest.php b/tests/app/Models/FeedDAOTest.php index 31cfc57f9..2c7f6488f 100644 --- a/tests/app/Models/FeedDAOTest.php +++ b/tests/app/Models/FeedDAOTest.php @@ -5,7 +5,7 @@ class FeedDAOTest extends PHPUnit\Framework\TestCase { public static function test_ttl_min(): void { $feed = new FreshRSS_Feed('https://example.net/', false); $feed->_ttl(-5); - self::assertEquals(-5, $feed->ttl(true)); - self::assertEquals(true, $feed->mute()); + self::assertSame(-5, $feed->ttl(true)); + self::assertTrue($feed->mute()); } } diff --git a/tests/app/Models/LogDAOTest.php b/tests/app/Models/LogDAOTest.php index 90261ae55..1950a12c8 100644 --- a/tests/app/Models/LogDAOTest.php +++ b/tests/app/Models/LogDAOTest.php @@ -22,15 +22,14 @@ class LogDAOTest extends TestCase { } public function test_lines_is_array_and_truncate_function_work(): void { - self::assertEquals(USERS_PATH . '/' . Minz_User::INTERNAL_USER . '/' . self::LOG_FILE_TEST, $this->logPath); + self::assertSame(USERS_PATH . '/' . Minz_User::INTERNAL_USER . '/' . self::LOG_FILE_TEST, $this->logPath); $line = $this->logDAO::lines(self::LOG_FILE_TEST); self::assertCount(1, $line); - self::assertInstanceOf(FreshRSS_Log::class, $line[0]); - self::assertEquals('Wed, 08 Feb 2023 15:35:05 +0000', $line[0]->date()); - self::assertEquals('notice', $line[0]->level()); - self::assertEquals("Migration 2019_12_22_FooBar: OK", $line[0]->info()); + self::assertSame('Wed, 08 Feb 2023 15:35:05 +0000', $line[0]->date()); + self::assertSame('notice', $line[0]->level()); + self::assertSame("Migration 2019_12_22_FooBar: OK", $line[0]->info()); $this->logDAO::truncate(self::LOG_FILE_TEST); diff --git a/tests/app/Models/SearchTest.php b/tests/app/Models/SearchTest.php index 04da65d3a..81b4ac1fb 100644 --- a/tests/app/Models/SearchTest.php +++ b/tests/app/Models/SearchTest.php @@ -10,7 +10,7 @@ class SearchTest extends PHPUnit\Framework\TestCase { #[DataProvider('provideEmptyInput')] public static function test__construct_whenInputIsEmpty_getsOnlyNullValues(string $input): void { $search = new FreshRSS_Search($input); - self::assertEquals('', $search->getRawInput()); + self::assertSame('', $search->getRawInput()); self::assertNull($search->getIntitle()); self::assertNull($search->getMinDate()); self::assertNull($search->getMaxDate()); @@ -40,12 +40,12 @@ class SearchTest extends PHPUnit\Framework\TestCase { #[DataProvider('provideIntitleSearch')] public static function test__construct_whenInputContainsIntitle_setsIntitleProperty(string $input, ?array $intitle_value, ?array $search_value): void { $search = new FreshRSS_Search($input); - self::assertEquals($intitle_value, $search->getIntitle()); - self::assertEquals($search_value, $search->getSearch()); + self::assertSame($intitle_value, $search->getIntitle()); + self::assertSame($search_value, $search->getSearch()); } /** - * @return array<array<mixed>> + * @return list<list<mixed>> */ public static function provideIntitleSearch(): array { return [ @@ -77,12 +77,12 @@ class SearchTest extends PHPUnit\Framework\TestCase { #[DataProvider('provideAuthorSearch')] public static function test__construct_whenInputContainsAuthor_setsAuthorValue(string $input, ?array $author_value, ?array $search_value): void { $search = new FreshRSS_Search($input); - self::assertEquals($author_value, $search->getAuthor()); - self::assertEquals($search_value, $search->getSearch()); + self::assertSame($author_value, $search->getAuthor()); + self::assertSame($search_value, $search->getSearch()); } /** - * @return array<array<mixed>> + * @return list<list<mixed>> */ public static function provideAuthorSearch(): array { return [ @@ -114,12 +114,12 @@ class SearchTest extends PHPUnit\Framework\TestCase { #[DataProvider('provideInurlSearch')] public static function test__construct_whenInputContainsInurl_setsInurlValue(string $input, ?array $inurl_value, ?array $search_value): void { $search = new FreshRSS_Search($input); - self::assertEquals($inurl_value, $search->getInurl()); - self::assertEquals($search_value, $search->getSearch()); + self::assertSame($inurl_value, $search->getInurl()); + self::assertSame($search_value, $search->getSearch()); } /** - * @return array<array<mixed>> + * @return list<list<mixed>> */ public static function provideInurlSearch(): array { return [ @@ -137,12 +137,12 @@ class SearchTest extends PHPUnit\Framework\TestCase { #[DataProvider('provideDateSearch')] public static function test__construct_whenInputContainsDate_setsDateValues(string $input, ?int $min_date_value, ?int $max_date_value): void { $search = new FreshRSS_Search($input); - self::assertEquals($min_date_value, $search->getMinDate()); - self::assertEquals($max_date_value, $search->getMaxDate()); + self::assertSame($min_date_value, $search->getMinDate()); + self::assertSame($max_date_value, $search->getMaxDate()); } /** - * @return array<array<mixed>> + * @return list<list<mixed>> */ public static function provideDateSearch(): array { return [ @@ -158,12 +158,12 @@ class SearchTest extends PHPUnit\Framework\TestCase { #[DataProvider('providePubdateSearch')] public static function test__construct_whenInputContainsPubdate_setsPubdateValues(string $input, ?int $min_pubdate_value, ?int $max_pubdate_value): void { $search = new FreshRSS_Search($input); - self::assertEquals($min_pubdate_value, $search->getMinPubdate()); - self::assertEquals($max_pubdate_value, $search->getMaxPubdate()); + self::assertSame($min_pubdate_value, $search->getMinPubdate()); + self::assertSame($max_pubdate_value, $search->getMaxPubdate()); } /** - * @return array<array<mixed>> + * @return list<list<mixed>> */ public static function providePubdateSearch(): array { return [ @@ -183,12 +183,12 @@ class SearchTest extends PHPUnit\Framework\TestCase { #[DataProvider('provideTagsSearch')] public static function test__construct_whenInputContainsTags_setsTagsValue(string $input, ?array $tags_value, ?array $search_value): void { $search = new FreshRSS_Search($input); - self::assertEquals($tags_value, $search->getTags()); - self::assertEquals($search_value, $search->getSearch()); + self::assertSame($tags_value, $search->getTags()); + self::assertSame($search_value, $search->getSearch()); } /** - * @return array<array<string|array<string>|null>> + * @return list<list<string|list<string>|null>> */ public static function provideTagsSearch(): array { return [ @@ -215,19 +215,19 @@ class SearchTest extends PHPUnit\Framework\TestCase { ?int $max_date_value, ?array $intitle_value, ?array $inurl_value, ?int $min_pubdate_value, ?int $max_pubdate_value, ?array $tags_value, ?array $search_value): void { $search = new FreshRSS_Search($input); - self::assertEquals($author_value, $search->getAuthor()); - self::assertEquals($min_date_value, $search->getMinDate()); - self::assertEquals($max_date_value, $search->getMaxDate()); - self::assertEquals($intitle_value, $search->getIntitle()); - self::assertEquals($inurl_value, $search->getInurl()); - self::assertEquals($min_pubdate_value, $search->getMinPubdate()); - self::assertEquals($max_pubdate_value, $search->getMaxPubdate()); - self::assertEquals($tags_value, $search->getTags()); - self::assertEquals($search_value, $search->getSearch()); - self::assertEquals($input, $search->getRawInput()); + self::assertSame($author_value, $search->getAuthor()); + self::assertSame($min_date_value, $search->getMinDate()); + self::assertSame($max_date_value, $search->getMaxDate()); + self::assertSame($intitle_value, $search->getIntitle()); + self::assertSame($inurl_value, $search->getInurl()); + self::assertSame($min_pubdate_value, $search->getMinPubdate()); + self::assertSame($max_pubdate_value, $search->getMaxPubdate()); + self::assertSame($tags_value, $search->getTags()); + self::assertSame($search_value, $search->getSearch()); + self::assertSame($input, $search->getRawInput()); } - /** @return array<array<mixed>> */ + /** @return list<list<mixed>> */ public static function provideMultipleSearch(): array { return [ [ @@ -283,10 +283,10 @@ class SearchTest extends PHPUnit\Framework\TestCase { #[DataProvider('provideAddOrParentheses')] public static function test__addOrParentheses(string $input, string $output): void { - self::assertEquals($output, FreshRSS_BooleanSearch::addOrParentheses($input)); + self::assertSame($output, FreshRSS_BooleanSearch::addOrParentheses($input)); } - /** @return array<array{string,string}> */ + /** @return list<list{string,string}> */ public static function provideAddOrParentheses(): array { return [ ['ab', 'ab'], @@ -302,10 +302,10 @@ class SearchTest extends PHPUnit\Framework\TestCase { #[DataProvider('provideconsistentOrParentheses')] public static function test__consistentOrParentheses(string $input, string $output): void { - self::assertEquals($output, FreshRSS_BooleanSearch::consistentOrParentheses($input)); + self::assertSame($output, FreshRSS_BooleanSearch::consistentOrParentheses($input)); } - /** @return array<array{string,string}> */ + /** @return list<list{string,string}> */ public static function provideconsistentOrParentheses(): array { return [ ['ab cd ef', 'ab cd ef'], @@ -332,24 +332,24 @@ class SearchTest extends PHPUnit\Framework\TestCase { #[DataProvider('provideParentheses')] public function test__parentheses(string $input, string $sql, array $values): void { [$filterValues, $filterSearch] = FreshRSS_EntryDAOPGSQL::sqlBooleanSearch('e.', new FreshRSS_BooleanSearch($input)); - self::assertEquals(trim($sql), trim($filterSearch)); - self::assertEquals($values, $filterValues); + self::assertSame(trim($sql), trim($filterSearch)); + self::assertSame($values, $filterValues); } - /** @return array<array<mixed>> */ + /** @return list<list<mixed>> */ public static function provideParentheses(): array { return [ [ 'f:1 (f:2 OR f:3 OR f:4) (f:5 OR (f:6 OR f:7))', ' ((e.id_feed IN (?) )) AND ((e.id_feed IN (?) ) OR (e.id_feed IN (?) ) OR (e.id_feed IN (?) )) AND' . ' (((e.id_feed IN (?) )) OR ((e.id_feed IN (?) ) OR (e.id_feed IN (?) ))) ', - ['1', '2', '3', '4', '5', '6', '7'] + [1, 2, 3, 4, 5, 6, 7] ], [ '#tag Hello OR (author:Alice inurl:example) OR (f:3 intitle:World) OR L:12', " ((TRIM(e.tags) || ' #' LIKE ? AND (e.title LIKE ? OR e.content LIKE ?) )) OR ((e.author LIKE ? AND e.link LIKE ? )) OR" . ' ((e.id_feed IN (?) AND e.title LIKE ? )) OR ((e.id IN (SELECT et.id_entry FROM `_entrytag` et WHERE et.id_tag IN (?)) )) ', - ['%tag #%', '%Hello%', '%Hello%', '%Alice%', '%example%', '3', '%World%', '12'] + ['%tag #%', '%Hello%', '%Hello%', '%Alice%', '%example%', 3, '%World%', 12] ], [ '#tag Hello (author:Alice inurl:example) (f:3 intitle:World) label:Bleu', @@ -357,7 +357,7 @@ class SearchTest extends PHPUnit\Framework\TestCase { ' ((e.author LIKE ? AND e.link LIKE ? )) AND' . ' ((e.id_feed IN (?) AND e.title LIKE ? )) AND' . ' ((e.id IN (SELECT et.id_entry FROM `_entrytag` et, `_tag` t WHERE et.id_tag = t.id AND t.name IN (?)) )) ', - ['%tag #%', '%Hello%', '%Hello%', '%Alice%', '%example%', '3', '%World%', 'Bleu'] + ['%tag #%', '%Hello%', '%Hello%', '%Alice%', '%example%', 3, '%World%', 'Bleu'] ], [ '!((author:Alice intitle:hello) OR (author:Bob intitle:world))', @@ -478,11 +478,11 @@ class SearchTest extends PHPUnit\Framework\TestCase { */ public function test__regex_postgresql(string $input, string $sql, array $values): void { [$filterValues, $filterSearch] = FreshRSS_EntryDAOPGSQL::sqlBooleanSearch('e.', new FreshRSS_BooleanSearch($input)); - self::assertEquals(trim($sql), trim($filterSearch)); - self::assertEquals($values, $filterValues); + self::assertSame(trim($sql), trim($filterSearch)); + self::assertSame($values, $filterValues); } - /** @return array<array<mixed>> */ + /** @return list<list<mixed>> */ public static function provideRegexPostreSQL(): array { return [ [ @@ -551,11 +551,11 @@ class SearchTest extends PHPUnit\Framework\TestCase { FreshRSS_DatabaseDAO::$dummyConnection = true; FreshRSS_DatabaseDAO::setStaticVersion('11.4.3-MariaDB-ubu2404'); [$filterValues, $filterSearch] = FreshRSS_EntryDAO::sqlBooleanSearch('e.', new FreshRSS_BooleanSearch($input)); - self::assertEquals(trim($sql), trim($filterSearch)); - self::assertEquals($values, $filterValues); + self::assertSame(trim($sql), trim($filterSearch)); + self::assertSame($values, $filterValues); } - /** @return array<array<mixed>> */ + /** @return list<list<mixed>> */ public static function provideRegexMariaDB(): array { return [ [ @@ -584,11 +584,11 @@ class SearchTest extends PHPUnit\Framework\TestCase { FreshRSS_DatabaseDAO::$dummyConnection = true; FreshRSS_DatabaseDAO::setStaticVersion('9.0.1'); [$filterValues, $filterSearch] = FreshRSS_EntryDAO::sqlBooleanSearch('e.', new FreshRSS_BooleanSearch($input)); - self::assertEquals(trim($sql), trim($filterSearch)); - self::assertEquals($values, $filterValues); + self::assertSame(trim($sql), trim($filterSearch)); + self::assertSame($values, $filterValues); } - /** @return array<array<mixed>> */ + /** @return list<list<mixed>> */ public static function provideRegexMySQL(): array { return [ [ @@ -615,11 +615,11 @@ class SearchTest extends PHPUnit\Framework\TestCase { */ public function test__regex_sqlite(string $input, string $sql, array $values): void { [$filterValues, $filterSearch] = FreshRSS_EntryDAOSQLite::sqlBooleanSearch('e.', new FreshRSS_BooleanSearch($input)); - self::assertEquals(trim($sql), trim($filterSearch)); - self::assertEquals($values, $filterValues); + self::assertSame(trim($sql), trim($filterSearch)); + self::assertSame($values, $filterValues); } - /** @return array<array<mixed>> */ + /** @return list<list<mixed>> */ public static function provideRegexSQLite(): array { return [ [ diff --git a/tests/app/Models/UserQueryTest.php b/tests/app/Models/UserQueryTest.php index 70483aed1..04fb74fd0 100644 --- a/tests/app/Models/UserQueryTest.php +++ b/tests/app/Models/UserQueryTest.php @@ -10,13 +10,13 @@ class UserQueryTest extends TestCase { public static function test__construct_whenAllQuery_storesAllParameters(): void { $query = ['get' => 'a']; $user_query = new FreshRSS_UserQuery($query, [], []); - self::assertEquals('all', $user_query->getGetType()); + self::assertSame('all', $user_query->getGetType()); } public static function test__construct_whenFavoriteQuery_storesFavoriteParameters(): void { $query = ['get' => 's']; $user_query = new FreshRSS_UserQuery($query, [], []); - self::assertEquals('favorite', $user_query->getGetType()); + self::assertSame('favorite', $user_query->getGetType()); } public function test__construct_whenCategoryQuery_storesCategoryParameters(): void { @@ -29,8 +29,8 @@ class UserQueryTest extends TestCase { ->willReturn($category_name); $query = ['get' => 'c_1']; $user_query = new FreshRSS_UserQuery($query, [1 => $cat], []); - self::assertEquals($category_name, $user_query->getGetName()); - self::assertEquals('category', $user_query->getGetType()); + self::assertSame($category_name, $user_query->getGetName()); + self::assertSame('category', $user_query->getGetType()); } public function test__construct_whenFeedQuery_storesFeedParameters(): void { @@ -53,8 +53,8 @@ class UserQueryTest extends TestCase { ->willReturn([1 => $feed]); $query = ['get' => 'f_1']; $user_query = new FreshRSS_UserQuery($query, [1 => $cat], []); - self::assertEquals($feed_name, $user_query->getGetName()); - self::assertEquals('feed', $user_query->getGetType()); + self::assertSame($feed_name, $user_query->getGetName()); + self::assertSame('feed', $user_query->getGetType()); } public static function test__construct_whenUnknownQuery_doesStoreParameters(): void { @@ -68,28 +68,28 @@ class UserQueryTest extends TestCase { $name = 'some name'; $query = ['name' => $name]; $user_query = new FreshRSS_UserQuery($query, [], []); - self::assertEquals($name, $user_query->getName()); + self::assertSame($name, $user_query->getName()); } public static function test__construct_whenOrder_storesOrder(): void { $order = 'some order'; $query = ['order' => $order]; $user_query = new FreshRSS_UserQuery($query, [], []); - self::assertEquals($order, $user_query->getOrder()); + self::assertSame($order, $user_query->getOrder()); } public static function test__construct_whenState_storesState(): void { $state = FreshRSS_Entry::STATE_NOT_READ | FreshRSS_Entry::STATE_FAVORITE; $query = ['state' => $state]; $user_query = new FreshRSS_UserQuery($query, [], []); - self::assertEquals($state, $user_query->getState()); + self::assertSame($state, $user_query->getState()); } public static function test__construct_whenUrl_storesUrl(): void { $url = 'some url'; $query = ['url' => $url]; $user_query = new FreshRSS_UserQuery($query, [], []); - self::assertEquals($url, $user_query->getUrl()); + self::assertSame($url, $user_query->getUrl()); } public static function testToArray_whenNoData_returnsEmptyArray(): void { @@ -108,7 +108,7 @@ class UserQueryTest extends TestCase { ]; $user_query = new FreshRSS_UserQuery($query, [], []); self::assertCount(6, $user_query->toArray()); - self::assertEquals($query, $user_query->toArray()); + self::assertSame($query, $user_query->toArray()); } public static function testHasSearch_whenSearch_returnsTrue(): void { |
