From f066aa6649aa885aef01b042e19202eed487ab9c Mon Sep 17 00:00:00 2001 From: "J. King" Date: Fri, 27 Dec 2024 23:39:44 -0500 Subject: [PATCH] Method coverage no longer works in PHPUnit 11 --- .gitignore | 1 + tests/cases/Database/SeriesArticle.php | 672 +++++++++--------- tests/cases/Database/SeriesCleanup.php | 20 +- tests/cases/Database/SeriesFeed.php | 28 +- tests/cases/Database/SeriesFolder.php | 150 ++-- tests/cases/Database/SeriesIcon.php | 2 +- tests/cases/Database/SeriesLabel.php | 176 ++--- tests/cases/Database/SeriesMeta.php | 10 +- tests/cases/Database/SeriesMiscellany.php | 16 +- tests/cases/Database/SeriesSession.php | 24 +- tests/cases/Database/SeriesSubscription.php | 118 +-- tests/cases/Database/SeriesTag.php | 178 ++--- tests/cases/Database/SeriesToken.php | 18 +- tests/cases/Database/SeriesUser.php | 46 +- tests/cases/Database/TestDatabase.php | 14 +- tests/cases/Db/MySQL/TestCreation.php | 9 +- tests/cases/Db/MySQL/TestDatabase.php | 5 +- tests/cases/Db/MySQL/TestDriver.php | 12 +- tests/cases/Db/MySQL/TestResult.php | 12 +- tests/cases/Db/MySQL/TestStatement.php | 12 +- tests/cases/Db/MySQL/TestUpdate.php | 12 +- tests/cases/Db/MySQLPDO/TestCreation.php | 9 +- tests/cases/Db/MySQLPDO/TestDatabase.php | 5 +- tests/cases/Db/MySQLPDO/TestDriver.php | 16 +- tests/cases/Db/MySQLPDO/TestResult.php | 14 +- tests/cases/Db/MySQLPDO/TestStatement.php | 14 +- tests/cases/Db/MySQLPDO/TestUpdate.php | 16 +- tests/cases/Db/PostgreSQL/TestCreation.php | 10 +- tests/cases/Db/PostgreSQL/TestDatabase.php | 5 +- tests/cases/Db/PostgreSQL/TestDriver.php | 12 +- tests/cases/Db/PostgreSQL/TestResult.php | 9 +- tests/cases/Db/PostgreSQL/TestStatement.php | 12 +- tests/cases/Db/PostgreSQL/TestUpdate.php | 10 +- tests/cases/Db/PostgreSQLPDO/TestCreation.php | 10 +- tests/cases/Db/PostgreSQLPDO/TestDatabase.php | 5 +- tests/cases/Db/PostgreSQLPDO/TestDriver.php | 14 +- tests/cases/Db/PostgreSQLPDO/TestResult.php | 9 +- .../cases/Db/PostgreSQLPDO/TestStatement.php | 12 +- tests/cases/Db/PostgreSQLPDO/TestUpdate.php | 14 +- tests/cases/Db/SQLite3/TestCreation.php | 6 +- tests/cases/Db/SQLite3/TestDatabase.php | 5 +- tests/cases/Db/SQLite3/TestDriver.php | 7 +- tests/cases/Db/SQLite3/TestResult.php | 6 +- tests/cases/Db/SQLite3/TestStatement.php | 7 +- tests/cases/Db/SQLite3/TestUpdate.php | 7 +- tests/cases/Db/SQLite3PDO/TestCreation.php | 10 +- tests/cases/Db/SQLite3PDO/TestDatabase.php | 5 +- tests/cases/Db/SQLite3PDO/TestDriver.php | 11 +- tests/cases/Db/SQLite3PDO/TestResult.php | 6 +- tests/cases/Db/SQLite3PDO/TestStatement.php | 9 +- tests/cases/Db/SQLite3PDO/TestUpdate.php | 11 +- tests/cases/Db/TestResultAggregate.php | 3 +- tests/cases/Db/TestResultEmpty.php | 3 +- tests/cases/Exception/TestException.php | 2 +- tests/cases/Feed/TestFetching.php | 2 +- tests/cases/ImportExport/TestOPML.php | 6 +- tests/cases/Misc/TestContext.php | 12 +- tests/cases/Misc/TestValueInfo.php | 1 + tests/cases/REST/Fever/PDO/TestAPI.php | 7 +- tests/cases/REST/Fever/TestAPI.php | 14 +- tests/cases/REST/Fever/TestUser.php | 8 +- tests/cases/REST/Miniflux/PDO/TestToken.php | 7 +- tests/cases/REST/Miniflux/PDO/TestV1.php | 7 +- tests/cases/REST/Miniflux/TestToken.php | 3 +- tests/cases/REST/Miniflux/TestV1.php | 40 +- .../cases/REST/NextcloudNews/PDO/TestV1_2.php | 8 +- tests/cases/REST/NextcloudNews/TestV1_2.php | 16 +- tests/cases/REST/TinyTinyRSS/PDO/TestAPI.php | 9 +- tests/cases/REST/TinyTinyRSS/TestAPI.php | 52 +- tests/cases/REST/TinyTinyRSS/TestIcon.php | 3 +- tests/lib/AbstractTest.php | 4 +- tests/phpunit.dist.xml | 224 +++--- 72 files changed, 1164 insertions(+), 1088 deletions(-) diff --git a/.gitignore b/.gitignore index 11832444..2af8cf64 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ /.php_cs.cache /.php-cs-fixer.cache /tests/.phpunit.result.cache +/tests/.phpunit.cache # Dependencies diff --git a/tests/cases/Database/SeriesArticle.php b/tests/cases/Database/SeriesArticle.php index 1bc3ff14..5e673ec7 100644 --- a/tests/cases/Database/SeriesArticle.php +++ b/tests/cases/Database/SeriesArticle.php @@ -431,12 +431,12 @@ trait SeriesArticle { } - #[CoversMethod(Database::class, "articleList")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleList")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] #[DataProvider("provideContextMatches")] public function testListArticlesCheckingContext(RootContext $c, array $exp): void { $ids = array_column($ids = Arsse::$db->articleList("john.doe@example.com", $c, ["id"], ["id"])->getAll(), "id"); @@ -557,12 +557,12 @@ trait SeriesArticle { ]; } - #[CoversMethod(Database::class, "editionArticle")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "editionArticle")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testRetrieveArticleIdsForEditions(): void { $exp = [ 1 => 1, @@ -601,34 +601,34 @@ trait SeriesArticle { } - #[CoversMethod(Database::class, "articleList")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleList")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testListArticlesOfAMissingFolder(): void { $this->assertException("idMissing", "Db", "ExceptionInput"); Arsse::$db->articleList($this->user, (new Context)->folder(1)); } - #[CoversMethod(Database::class, "articleList")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleList")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testListArticlesOfAMissingSubscription(): void { $this->assertException("idMissing", "Db", "ExceptionInput"); Arsse::$db->articleList($this->user, (new Context)->subscription(1)); } - #[CoversMethod(Database::class, "articleList")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleList")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testListArticlesCheckingProperties(): void { $this->user = "john.doe@example.org"; // check that the different fieldset groups return the expected columns @@ -643,12 +643,12 @@ trait SeriesArticle { } #[DataProvider("provideOrderedLists")] - #[CoversMethod(Database::class, "articleList")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleList")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testListArticlesCheckingOrder(array $sortCols, array $exp): void { $act = ValueInfo::normalize(array_column(iterator_to_array(Arsse::$db->articleList("john.doe@example.com", null, ["id"], $sortCols)), "id"), ValueInfo::T_INT | ValueInfo::M_ARRAY); $this->assertSame($exp, $act); @@ -667,22 +667,22 @@ trait SeriesArticle { ]; } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkNothing(): void { $this->assertSame(0, Arsse::$db->articleMark($this->user, [])); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkAllArticlesUnread(): void { Arsse::$db->articleMark($this->user, ['read' => false]); $now = Date::transform(time(), "sql"); @@ -694,12 +694,12 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkAllArticlesRead(): void { Arsse::$db->articleMark($this->user, ['read' => true]); $now = Date::transform(time(), "sql"); @@ -715,12 +715,12 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkAllArticlesUnstarred(): void { Arsse::$db->articleMark($this->user, ['starred' => false]); $now = Date::transform(time(), "sql"); @@ -732,12 +732,12 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkAllArticlesStarred(): void { Arsse::$db->articleMark($this->user, ['starred' => true]); $now = Date::transform(time(), "sql"); @@ -753,12 +753,12 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkAllArticlesUnreadAndUnstarred(): void { Arsse::$db->articleMark($this->user, ['read' => false,'starred' => false]); $now = Date::transform(time(), "sql"); @@ -773,12 +773,12 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkAllArticlesReadAndStarred(): void { Arsse::$db->articleMark($this->user, ['read' => true,'starred' => true]); $now = Date::transform(time(), "sql"); @@ -797,12 +797,12 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkAllArticlesUnreadAndStarred(): void { Arsse::$db->articleMark($this->user, ['read' => false,'starred' => true]); $now = Date::transform(time(), "sql"); @@ -821,12 +821,12 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkAllArticlesReadAndUnstarred(): void { Arsse::$db->articleMark($this->user, ['read' => true,'starred' => false]); $now = Date::transform(time(), "sql"); @@ -845,12 +845,12 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testSetNoteForAllArticles(): void { Arsse::$db->articleMark($this->user, ['note' => "New note"]); $now = Date::transform(time(), "sql"); @@ -870,12 +870,12 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkATreeFolder(): void { Arsse::$db->articleMark($this->user, ['read' => true], (new Context)->folder(7)); $now = Date::transform(time(), "sql"); @@ -887,12 +887,12 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkALeafFolder(): void { Arsse::$db->articleMark($this->user, ['read' => true], (new Context)->folder(8)); $now = Date::transform(time(), "sql"); @@ -902,12 +902,12 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkAMissingFolder(): void { $this->assertException("idMissing", "Db", "ExceptionInput"); Arsse::$db->articleMark($this->user, ['read' => true], (new Context)->folder(42)); @@ -922,23 +922,23 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkAMissingSubscription(): void { $this->assertException("idMissing", "Db", "ExceptionInput"); Arsse::$db->articleMark($this->user, ['read' => true], (new Context)->folder(2112)); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkAnArticle(): void { Arsse::$db->articleMark($this->user, ['starred' => true], (new Context)->article(20)); $now = Date::transform(time(), "sql"); @@ -948,12 +948,12 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkMultipleArticles(): void { Arsse::$db->articleMark($this->user, ['starred' => true], (new Context)->articles([2,4,7,20])); $now = Date::transform(time(), "sql"); @@ -964,12 +964,12 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkMultipleArticlessUnreadAndStarred(): void { Arsse::$db->articleMark($this->user, ['read' => false,'starred' => true], (new Context)->articles([2,4,7,20])); $now = Date::transform(time(), "sql"); @@ -983,34 +983,34 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkTooManyMultipleArticles(): void { $setSize = (new \ReflectionClassConstant(Database::class, "LIMIT_SET_SIZE"))->getValue(); $this->assertSame(7, Arsse::$db->articleMark($this->user, ['read' => false,'starred' => true], (new Context)->articles(range(1, $setSize * 3)))); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkAMissingArticle(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->articleMark($this->user, ['starred' => true], (new Context)->article(1)); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkAnEdition(): void { Arsse::$db->articleMark($this->user, ['starred' => true], (new Context)->edition(1001)); $now = Date::transform(time(), "sql"); @@ -1020,12 +1020,12 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkMultipleEditions(): void { Arsse::$db->articleMark($this->user, ['starred' => true], (new Context)->editions([2,4,7,20])); $now = Date::transform(time(), "sql"); @@ -1036,24 +1036,24 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkMultipleMissingEditions(): void { $this->assertSame(0, Arsse::$db->articleMark($this->user, ['starred' => true], (new Context)->editions([500,501]))); $state = $this->primeExpectations($this->data, $this->checkTables); $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkMultipleEditionsUnread(): void { Arsse::$db->articleMark($this->user, ['read' => false], (new Context)->editions([2,4,7,1001])); $now = Date::transform(time(), "sql"); @@ -1065,12 +1065,12 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkMultipleEditionsUnreadWithStale(): void { Arsse::$db->articleMark($this->user, ['read' => false], (new Context)->editions([2,4,7,20])); $now = Date::transform(time(), "sql"); @@ -1080,12 +1080,12 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkMultipleEditionsUnreadAndStarredWithStale(): void { Arsse::$db->articleMark($this->user, ['read' => false,'starred' => true], (new Context)->editions([2,4,7,20])); $now = Date::transform(time(), "sql"); @@ -1098,33 +1098,33 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkTooManyMultipleEditions(): void { $this->assertSame(7, Arsse::$db->articleMark($this->user, ['read' => false,'starred' => true], (new Context)->editions(range(1, 51)))); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkAStaleEditionUnread(): void { Arsse::$db->articleMark($this->user, ['read' => false], (new Context)->edition(20)); // no changes occur $state = $this->primeExpectations($this->data, $this->checkTables); $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkAStaleEditionStarred(): void { Arsse::$db->articleMark($this->user, ['starred' => true], (new Context)->edition(20)); $now = Date::transform(time(), "sql"); @@ -1134,12 +1134,12 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkAStaleEditionUnreadAndStarred(): void { Arsse::$db->articleMark($this->user, ['read' => false,'starred' => true], (new Context)->edition(20)); // only starred is changed $now = Date::transform(time(), "sql"); @@ -1149,35 +1149,35 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkAStaleEditionUnreadAndUnstarred(): void { Arsse::$db->articleMark($this->user, ['read' => false,'starred' => false], (new Context)->edition(20)); // no changes occur $state = $this->primeExpectations($this->data, $this->checkTables); $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkAMissingEdition(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->articleMark($this->user, ['starred' => true], (new Context)->edition(2)); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkByOldestEdition(): void { Arsse::$db->articleMark($this->user, ['starred' => true], (new Context)->editionRange(19, null)); $now = Date::transform(time(), "sql"); @@ -1189,12 +1189,12 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkByLatestEdition(): void { Arsse::$db->articleMark($this->user, ['starred' => true], (new Context)->editionRange(null, 20)); $now = Date::transform(time(), "sql"); @@ -1208,12 +1208,12 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkByLastMarked(): void { Arsse::$db->articleMark($this->user, ['starred' => true], (new Context)->markedRange('2017-01-01T00:00:00Z', null)); $now = Date::transform(time(), "sql"); @@ -1225,12 +1225,12 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkByNotLastMarked(): void { Arsse::$db->articleMark($this->user, ['starred' => true], (new Context)->markedRange(null, '2000-01-01T00:00:00Z')); $now = Date::transform(time(), "sql"); @@ -1240,12 +1240,12 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleCount")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleCount")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testCountArticles(): void { $setSize = (new \ReflectionClassConstant(Database::class, "LIMIT_SET_SIZE"))->getValue(); $this->assertSame(2, Arsse::$db->articleCount("john.doe@example.com", (new Context)->starred(true))); @@ -1254,7 +1254,7 @@ trait SeriesArticle { $this->assertSame(10, Arsse::$db->articleCount("john.doe@example.com", (new Context)->articles(range(1, $setSize * 3)))); } - #[CoversMethod(Database::class, "articleStarred")] + //#[CoversMethod(Database::class, "articleStarred")] public function testFetchStarredCounts(): void { $exp1 = ['total' => 2, 'unread' => 1, 'read' => 1]; $exp2 = ['total' => 0, 'unread' => 0, 'read' => 0]; @@ -1262,20 +1262,20 @@ trait SeriesArticle { $this->assertEquals($exp2, Arsse::$db->articleStarred("jane.doe@example.com")); } - #[CoversMethod(Database::class, "editionLatest")] + //#[CoversMethod(Database::class, "editionLatest")] public function testFetchLatestEdition(): void { $this->assertSame(1001, Arsse::$db->editionLatest($this->user)); $this->assertSame(4, Arsse::$db->editionLatest($this->user, (new Context)->subscription(12))); $this->assertSame(5, Arsse::$db->editionLatest("john.doe@example.com", (new Context)->subscription(3)->hidden(false))); } - #[CoversMethod(Database::class, "editionLatest")] + //#[CoversMethod(Database::class, "editionLatest")] public function testFetchLatestEditionOfMissingSubscription(): void { $this->assertException("idMissing", "Db", "ExceptionInput"); Arsse::$db->editionLatest($this->user, (new Context)->subscription(1)); } - #[CoversMethod(Database::class, "articleLabelsGet")] + //#[CoversMethod(Database::class, "articleLabelsGet")] public function testListTheLabelsOfAnArticle(): void { $this->assertEquals([1,2], Arsse::$db->articleLabelsGet("john.doe@example.com", 1)); $this->assertEquals([2], Arsse::$db->articleLabelsGet("john.doe@example.com", 5)); @@ -1285,13 +1285,13 @@ trait SeriesArticle { $this->assertEquals([], Arsse::$db->articleLabelsGet("john.doe@example.com", 2, true)); } - #[CoversMethod(Database::class, "articleLabelsGet")] + //#[CoversMethod(Database::class, "articleLabelsGet")] public function testListTheLabelsOfAMissingArticle(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->articleLabelsGet($this->user, 101); } - #[CoversMethod(Database::class, "articleCategoriesGet")] + //#[CoversMethod(Database::class, "articleCategoriesGet")] public function testListTheCategoriesOfAnArticle(): void { $exp = ["Fascinating", "Logical"]; $this->assertSame($exp, Arsse::$db->articleCategoriesGet($this->user, 19)); @@ -1301,19 +1301,19 @@ trait SeriesArticle { $this->assertSame($exp, Arsse::$db->articleCategoriesGet($this->user, 4)); } - #[CoversMethod(Database::class, "articleCategoriesGet")] + //#[CoversMethod(Database::class, "articleCategoriesGet")] public function testListTheCategoriesOfAMissingArticle(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->articleCategoriesGet($this->user, 101); } #[DataProvider("provideArrayContextOptions")] - #[CoversMethod(Database::class, "articleList")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleList")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testUseTooFewValuesInArrayContext(string $option): void { $this->assertException("tooShort", "Db", "ExceptionInput"); Arsse::$db->articleList($this->user, (new Context)->$option([])); @@ -1331,12 +1331,12 @@ trait SeriesArticle { } } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkAllArticlesNotHidden(): void { Arsse::$db->articleMark("jane.doe@example.com", ['hidden' => false]); $now = Date::transform(time(), "sql"); @@ -1348,12 +1348,12 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkAllArticlesHidden(): void { Arsse::$db->articleMark("jane.doe@example.com", ['hidden' => true]); $now = Date::transform(time(), "sql"); @@ -1364,12 +1364,12 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkAllArticlesUnreadAndNotHidden(): void { Arsse::$db->articleMark("jane.doe@example.com", ['read' => false, 'hidden' => false]); $now = Date::transform(time(), "sql"); @@ -1384,12 +1384,12 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkAllArticlesReadAndHidden(): void { Arsse::$db->articleMark("jane.doe@example.com", ['read' => true, 'hidden' => true]); $now = Date::transform(time(), "sql"); @@ -1402,12 +1402,12 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkAllArticlesUnreadAndHidden(): void { Arsse::$db->articleMark("jane.doe@example.com", ['read' => false,'hidden' => true]); $now = Date::transform(time(), "sql"); @@ -1421,12 +1421,12 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkAllArticlesReadAndNotHidden(): void { Arsse::$db->articleMark("jane.doe@example.com", ['read' => true,'hidden' => false]); $now = Date::transform(time(), "sql"); @@ -1440,12 +1440,12 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkMultipleEditionsUnreadAndHiddenWithStale(): void { Arsse::$db->articleMark("jane.doe@example.com", ['read' => false,'hidden' => true], (new Context)->editions([1,2,19,20])); $now = Date::transform(time(), "sql"); @@ -1459,12 +1459,12 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkAStaleEditionHidden(): void { Arsse::$db->articleMark("jane.doe@example.com", ['hidden' => true], (new Context)->edition(20)); $now = Date::transform(time(), "sql"); @@ -1474,12 +1474,12 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkAStaleEditionUnreadAndHidden(): void { Arsse::$db->articleMark("jane.doe@example.com", ['read' => false,'hidden' => true], (new Context)->edition(20)); // only starred is changed $now = Date::transform(time(), "sql"); @@ -1489,24 +1489,24 @@ trait SeriesArticle { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleMark")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleMark")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testMarkAStaleEditionUnreadAndNotHidden(): void { Arsse::$db->articleMark("jane.doe@example.com", ['read' => false,'hidden' => false], (new Context)->edition(20)); // no changes occur $state = $this->primeExpectations($this->data, $this->checkTables); $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleList")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleList")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testSelectScrapedContent(): void { $exp = [ ['id' => 101, 'content' => "

Article content 1

"], @@ -1520,12 +1520,12 @@ trait SeriesArticle { $this->assertResult($exp, Arsse::$db->articleList("jill.doe@example.com", (new Context)->subscription(15), ["id", "content"])); } - #[CoversMethod(Database::class, "articleList")] - #[CoversMethod(Database::class, "articleQuery")] - #[CoversMethod(Database::class, "articleValidateId")] - #[CoversMethod(Database::class, "articleValidateEdition")] - #[CoversMethod(Database::class, "articleColumns")] - #[CoversMethod(Database::class, "articleFilter")] + //#[CoversMethod(Database::class, "articleList")] + //#[CoversMethod(Database::class, "articleQuery")] + //#[CoversMethod(Database::class, "articleValidateId")] + //#[CoversMethod(Database::class, "articleValidateEdition")] + //#[CoversMethod(Database::class, "articleColumns")] + //#[CoversMethod(Database::class, "articleFilter")] public function testSearchScrapedContent(): void { $exp = [ ['id' => 101, 'content' => "

Scraped content 1

"], diff --git a/tests/cases/Database/SeriesCleanup.php b/tests/cases/Database/SeriesCleanup.php index f084192e..ed1075f7 100644 --- a/tests/cases/Database/SeriesCleanup.php +++ b/tests/cases/Database/SeriesCleanup.php @@ -173,7 +173,7 @@ trait SeriesCleanup { unset($this->data); } - #[CoversMethod(Database::class, "feedCleanup")] + //#[CoversMethod(Database::class, "feedCleanup")] public function testCleanUpOrphanedFeeds(): void { Arsse::$db->feedCleanup(); $now = gmdate("Y-m-d H:i:s"); @@ -186,7 +186,7 @@ trait SeriesCleanup { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "feedCleanup")] + //#[CoversMethod(Database::class, "feedCleanup")] public function testCleanUpOrphanedFeedsWithUnlimitedRetention(): void { Arsse::$conf->import([ 'purgeFeeds' => null, @@ -201,7 +201,7 @@ trait SeriesCleanup { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "iconCleanup")] + //#[CoversMethod(Database::class, "iconCleanup")] public function testCleanUpOrphanedIcons(): void { Arsse::$db->iconCleanup(); $now = gmdate("Y-m-d H:i:s"); @@ -214,7 +214,7 @@ trait SeriesCleanup { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "iconCleanup")] + //#[CoversMethod(Database::class, "iconCleanup")] public function testCleanUpOrphanedIconsWithUnlimitedRetention(): void { Arsse::$conf->import([ 'purgeFeeds' => null, @@ -229,7 +229,7 @@ trait SeriesCleanup { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleCleanup")] + //#[CoversMethod(Database::class, "articleCleanup")] public function testCleanUpOldArticlesWithStandardRetention(): void { Arsse::$db->articleCleanup(); $state = $this->primeExpectations($this->data, [ @@ -241,7 +241,7 @@ trait SeriesCleanup { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleCleanup")] + //#[CoversMethod(Database::class, "articleCleanup")] public function testCleanUpOldArticlesWithUnlimitedReadRetention(): void { Arsse::$conf->import([ 'purgeArticlesRead' => null, @@ -256,7 +256,7 @@ trait SeriesCleanup { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleCleanup")] + //#[CoversMethod(Database::class, "articleCleanup")] public function testCleanUpOldArticlesWithUnlimitedUnreadRetention(): void { Arsse::$conf->import([ 'purgeArticlesUnread' => null, @@ -271,7 +271,7 @@ trait SeriesCleanup { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "articleCleanup")] + //#[CoversMethod(Database::class, "articleCleanup")] public function testCleanUpOldArticlesWithUnlimitedRetention(): void { Arsse::$conf->import([ 'purgeArticlesRead' => null, @@ -284,7 +284,7 @@ trait SeriesCleanup { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "sessionCleanup")] + //#[CoversMethod(Database::class, "sessionCleanup")] public function testCleanUpExpiredSessions(): void { Arsse::$db->sessionCleanup(); $state = $this->primeExpectations($this->data, [ @@ -296,7 +296,7 @@ trait SeriesCleanup { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "tokenCleanup")] + //#[CoversMethod(Database::class, "tokenCleanup")] public function testCleanUpExpiredTokens(): void { Arsse::$db->tokenCleanup(); $state = $this->primeExpectations($this->data, [ diff --git a/tests/cases/Database/SeriesFeed.php b/tests/cases/Database/SeriesFeed.php index 83054c4d..b4d0688d 100644 --- a/tests/cases/Database/SeriesFeed.php +++ b/tests/cases/Database/SeriesFeed.php @@ -196,12 +196,12 @@ trait SeriesFeed { unset($this->data, $this->matches); } - #[CoversMethod(Database::class, "feedMatchLatest")] + //#[CoversMethod(Database::class, "feedMatchLatest")] public function testListLatestItems(): void { $this->assertResult($this->matches, Arsse::$db->feedMatchLatest(1, 2)); } - #[CoversMethod(Database::class, "feedMatchIds")] + //#[CoversMethod(Database::class, "feedMatchIds")] public function testMatchItemsById(): void { $this->assertResult($this->matches, Arsse::$db->feedMatchIds(1, ['804e517d623390e71497982c77cf6823180342ebcd2e7d5e32da1e55b09dd180','db3e736c2c492f5def5c5da33ddcbea1824040e9ced2142069276b0a6e291a41'])); foreach ($this->matches as $m) { @@ -214,7 +214,7 @@ trait SeriesFeed { } #[DataProvider("provideFilterRules")] - #[CoversMethod(Database::class, "feedRulesGet")] + //#[CoversMethod(Database::class, "feedRulesGet")] public function testGetRules(int $in, array $exp): void { $this->assertSame($exp, Arsse::$db->feedRulesGet($in)); } @@ -229,7 +229,7 @@ trait SeriesFeed { ]; } - #[CoversMethod(Database::class, "feedUpdate")] + //#[CoversMethod(Database::class, "feedUpdate")] public function testUpdateAFeed(): void { // update a valid feed with both new and changed items Arsse::$db->feedUpdate(1); @@ -271,25 +271,25 @@ trait SeriesFeed { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "feedUpdate")] + //#[CoversMethod(Database::class, "feedUpdate")] public function testUpdateAMissingFeed(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->feedUpdate(2112); } - #[CoversMethod(Database::class, "feedUpdate")] + //#[CoversMethod(Database::class, "feedUpdate")] public function testUpdateAnInvalidFeed(): void { $this->assertException("typeViolation", "Db", "ExceptionInput"); Arsse::$db->feedUpdate(-1); } - #[CoversMethod(Database::class, "feedUpdate")] + //#[CoversMethod(Database::class, "feedUpdate")] public function testUpdateAFeedThrowingExceptions(): void { $this->assertException("invalidUrl", "Feed"); Arsse::$db->feedUpdate(3, true); } - #[CoversMethod(Database::class, "feedUpdate")] + //#[CoversMethod(Database::class, "feedUpdate")] public function testUpdateAFeedWithEnclosuresAndCategories(): void { Arsse::$db->feedUpdate(5); $state = $this->primeExpectations($this->data, [ @@ -310,7 +310,7 @@ trait SeriesFeed { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "feedListStale")] + //#[CoversMethod(Database::class, "feedListStale")] public function testListStaleFeeds(): void { $this->assertEquals([1,3,4], Arsse::$db->feedListStale()); Arsse::$db->feedUpdate(3); @@ -318,7 +318,7 @@ trait SeriesFeed { $this->assertEquals([1], Arsse::$db->feedListStale()); } - #[CoversMethod(Database::class, "feedUpdate")] + //#[CoversMethod(Database::class, "feedUpdate")] public function testCheckIconDuringFeedUpdate(): void { Arsse::$db->feedUpdate(6); $state = $this->primeExpectations($this->data, [ @@ -328,7 +328,7 @@ trait SeriesFeed { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "feedUpdate")] + //#[CoversMethod(Database::class, "feedUpdate")] public function testAssignIconDuringFeedUpdate(): void { Arsse::$db->feedUpdate(7); $state = $this->primeExpectations($this->data, [ @@ -339,7 +339,7 @@ trait SeriesFeed { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "feedUpdate")] + //#[CoversMethod(Database::class, "feedUpdate")] public function testChangeIconDuringFeedUpdate(): void { Arsse::$db->feedUpdate(8); $state = $this->primeExpectations($this->data, [ @@ -350,7 +350,7 @@ trait SeriesFeed { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "feedUpdate")] + //#[CoversMethod(Database::class, "feedUpdate")] public function testAddIconDuringFeedUpdate(): void { Arsse::$db->feedUpdate(9); $state = $this->primeExpectations($this->data, [ @@ -362,7 +362,7 @@ trait SeriesFeed { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "feedUpdate")] + //#[CoversMethod(Database::class, "feedUpdate")] public function testUpdateUnmodifiedFeed(): void { $this->markTestIncomplete("FIXME: there is a bug here around calculation of nextFetch date"); $state = $this->primeExpectations($this->data, [ diff --git a/tests/cases/Database/SeriesFolder.php b/tests/cases/Database/SeriesFolder.php index 9d49e8b4..2e2691de 100644 --- a/tests/cases/Database/SeriesFolder.php +++ b/tests/cases/Database/SeriesFolder.php @@ -102,9 +102,9 @@ trait SeriesFolder { unset($this->data); } - #[CoversMethod(Database::class, "folderAdd")] - #[CoversMethod(Database::class, "folderValidateId")] - #[CoversMethod(Database::class, "folderValidateName")] + //#[CoversMethod(Database::class, "folderAdd")] + //#[CoversMethod(Database::class, "folderValidateId")] + //#[CoversMethod(Database::class, "folderValidateName")] public function testAddARootFolder(): void { $user = "john.doe@example.com"; $folderID = $this->nextID("arsse_folders"); @@ -114,17 +114,17 @@ trait SeriesFolder { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "folderAdd")] - #[CoversMethod(Database::class, "folderValidateId")] - #[CoversMethod(Database::class, "folderValidateName")] + //#[CoversMethod(Database::class, "folderAdd")] + //#[CoversMethod(Database::class, "folderValidateId")] + //#[CoversMethod(Database::class, "folderValidateName")] public function testAddADuplicateRootFolder(): void { $this->assertException("constraintViolation", "Db", "ExceptionInput"); Arsse::$db->folderAdd("john.doe@example.com", ['name' => "Politics"]); } - #[CoversMethod(Database::class, "folderAdd")] - #[CoversMethod(Database::class, "folderValidateId")] - #[CoversMethod(Database::class, "folderValidateName")] + //#[CoversMethod(Database::class, "folderAdd")] + //#[CoversMethod(Database::class, "folderValidateId")] + //#[CoversMethod(Database::class, "folderValidateName")] public function testAddANestedFolder(): void { $user = "john.doe@example.com"; $folderID = $this->nextID("arsse_folders"); @@ -134,56 +134,56 @@ trait SeriesFolder { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "folderAdd")] - #[CoversMethod(Database::class, "folderValidateId")] - #[CoversMethod(Database::class, "folderValidateName")] + //#[CoversMethod(Database::class, "folderAdd")] + //#[CoversMethod(Database::class, "folderValidateId")] + //#[CoversMethod(Database::class, "folderValidateName")] public function testAddANestedFolderToAMissingParent(): void { $this->assertException("idMissing", "Db", "ExceptionInput"); Arsse::$db->folderAdd("john.doe@example.com", ['name' => "Sociology", 'parent' => 2112]); } - #[CoversMethod(Database::class, "folderAdd")] - #[CoversMethod(Database::class, "folderValidateId")] - #[CoversMethod(Database::class, "folderValidateName")] + //#[CoversMethod(Database::class, "folderAdd")] + //#[CoversMethod(Database::class, "folderValidateId")] + //#[CoversMethod(Database::class, "folderValidateName")] public function testAddANestedFolderToAnInvalidParent(): void { $this->assertException("typeViolation", "Db", "ExceptionInput"); Arsse::$db->folderAdd("john.doe@example.com", ['name' => "Sociology", 'parent' => "stringFolderId"]); } - #[CoversMethod(Database::class, "folderAdd")] - #[CoversMethod(Database::class, "folderValidateId")] - #[CoversMethod(Database::class, "folderValidateName")] + //#[CoversMethod(Database::class, "folderAdd")] + //#[CoversMethod(Database::class, "folderValidateId")] + //#[CoversMethod(Database::class, "folderValidateName")] public function testAddANestedFolderForTheWrongOwner(): void { $this->assertException("idMissing", "Db", "ExceptionInput"); Arsse::$db->folderAdd("john.doe@example.com", ['name' => "Sociology", 'parent' => 4]); // folder ID 4 belongs to Jane } - #[CoversMethod(Database::class, "folderAdd")] - #[CoversMethod(Database::class, "folderValidateId")] - #[CoversMethod(Database::class, "folderValidateName")] + //#[CoversMethod(Database::class, "folderAdd")] + //#[CoversMethod(Database::class, "folderValidateId")] + //#[CoversMethod(Database::class, "folderValidateName")] public function testAddAFolderWithAMissingName(): void { $this->assertException("missing", "Db", "ExceptionInput"); Arsse::$db->folderAdd("john.doe@example.com", []); } - #[CoversMethod(Database::class, "folderAdd")] - #[CoversMethod(Database::class, "folderValidateId")] - #[CoversMethod(Database::class, "folderValidateName")] + //#[CoversMethod(Database::class, "folderAdd")] + //#[CoversMethod(Database::class, "folderValidateId")] + //#[CoversMethod(Database::class, "folderValidateName")] public function testAddAFolderWithABlankName(): void { $this->assertException("missing", "Db", "ExceptionInput"); Arsse::$db->folderAdd("john.doe@example.com", ['name' => ""]); } - #[CoversMethod(Database::class, "folderAdd")] - #[CoversMethod(Database::class, "folderValidateId")] - #[CoversMethod(Database::class, "folderValidateName")] + //#[CoversMethod(Database::class, "folderAdd")] + //#[CoversMethod(Database::class, "folderValidateId")] + //#[CoversMethod(Database::class, "folderValidateName")] public function testAddAFolderWithAWhitespaceName(): void { $this->assertException("whitespace", "Db", "ExceptionInput"); Arsse::$db->folderAdd("john.doe@example.com", ['name' => " "]); } - #[CoversMethod(Database::class, "folderList")] - #[CoversMethod(Database::class, "folderValidateId")] + //#[CoversMethod(Database::class, "folderList")] + //#[CoversMethod(Database::class, "folderValidateId")] public function testListRootFolders(): void { $exp = [ ['id' => 5, 'name' => "Politics", 'parent' => null, 'children' => 0, 'feeds' => 2], @@ -198,8 +198,8 @@ trait SeriesFolder { $this->assertResult($exp, Arsse::$db->folderList("admin@example.net", null, false)); } - #[CoversMethod(Database::class, "folderList")] - #[CoversMethod(Database::class, "folderValidateId")] + //#[CoversMethod(Database::class, "folderList")] + //#[CoversMethod(Database::class, "folderValidateId")] public function testListFoldersRecursively(): void { $exp = [ ['id' => 5, 'name' => "Politics", 'parent' => null, 'children' => 0, 'feeds' => 2], @@ -219,21 +219,21 @@ trait SeriesFolder { $this->assertResult($exp, Arsse::$db->folderList("jane.doe@example.com", 4, true)); } - #[CoversMethod(Database::class, "folderList")] - #[CoversMethod(Database::class, "folderValidateId")] + //#[CoversMethod(Database::class, "folderList")] + //#[CoversMethod(Database::class, "folderValidateId")] public function testListFoldersOfAMissingParent(): void { $this->assertException("idMissing", "Db", "ExceptionInput"); Arsse::$db->folderList("john.doe@example.com", 2112); } - #[CoversMethod(Database::class, "folderList")] - #[CoversMethod(Database::class, "folderValidateId")] + //#[CoversMethod(Database::class, "folderList")] + //#[CoversMethod(Database::class, "folderValidateId")] public function testListFoldersOfTheWrongOwner(): void { $this->assertException("idMissing", "Db", "ExceptionInput"); Arsse::$db->folderList("john.doe@example.com", 4); // folder ID 4 belongs to Jane } - #[CoversMethod(Database::class, "folderRemove")] + //#[CoversMethod(Database::class, "folderRemove")] public function testRemoveAFolder(): void { $this->assertTrue(Arsse::$db->folderRemove("john.doe@example.com", 6)); $state = $this->primeExpectations($this->data, ['arsse_folders' => ['id','owner', 'parent', 'name']]); @@ -241,7 +241,7 @@ trait SeriesFolder { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "folderRemove")] + //#[CoversMethod(Database::class, "folderRemove")] public function testRemoveAFolderTree(): void { $this->assertTrue(Arsse::$db->folderRemove("john.doe@example.com", 1)); $state = $this->primeExpectations($this->data, ['arsse_folders' => ['id','owner', 'parent', 'name']]); @@ -251,25 +251,25 @@ trait SeriesFolder { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "folderRemove")] + //#[CoversMethod(Database::class, "folderRemove")] public function testRemoveAMissingFolder(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->folderRemove("john.doe@example.com", 2112); } - #[CoversMethod(Database::class, "folderRemove")] + //#[CoversMethod(Database::class, "folderRemove")] public function testRemoveAnInvalidFolder(): void { $this->assertException("typeViolation", "Db", "ExceptionInput"); Arsse::$db->folderRemove("john.doe@example.com", -1); } - #[CoversMethod(Database::class, "folderRemove")] + //#[CoversMethod(Database::class, "folderRemove")] public function testRemoveAFolderOfTheWrongOwner(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->folderRemove("john.doe@example.com", 4); // folder ID 4 belongs to Jane } - #[CoversMethod(Database::class, "folderPropertiesGet")] + //#[CoversMethod(Database::class, "folderPropertiesGet")] public function testGetThePropertiesOfAFolder(): void { $exp = [ 'id' => 6, @@ -279,31 +279,31 @@ trait SeriesFolder { $this->assertArraySubset($exp, Arsse::$db->folderPropertiesGet("john.doe@example.com", 6)); } - #[CoversMethod(Database::class, "folderPropertiesGet")] + //#[CoversMethod(Database::class, "folderPropertiesGet")] public function testGetThePropertiesOfAMissingFolder(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->folderPropertiesGet("john.doe@example.com", 2112); } - #[CoversMethod(Database::class, "folderPropertiesGet")] + //#[CoversMethod(Database::class, "folderPropertiesGet")] public function testGetThePropertiesOfAnInvalidFolder(): void { $this->assertException("typeViolation", "Db", "ExceptionInput"); Arsse::$db->folderPropertiesGet("john.doe@example.com", -1); } - #[CoversMethod(Database::class, "folderPropertiesGet")] + //#[CoversMethod(Database::class, "folderPropertiesGet")] public function testGetThePropertiesOfAFolderOfTheWrongOwner(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->folderPropertiesGet("john.doe@example.com", 4); // folder ID 4 belongs to Jane } - #[CoversMethod(Database::class, "folderPropertiesSet")] + //#[CoversMethod(Database::class, "folderPropertiesSet")] public function testMakeNoChangesToAFolder(): void { $this->assertFalse(Arsse::$db->folderPropertiesSet("john.doe@example.com", 6, [])); } - #[CoversMethod(Database::class, "folderPropertiesSet")] - #[CoversMethod(Database::class, "folderValidateName")] + //#[CoversMethod(Database::class, "folderPropertiesSet")] + //#[CoversMethod(Database::class, "folderValidateName")] public function testRenameAFolder(): void { $this->assertTrue(Arsse::$db->folderPropertiesSet("john.doe@example.com", 6, ['name' => "Opinion"])); $state = $this->primeExpectations($this->data, ['arsse_folders' => ['id','owner', 'parent', 'name']]); @@ -311,35 +311,35 @@ trait SeriesFolder { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "folderPropertiesSet")] - #[CoversMethod(Database::class, "folderValidateName")] + //#[CoversMethod(Database::class, "folderPropertiesSet")] + //#[CoversMethod(Database::class, "folderValidateName")] public function testRenameTheRootFolder(): void { $this->assertFalse(Arsse::$db->folderPropertiesSet("john.doe@example.com", null, ['name' => "Opinion"])); } - #[CoversMethod(Database::class, "folderPropertiesSet")] - #[CoversMethod(Database::class, "folderValidateName")] + //#[CoversMethod(Database::class, "folderPropertiesSet")] + //#[CoversMethod(Database::class, "folderValidateName")] public function testRenameAFolderToTheEmptyString(): void { $this->assertException("missing", "Db", "ExceptionInput"); $this->assertTrue(Arsse::$db->folderPropertiesSet("john.doe@example.com", 6, ['name' => ""])); } - #[CoversMethod(Database::class, "folderPropertiesSet")] - #[CoversMethod(Database::class, "folderValidateName")] + //#[CoversMethod(Database::class, "folderPropertiesSet")] + //#[CoversMethod(Database::class, "folderValidateName")] public function testRenameAFolderToWhitespaceOnly(): void { $this->assertException("whitespace", "Db", "ExceptionInput"); $this->assertTrue(Arsse::$db->folderPropertiesSet("john.doe@example.com", 6, ['name' => " "])); } - #[CoversMethod(Database::class, "folderPropertiesSet")] - #[CoversMethod(Database::class, "folderValidateName")] + //#[CoversMethod(Database::class, "folderPropertiesSet")] + //#[CoversMethod(Database::class, "folderValidateName")] public function testRenameAFolderToAnInvalidValue(): void { $this->assertException("typeViolation", "Db", "ExceptionInput"); $this->assertTrue(Arsse::$db->folderPropertiesSet("john.doe@example.com", 6, ['name' => []])); } - #[CoversMethod(Database::class, "folderPropertiesSet")] - #[CoversMethod(Database::class, "folderValidateMove")] + //#[CoversMethod(Database::class, "folderPropertiesSet")] + //#[CoversMethod(Database::class, "folderValidateMove")] public function testMoveAFolder(): void { $this->assertTrue(Arsse::$db->folderPropertiesSet("john.doe@example.com", 6, ['parent' => 5])); $state = $this->primeExpectations($this->data, ['arsse_folders' => ['id','owner', 'parent', 'name']]); @@ -347,69 +347,69 @@ trait SeriesFolder { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "folderPropertiesSet")] - #[CoversMethod(Database::class, "folderValidateMove")] + //#[CoversMethod(Database::class, "folderPropertiesSet")] + //#[CoversMethod(Database::class, "folderValidateMove")] public function testMoveTheRootFolder(): void { $this->assertException("circularDependence", "Db", "ExceptionInput"); Arsse::$db->folderPropertiesSet("john.doe@example.com", 0, ['parent' => 1]); } - #[CoversMethod(Database::class, "folderPropertiesSet")] - #[CoversMethod(Database::class, "folderValidateMove")] + //#[CoversMethod(Database::class, "folderPropertiesSet")] + //#[CoversMethod(Database::class, "folderValidateMove")] public function testMoveAFolderToItsDescendant(): void { $this->assertException("circularDependence", "Db", "ExceptionInput"); Arsse::$db->folderPropertiesSet("john.doe@example.com", 1, ['parent' => 3]); } - #[CoversMethod(Database::class, "folderPropertiesSet")] - #[CoversMethod(Database::class, "folderValidateMove")] + //#[CoversMethod(Database::class, "folderPropertiesSet")] + //#[CoversMethod(Database::class, "folderValidateMove")] public function testMoveAFolderToItself(): void { $this->assertException("circularDependence", "Db", "ExceptionInput"); Arsse::$db->folderPropertiesSet("john.doe@example.com", 1, ['parent' => 1]); } - #[CoversMethod(Database::class, "folderPropertiesSet")] - #[CoversMethod(Database::class, "folderValidateMove")] + //#[CoversMethod(Database::class, "folderPropertiesSet")] + //#[CoversMethod(Database::class, "folderValidateMove")] public function testMoveAFolderToAMissingParent(): void { $this->assertException("idMissing", "Db", "ExceptionInput"); Arsse::$db->folderPropertiesSet("john.doe@example.com", 1, ['parent' => 2112]); } - #[CoversMethod(Database::class, "folderPropertiesSet")] - #[CoversMethod(Database::class, "folderValidateMove")] + //#[CoversMethod(Database::class, "folderPropertiesSet")] + //#[CoversMethod(Database::class, "folderValidateMove")] public function testMoveAFolderToAnInvalidParent(): void { $this->assertException("idMissing", "Db", "ExceptionInput"); Arsse::$db->folderPropertiesSet("john.doe@example.com", 1, ['parent' => "ThisFolderDoesNotExist"]); } - #[CoversMethod(Database::class, "folderPropertiesSet")] - #[CoversMethod(Database::class, "folderValidateMove")] + //#[CoversMethod(Database::class, "folderPropertiesSet")] + //#[CoversMethod(Database::class, "folderValidateMove")] public function testCauseAFolderCollision(): void { $this->assertException("constraintViolation", "Db", "ExceptionInput"); Arsse::$db->folderPropertiesSet("john.doe@example.com", 6, ['parent' => null]); } - #[CoversMethod(Database::class, "folderPropertiesSet")] - #[CoversMethod(Database::class, "folderValidateName")] - #[CoversMethod(Database::class, "folderValidateMove")] + //#[CoversMethod(Database::class, "folderPropertiesSet")] + //#[CoversMethod(Database::class, "folderValidateName")] + //#[CoversMethod(Database::class, "folderValidateMove")] public function testCauseACompoundFolderCollision(): void { $this->assertException("constraintViolation", "Db", "ExceptionInput"); Arsse::$db->folderPropertiesSet("john.doe@example.com", 3, ['parent' => null, 'name' => "Technology"]); } - #[CoversMethod(Database::class, "folderPropertiesSet")] + //#[CoversMethod(Database::class, "folderPropertiesSet")] public function testSetThePropertiesOfAMissingFolder(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->folderPropertiesSet("john.doe@example.com", 2112, ['parent' => null]); } - #[CoversMethod(Database::class, "folderPropertiesSet")] + //#[CoversMethod(Database::class, "folderPropertiesSet")] public function testSetThePropertiesOfAnInvalidFolder(): void { $this->assertException("typeViolation", "Db", "ExceptionInput"); Arsse::$db->folderPropertiesSet("john.doe@example.com", -1, ['parent' => null]); } - #[CoversMethod(Database::class, "folderPropertiesSet")] + //#[CoversMethod(Database::class, "folderPropertiesSet")] public function testSetThePropertiesOfAFolderForTheWrongOwner(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->folderPropertiesSet("john.doe@example.com", 4, ['parent' => null]); // folder ID 4 belongs to Jane diff --git a/tests/cases/Database/SeriesIcon.php b/tests/cases/Database/SeriesIcon.php index 2ccf2771..d9c594d3 100644 --- a/tests/cases/Database/SeriesIcon.php +++ b/tests/cases/Database/SeriesIcon.php @@ -86,7 +86,7 @@ trait SeriesIcon { unset($this->data); } - #[CoversMethod(Database::class, "iconList")] + //#[CoversMethod(Database::class, "iconList")] public function testListTheIconsOfAUser() { $exp = [ ['id' => 1,'url' => 'http://localhost:8000/Icon/PNG', 'type' => 'image/png', 'data' => base64_decode("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMjHxIGmVAAAADUlEQVQYV2NgYGBgAAAABQABijPjAAAAAABJRU5ErkJggg==")], diff --git a/tests/cases/Database/SeriesLabel.php b/tests/cases/Database/SeriesLabel.php index 67cdbf69..af1bc513 100644 --- a/tests/cases/Database/SeriesLabel.php +++ b/tests/cases/Database/SeriesLabel.php @@ -257,8 +257,8 @@ trait SeriesLabel { unset($this->data, $this->checkLabels, $this->checkMembers, $this->user); } - #[CoversMethod(Database::class, "labelAdd")] - #[CoversMethod(Database::class, "labelValidateName")] + //#[CoversMethod(Database::class, "labelAdd")] + //#[CoversMethod(Database::class, "labelValidateName")] public function testAddALabel(): void { $user = "john.doe@example.com"; $labelID = $this->nextID("arsse_labels"); @@ -268,35 +268,35 @@ trait SeriesLabel { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "labelAdd")] - #[CoversMethod(Database::class, "labelValidateName")] + //#[CoversMethod(Database::class, "labelAdd")] + //#[CoversMethod(Database::class, "labelValidateName")] public function testAddADuplicateLabel(): void { $this->assertException("constraintViolation", "Db", "ExceptionInput"); Arsse::$db->labelAdd("john.doe@example.com", ['name' => "Interesting"]); } - #[CoversMethod(Database::class, "labelAdd")] - #[CoversMethod(Database::class, "labelValidateName")] + //#[CoversMethod(Database::class, "labelAdd")] + //#[CoversMethod(Database::class, "labelValidateName")] public function testAddALabelWithAMissingName(): void { $this->assertException("missing", "Db", "ExceptionInput"); Arsse::$db->labelAdd("john.doe@example.com", []); } - #[CoversMethod(Database::class, "labelAdd")] - #[CoversMethod(Database::class, "labelValidateName")] + //#[CoversMethod(Database::class, "labelAdd")] + //#[CoversMethod(Database::class, "labelValidateName")] public function testAddALabelWithABlankName(): void { $this->assertException("missing", "Db", "ExceptionInput"); Arsse::$db->labelAdd("john.doe@example.com", ['name' => ""]); } - #[CoversMethod(Database::class, "labelAdd")] - #[CoversMethod(Database::class, "labelValidateName")] + //#[CoversMethod(Database::class, "labelAdd")] + //#[CoversMethod(Database::class, "labelValidateName")] public function testAddALabelWithAWhitespaceName(): void { $this->assertException("whitespace", "Db", "ExceptionInput"); Arsse::$db->labelAdd("john.doe@example.com", ['name' => " "]); } - #[CoversMethod(Database::class, "labelList")] + //#[CoversMethod(Database::class, "labelList")] public function testListLabels(): void { $exp = [ ['id' => 2, 'name' => "Fascinating", 'articles' => 3, 'read' => 1], @@ -312,8 +312,8 @@ trait SeriesLabel { $this->assertResult($exp, Arsse::$db->labelList("jane.doe@example.com", false)); } - #[CoversMethod(Database::class, "labelRemove")] - #[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelRemove")] + //#[CoversMethod(Database::class, "labelValidateId")] public function testRemoveALabel(): void { $this->assertTrue(Arsse::$db->labelRemove("john.doe@example.com", 1)); $state = $this->primeExpectations($this->data, $this->checkLabels); @@ -321,8 +321,8 @@ trait SeriesLabel { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "labelRemove")] - #[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelRemove")] + //#[CoversMethod(Database::class, "labelValidateId")] public function testRemoveALabelByName(): void { $this->assertTrue(Arsse::$db->labelRemove("john.doe@example.com", "Interesting", true)); $state = $this->primeExpectations($this->data, $this->checkLabels); @@ -330,36 +330,36 @@ trait SeriesLabel { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "labelRemove")] - #[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelRemove")] + //#[CoversMethod(Database::class, "labelValidateId")] public function testRemoveAMissingLabel(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->labelRemove("john.doe@example.com", 2112); } - #[CoversMethod(Database::class, "labelRemove")] - #[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelRemove")] + //#[CoversMethod(Database::class, "labelValidateId")] public function testRemoveAnInvalidLabel(): void { $this->assertException("typeViolation", "Db", "ExceptionInput"); Arsse::$db->labelRemove("john.doe@example.com", -1); } - #[CoversMethod(Database::class, "labelRemove")] - #[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelRemove")] + //#[CoversMethod(Database::class, "labelValidateId")] public function testRemoveAnInvalidLabelByName(): void { $this->assertException("typeViolation", "Db", "ExceptionInput"); Arsse::$db->labelRemove("john.doe@example.com", [], true); } - #[CoversMethod(Database::class, "labelRemove")] - #[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelRemove")] + //#[CoversMethod(Database::class, "labelValidateId")] public function testRemoveALabelOfTheWrongOwner(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->labelRemove("john.doe@example.com", 3); // label ID 3 belongs to Jane } - #[CoversMethod(Database::class, "labelPropertiesGet")] - #[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelPropertiesGet")] + //#[CoversMethod(Database::class, "labelValidateId")] public function testGetThePropertiesOfALabel(): void { $exp = [ 'id' => 2, @@ -371,44 +371,44 @@ trait SeriesLabel { $this->assertArraySubset($exp, Arsse::$db->labelPropertiesGet("john.doe@example.com", "Fascinating", true)); } - #[CoversMethod(Database::class, "labelPropertiesGet")] - #[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelPropertiesGet")] + //#[CoversMethod(Database::class, "labelValidateId")] public function testGetThePropertiesOfAMissingLabel(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->labelPropertiesGet("john.doe@example.com", 2112); } - #[CoversMethod(Database::class, "labelPropertiesGet")] - #[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelPropertiesGet")] + //#[CoversMethod(Database::class, "labelValidateId")] public function testGetThePropertiesOfAnInvalidLabel(): void { $this->assertException("typeViolation", "Db", "ExceptionInput"); Arsse::$db->labelPropertiesGet("john.doe@example.com", -1); } - #[CoversMethod(Database::class, "labelPropertiesGet")] - #[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelPropertiesGet")] + //#[CoversMethod(Database::class, "labelValidateId")] public function testGetThePropertiesOfAnInvalidLabelByName(): void { $this->assertException("typeViolation", "Db", "ExceptionInput"); Arsse::$db->labelPropertiesGet("john.doe@example.com", [], true); } - #[CoversMethod(Database::class, "labelPropertiesGet")] - #[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelPropertiesGet")] + //#[CoversMethod(Database::class, "labelValidateId")] public function testGetThePropertiesOfALabelOfTheWrongOwner(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->labelPropertiesGet("john.doe@example.com", 3); // label ID 3 belongs to Jane } - #[CoversMethod(Database::class, "labelPropertiesSet")] - #[CoversMethod(Database::class, "labelValidateId")] - #[CoversMethod(Database::class, "labelValidateName")] + //#[CoversMethod(Database::class, "labelPropertiesSet")] + //#[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelValidateName")] public function testMakeNoChangesToALabel(): void { $this->assertFalse(Arsse::$db->labelPropertiesSet("john.doe@example.com", 1, [])); } - #[CoversMethod(Database::class, "labelPropertiesSet")] - #[CoversMethod(Database::class, "labelValidateId")] - #[CoversMethod(Database::class, "labelValidateName")] + //#[CoversMethod(Database::class, "labelPropertiesSet")] + //#[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelValidateName")] public function testRenameALabel(): void { $this->assertTrue(Arsse::$db->labelPropertiesSet("john.doe@example.com", 1, ['name' => "Curious"])); $state = $this->primeExpectations($this->data, $this->checkLabels); @@ -416,9 +416,9 @@ trait SeriesLabel { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "labelPropertiesSet")] - #[CoversMethod(Database::class, "labelValidateId")] - #[CoversMethod(Database::class, "labelValidateName")] + //#[CoversMethod(Database::class, "labelPropertiesSet")] + //#[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelValidateName")] public function testRenameALabelByName(): void { $this->assertTrue(Arsse::$db->labelPropertiesSet("john.doe@example.com", "Interesting", ['name' => "Curious"], true)); $state = $this->primeExpectations($this->data, $this->checkLabels); @@ -426,72 +426,72 @@ trait SeriesLabel { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "labelPropertiesSet")] - #[CoversMethod(Database::class, "labelValidateId")] - #[CoversMethod(Database::class, "labelValidateName")] + //#[CoversMethod(Database::class, "labelPropertiesSet")] + //#[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelValidateName")] public function testRenameALabelToTheEmptyString(): void { $this->assertException("missing", "Db", "ExceptionInput"); $this->assertTrue(Arsse::$db->labelPropertiesSet("john.doe@example.com", 1, ['name' => ""])); } - #[CoversMethod(Database::class, "labelPropertiesSet")] - #[CoversMethod(Database::class, "labelValidateId")] - #[CoversMethod(Database::class, "labelValidateName")] + //#[CoversMethod(Database::class, "labelPropertiesSet")] + //#[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelValidateName")] public function testRenameALabelToWhitespaceOnly(): void { $this->assertException("whitespace", "Db", "ExceptionInput"); $this->assertTrue(Arsse::$db->labelPropertiesSet("john.doe@example.com", 1, ['name' => " "])); } - #[CoversMethod(Database::class, "labelPropertiesSet")] - #[CoversMethod(Database::class, "labelValidateId")] - #[CoversMethod(Database::class, "labelValidateName")] + //#[CoversMethod(Database::class, "labelPropertiesSet")] + //#[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelValidateName")] public function testRenameALabelToAnInvalidValue(): void { $this->assertException("typeViolation", "Db", "ExceptionInput"); $this->assertTrue(Arsse::$db->labelPropertiesSet("john.doe@example.com", 1, ['name' => []])); } - #[CoversMethod(Database::class, "labelPropertiesSet")] - #[CoversMethod(Database::class, "labelValidateId")] - #[CoversMethod(Database::class, "labelValidateName")] + //#[CoversMethod(Database::class, "labelPropertiesSet")] + //#[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelValidateName")] public function testCauseALabelCollision(): void { $this->assertException("constraintViolation", "Db", "ExceptionInput"); Arsse::$db->labelPropertiesSet("john.doe@example.com", 1, ['name' => "Fascinating"]); } - #[CoversMethod(Database::class, "labelPropertiesSet")] - #[CoversMethod(Database::class, "labelValidateId")] - #[CoversMethod(Database::class, "labelValidateName")] + //#[CoversMethod(Database::class, "labelPropertiesSet")] + //#[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelValidateName")] public function testSetThePropertiesOfAMissingLabel(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->labelPropertiesSet("john.doe@example.com", 2112, ['name' => "Exciting"]); } - #[CoversMethod(Database::class, "labelPropertiesSet")] - #[CoversMethod(Database::class, "labelValidateId")] - #[CoversMethod(Database::class, "labelValidateName")] + //#[CoversMethod(Database::class, "labelPropertiesSet")] + //#[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelValidateName")] public function testSetThePropertiesOfAnInvalidLabel(): void { $this->assertException("typeViolation", "Db", "ExceptionInput"); Arsse::$db->labelPropertiesSet("john.doe@example.com", -1, ['name' => "Exciting"]); } - #[CoversMethod(Database::class, "labelPropertiesSet")] - #[CoversMethod(Database::class, "labelValidateId")] - #[CoversMethod(Database::class, "labelValidateName")] + //#[CoversMethod(Database::class, "labelPropertiesSet")] + //#[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelValidateName")] public function testSetThePropertiesOfAnInvalidLabelByName(): void { $this->assertException("typeViolation", "Db", "ExceptionInput"); Arsse::$db->labelPropertiesSet("john.doe@example.com", [], ['name' => "Exciting"], true); } - #[CoversMethod(Database::class, "labelPropertiesSet")] - #[CoversMethod(Database::class, "labelValidateId")] - #[CoversMethod(Database::class, "labelValidateName")] + //#[CoversMethod(Database::class, "labelPropertiesSet")] + //#[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelValidateName")] public function testSetThePropertiesOfALabelForTheWrongOwner(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->labelPropertiesSet("john.doe@example.com", 3, ['name' => "Exciting"]); // label ID 3 belongs to Jane } - #[CoversMethod(Database::class, "labelArticlesGet")] - #[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelArticlesGet")] + //#[CoversMethod(Database::class, "labelValidateId")] public function testListLabelledArticles(): void { $exp = [1,19]; $this->assertEquals($exp, Arsse::$db->labelArticlesGet("john.doe@example.com", 1)); @@ -504,22 +504,22 @@ trait SeriesLabel { $this->assertEquals($exp, Arsse::$db->labelArticlesGet("john.doe@example.com", "Lonely", true)); } - #[CoversMethod(Database::class, "labelArticlesGet")] - #[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelArticlesGet")] + //#[CoversMethod(Database::class, "labelValidateId")] public function testListLabelledArticlesForAMissingLabel(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->labelArticlesGet("john.doe@example.com", 3); } - #[CoversMethod(Database::class, "labelArticlesGet")] - #[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelArticlesGet")] + //#[CoversMethod(Database::class, "labelValidateId")] public function testListLabelledArticlesForAnInvalidLabel(): void { $this->assertException("typeViolation", "Db", "ExceptionInput"); Arsse::$db->labelArticlesGet("john.doe@example.com", -1); } - #[CoversMethod(Database::class, "labelArticlesSet")] - #[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelArticlesSet")] + //#[CoversMethod(Database::class, "labelValidateId")] public function testApplyALabelToArticles(): void { Arsse::$db->labelArticlesSet("john.doe@example.com", 1, (new Context)->articles([2,5])); $state = $this->primeExpectations($this->data, $this->checkMembers); @@ -528,8 +528,8 @@ trait SeriesLabel { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "labelArticlesSet")] - #[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelArticlesSet")] + //#[CoversMethod(Database::class, "labelValidateId")] public function testClearALabelFromArticles(): void { Arsse::$db->labelArticlesSet("john.doe@example.com", 1, (new Context)->articles([1,5]), Database::ASSOC_REMOVE); $state = $this->primeExpectations($this->data, $this->checkMembers); @@ -537,8 +537,8 @@ trait SeriesLabel { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "labelArticlesSet")] - #[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelArticlesSet")] + //#[CoversMethod(Database::class, "labelValidateId")] public function testApplyALabelToArticlesByName(): void { Arsse::$db->labelArticlesSet("john.doe@example.com", "Interesting", (new Context)->articles([2,5]), Database::ASSOC_ADD, true); $state = $this->primeExpectations($this->data, $this->checkMembers); @@ -547,8 +547,8 @@ trait SeriesLabel { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "labelArticlesSet")] - #[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelArticlesSet")] + //#[CoversMethod(Database::class, "labelValidateId")] public function testClearALabelFromArticlesByName(): void { Arsse::$db->labelArticlesSet("john.doe@example.com", "Interesting", (new Context)->articles([1,5]), Database::ASSOC_REMOVE, true); $state = $this->primeExpectations($this->data, $this->checkMembers); @@ -556,24 +556,24 @@ trait SeriesLabel { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "labelArticlesSet")] - #[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelArticlesSet")] + //#[CoversMethod(Database::class, "labelValidateId")] public function testApplyALabelToNoArticles(): void { Arsse::$db->labelArticlesSet("john.doe@example.com", 1, (new Context)->articles([10000])); $state = $this->primeExpectations($this->data, $this->checkMembers); $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "labelArticlesSet")] - #[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelArticlesSet")] + //#[CoversMethod(Database::class, "labelValidateId")] public function testClearALabelFromNoArticles(): void { Arsse::$db->labelArticlesSet("john.doe@example.com", 1, (new Context)->articles([10000]), Database::ASSOC_REMOVE); $state = $this->primeExpectations($this->data, $this->checkMembers); $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "labelArticlesSet")] - #[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelArticlesSet")] + //#[CoversMethod(Database::class, "labelValidateId")] public function testReplaceArticlesOfALabel(): void { Arsse::$db->labelArticlesSet("john.doe@example.com", 1, (new Context)->articles([2,5]), Database::ASSOC_REPLACE); $state = $this->primeExpectations($this->data, $this->checkMembers); @@ -584,8 +584,8 @@ trait SeriesLabel { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "labelArticlesSet")] - #[CoversMethod(Database::class, "labelValidateId")] + //#[CoversMethod(Database::class, "labelArticlesSet")] + //#[CoversMethod(Database::class, "labelValidateId")] public function testPurgeArticlesOfALabel(): void { Arsse::$db->labelArticlesSet("john.doe@example.com", 1, (new Context)->articles([10000]), Database::ASSOC_REPLACE); $state = $this->primeExpectations($this->data, $this->checkMembers); diff --git a/tests/cases/Database/SeriesMeta.php b/tests/cases/Database/SeriesMeta.php index b661e0d7..e9a56230 100644 --- a/tests/cases/Database/SeriesMeta.php +++ b/tests/cases/Database/SeriesMeta.php @@ -38,7 +38,7 @@ trait SeriesMeta { unset($this->data); } - #[CoversMethod(Database::class, "metaSet")] + //#[CoversMethod(Database::class, "metaSet")] public function testAddANewValue(): void { $this->assertTrue(Arsse::$db->metaSet("favourite", "Cygnus X-1")); $state = $this->primeExpectations($this->data, ['arsse_meta' => ['key','value']]); @@ -46,7 +46,7 @@ trait SeriesMeta { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "metaSet")] + //#[CoversMethod(Database::class, "metaSet")] public function testAddANewTypedValue(): void { $this->assertTrue(Arsse::$db->metaSet("answer", 42, "int")); $this->assertTrue(Arsse::$db->metaSet("true", true, "bool")); @@ -60,7 +60,7 @@ trait SeriesMeta { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "metaSet")] + //#[CoversMethod(Database::class, "metaSet")] public function testChangeAnExistingValue(): void { $this->assertTrue(Arsse::$db->metaSet("album", "Hemispheres")); $state = $this->primeExpectations($this->data, ['arsse_meta' => ['key','value']]); @@ -68,7 +68,7 @@ trait SeriesMeta { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "metaRemove")] + //#[CoversMethod(Database::class, "metaRemove")] public function testRemoveAValue(): void { $this->assertTrue(Arsse::$db->metaRemove("album")); $this->assertFalse(Arsse::$db->metaRemove("album")); @@ -77,7 +77,7 @@ trait SeriesMeta { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "metaGet")] + //#[CoversMethod(Database::class, "metaGet")] public function testRetrieveAValue(): void { $this->assertSame("".Database::SCHEMA_VERSION, Arsse::$db->metaGet("schema_version")); $this->assertSame("A Farewell to Kings", Arsse::$db->metaGet("album")); diff --git a/tests/cases/Database/SeriesMiscellany.php b/tests/cases/Database/SeriesMiscellany.php index 45de2eb7..2e3f88e4 100644 --- a/tests/cases/Database/SeriesMiscellany.php +++ b/tests/cases/Database/SeriesMiscellany.php @@ -22,18 +22,18 @@ trait SeriesMiscellany { protected function tearDownSeriesMiscellany(): void { } - #[CoversMethod(Database::class, "__construct")] - #[CoversMethod(Database::class, "driverSchemaVersion")] - #[CoversMethod(Database::class, "driverSchemaUpdate")] + //#[CoversMethod(Database::class, "__construct")] + //#[CoversMethod(Database::class, "driverSchemaVersion")] + //#[CoversMethod(Database::class, "driverSchemaUpdate")] public function testInitializeDatabase(): void { static::dbRaze(static::$drv); $d = new Database(true); $this->assertSame(Database::SCHEMA_VERSION, $d->driverSchemaVersion()); } - #[CoversMethod(Database::class, "__construct")] - #[CoversMethod(Database::class, "driverSchemaVersion")] - #[CoversMethod(Database::class, "driverSchemaUpdate")] + //#[CoversMethod(Database::class, "__construct")] + //#[CoversMethod(Database::class, "driverSchemaVersion")] + //#[CoversMethod(Database::class, "driverSchemaUpdate")] public function testManuallyInitializeDatabase(): void { static::dbRaze(static::$drv); $d = new Database(false); @@ -43,12 +43,12 @@ trait SeriesMiscellany { $this->assertFalse($d->driverSchemaUpdate()); } - #[CoversMethod(Database::class, "driverCharsetAcceptable")] + //#[CoversMethod(Database::class, "driverCharsetAcceptable")] public function testCheckCharacterSetAcceptability(): void { $this->assertIsBool(Arsse::$db->driverCharsetAcceptable()); } - #[CoversMethod(Database::class, "driverMaintenance")] + //#[CoversMethod(Database::class, "driverMaintenance")] public function testPerformMaintenance(): void { $this->assertTrue(Arsse::$db->driverMaintenance()); } diff --git a/tests/cases/Database/SeriesSession.php b/tests/cases/Database/SeriesSession.php index bd20cfb1..6bc79351 100644 --- a/tests/cases/Database/SeriesSession.php +++ b/tests/cases/Database/SeriesSession.php @@ -58,8 +58,8 @@ trait SeriesSession { unset($this->data); } - #[CoversMethod(Database::class, "sessionResume")] - #[CoversMethod(Database::class, "sessionExpiringSoon")] + //#[CoversMethod(Database::class, "sessionResume")] + //#[CoversMethod(Database::class, "sessionExpiringSoon")] public function testResumeAValidSession(): void { $exp1 = [ 'id' => "80fa94c1a11f11e78667001e673b2560", @@ -78,28 +78,28 @@ trait SeriesSession { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "sessionResume")] - #[CoversMethod(Database::class, "sessionExpiringSoon")] + //#[CoversMethod(Database::class, "sessionResume")] + //#[CoversMethod(Database::class, "sessionExpiringSoon")] public function testResumeAMissingSession(): void { $this->assertException("invalid", "User", "ExceptionSession"); Arsse::$db->sessionResume("thisSessionDoesNotExist"); } - #[CoversMethod(Database::class, "sessionResume")] - #[CoversMethod(Database::class, "sessionExpiringSoon")] + //#[CoversMethod(Database::class, "sessionResume")] + //#[CoversMethod(Database::class, "sessionExpiringSoon")] public function testResumeAnExpiredSession(): void { $this->assertException("invalid", "User", "ExceptionSession"); Arsse::$db->sessionResume("27c6de8da13311e78667001e673b2560"); } - #[CoversMethod(Database::class, "sessionResume")] - #[CoversMethod(Database::class, "sessionExpiringSoon")] + //#[CoversMethod(Database::class, "sessionResume")] + //#[CoversMethod(Database::class, "sessionExpiringSoon")] public function testResumeAStaleSession(): void { $this->assertException("invalid", "User", "ExceptionSession"); Arsse::$db->sessionResume("ab3b3eb8a13311e78667001e673b2560"); } - #[CoversMethod(Database::class, "sessionCreate")] + //#[CoversMethod(Database::class, "sessionCreate")] public function testCreateASession(): void { $user = "jane.doe@example.com"; $id = Arsse::$db->sessionCreate($user); @@ -109,7 +109,7 @@ trait SeriesSession { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "sessionDestroy")] + //#[CoversMethod(Database::class, "sessionDestroy")] public function testDestroyASession(): void { $user = "jane.doe@example.com"; $id = "80fa94c1a11f11e78667001e673b2560"; @@ -121,7 +121,7 @@ trait SeriesSession { $this->assertFalse(Arsse::$db->sessionDestroy($user, $id)); } - #[CoversMethod(Database::class, "sessionDestroy")] + //#[CoversMethod(Database::class, "sessionDestroy")] public function testDestroyAllSessions(): void { $user = "jane.doe@example.com"; $this->assertTrue(Arsse::$db->sessionDestroy($user)); @@ -132,7 +132,7 @@ trait SeriesSession { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "sessionDestroy")] + //#[CoversMethod(Database::class, "sessionDestroy")] public function testDestroyASessionForTheWrongUser(): void { $user = "john.doe@example.com"; $id = "80fa94c1a11f11e78667001e673b2560"; diff --git a/tests/cases/Database/SeriesSubscription.php b/tests/cases/Database/SeriesSubscription.php index e9570b3d..52465f25 100644 --- a/tests/cases/Database/SeriesSubscription.php +++ b/tests/cases/Database/SeriesSubscription.php @@ -207,8 +207,8 @@ trait SeriesSubscription { unset($this->data, $this->user); } - #[CoversMethod(Database::class, "subscriptionAdd")] - #[CoversMethod(Database::class, "feedAdd")] + //#[CoversMethod(Database::class, "subscriptionAdd")] + //#[CoversMethod(Database::class, "feedAdd")] public function testAddASubscriptionToAnExistingFeed(): void { $url = "http://example.com/feed1"; $subID = $this->nextID("arsse_subscriptions"); @@ -224,8 +224,8 @@ trait SeriesSubscription { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "subscriptionAdd")] - #[CoversMethod(Database::class, "feedAdd")] + //#[CoversMethod(Database::class, "subscriptionAdd")] + //#[CoversMethod(Database::class, "feedAdd")] public function testAddASubscriptionToANewFeed(): void { $url = "http://example.org/feed1"; $feedID = $this->nextID("arsse_feeds"); @@ -243,8 +243,8 @@ trait SeriesSubscription { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "subscriptionAdd")] - #[CoversMethod(Database::class, "feedAdd")] + //#[CoversMethod(Database::class, "subscriptionAdd")] + //#[CoversMethod(Database::class, "feedAdd")] public function testAddASubscriptionToANewFeedViaDiscovery(): void { $url = "http://localhost:8000/Feed/Discovery/Valid"; $discovered = "http://localhost:8000/Feed/Discovery/Feed"; @@ -263,8 +263,8 @@ trait SeriesSubscription { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "subscriptionAdd")] - #[CoversMethod(Database::class, "feedAdd")] + //#[CoversMethod(Database::class, "subscriptionAdd")] + //#[CoversMethod(Database::class, "feedAdd")] public function testAddASubscriptionToAnInvalidFeed(): void { $url = "http://example.org/feed1"; $feedID = $this->nextID("arsse_feeds"); @@ -283,24 +283,24 @@ trait SeriesSubscription { } } - #[CoversMethod(Database::class, "subscriptionAdd")] - #[CoversMethod(Database::class, "feedAdd")] + //#[CoversMethod(Database::class, "subscriptionAdd")] + //#[CoversMethod(Database::class, "feedAdd")] public function testAddADuplicateSubscription(): void { $url = "http://example.com/feed2"; $this->assertException("constraintViolation", "Db", "ExceptionInput"); Arsse::$db->subscriptionAdd($this->user, $url); } - #[CoversMethod(Database::class, "subscriptionAdd")] - #[CoversMethod(Database::class, "feedAdd")] + //#[CoversMethod(Database::class, "subscriptionAdd")] + //#[CoversMethod(Database::class, "feedAdd")] public function testAddADuplicateSubscriptionWithEquivalentUrl(): void { $url = "http://EXAMPLE.COM/feed2"; $this->assertException("constraintViolation", "Db", "ExceptionInput"); Arsse::$db->subscriptionAdd($this->user, $url); } - #[CoversMethod(Database::class, "subscriptionAdd")] - #[CoversMethod(Database::class, "feedAdd")] + //#[CoversMethod(Database::class, "subscriptionAdd")] + //#[CoversMethod(Database::class, "feedAdd")] public function testAddADuplicateSubscriptionViaRedirection(): void { $url = "http://localhost:8000/Feed/Parsing/Valid"; Arsse::$db->subscriptionAdd($this->user, $url); @@ -309,7 +309,7 @@ trait SeriesSubscription { $this->assertSame($subID, Arsse::$db->subscriptionAdd($this->user, $url)); } - #[CoversMethod(Database::class, "subscriptionRemove")] + //#[CoversMethod(Database::class, "subscriptionRemove")] public function testRemoveASubscription(): void { $this->assertTrue(Arsse::$db->subscriptionRemove($this->user, 1)); $state = $this->primeExpectations($this->data, [ @@ -320,27 +320,27 @@ trait SeriesSubscription { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "subscriptionRemove")] + //#[CoversMethod(Database::class, "subscriptionRemove")] public function testRemoveAMissingSubscription(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->subscriptionRemove($this->user, 2112); } - #[CoversMethod(Database::class, "subscriptionRemove")] + //#[CoversMethod(Database::class, "subscriptionRemove")] public function testRemoveAnInvalidSubscription(): void { $this->assertException("typeViolation", "Db", "ExceptionInput"); Arsse::$db->subscriptionRemove($this->user, -1); } - #[CoversMethod(Database::class, "subscriptionRemove")] + //#[CoversMethod(Database::class, "subscriptionRemove")] public function testRemoveASubscriptionForTheWrongOwner(): void { $this->user = "jane.doe@example.com"; $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->subscriptionRemove($this->user, 1); } - #[CoversMethod(Database::class, "subscriptionList")] - #[CoversMethod(Database::class, "subscriptionPropertiesGet")] + //#[CoversMethod(Database::class, "subscriptionList")] + //#[CoversMethod(Database::class, "subscriptionPropertiesGet")] public function testListSubscriptions(): void { $exp = [ [ @@ -401,7 +401,7 @@ trait SeriesSubscription { $this->assertResult($exp, Arsse::$db->subscriptionList("jill.doe@example.com")); } - #[CoversMethod(Database::class, "subscriptionList")] + //#[CoversMethod(Database::class, "subscriptionList")] public function testListSubscriptionsInAFolder(): void { $exp = [ [ @@ -417,7 +417,7 @@ trait SeriesSubscription { $this->assertResult($exp, Arsse::$db->subscriptionList($this->user, null, false)); } - #[CoversMethod(Database::class, "subscriptionList")] + //#[CoversMethod(Database::class, "subscriptionList")] public function testListSubscriptionsWithRecursion(): void { $exp = [ [ @@ -433,39 +433,39 @@ trait SeriesSubscription { $this->assertResult($exp, Arsse::$db->subscriptionList($this->user, 2)); } - #[CoversMethod(Database::class, "subscriptionList")] + //#[CoversMethod(Database::class, "subscriptionList")] public function testListSubscriptionsInAMissingFolder(): void { $this->assertException("idMissing", "Db", "ExceptionInput"); Arsse::$db->subscriptionList($this->user, 4); } - #[CoversMethod(Database::class, "subscriptionCount")] + //#[CoversMethod(Database::class, "subscriptionCount")] public function testCountSubscriptions(): void { $this->assertSame(3, Arsse::$db->subscriptionCount($this->user)); $this->assertSame(1, Arsse::$db->subscriptionCount($this->user, 2)); } - #[CoversMethod(Database::class, "subscriptionCount")] + //#[CoversMethod(Database::class, "subscriptionCount")] public function testCountSubscriptionsInAMissingFolder(): void { $this->assertException("idMissing", "Db", "ExceptionInput"); Arsse::$db->subscriptionCount($this->user, 4); } - #[CoversMethod(Database::class, "subscriptionPropertiesGet")] + //#[CoversMethod(Database::class, "subscriptionPropertiesGet")] public function testGetThePropertiesOfAMissingSubscription(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->subscriptionPropertiesGet($this->user, 2112); } - #[CoversMethod(Database::class, "subscriptionPropertiesGet")] + //#[CoversMethod(Database::class, "subscriptionPropertiesGet")] public function testGetThePropertiesOfAnInvalidSubscription(): void { $this->assertException("typeViolation", "Db", "ExceptionInput"); Arsse::$db->subscriptionPropertiesGet($this->user, -1); } - #[CoversMethod(Database::class, "subscriptionPropertiesSet")] - #[CoversMethod(Database::class, "subscriptionValidateId")] - #[CoversMethod(Database::class, "subscriptionRulesApply")] + //#[CoversMethod(Database::class, "subscriptionPropertiesSet")] + //#[CoversMethod(Database::class, "subscriptionValidateId")] + //#[CoversMethod(Database::class, "subscriptionRulesApply")] public function testSetThePropertiesOfASubscription(): void { Arsse::$db->subscriptionPropertiesSet($this->user, 1, [ 'title' => "Ook Ook", @@ -494,25 +494,25 @@ trait SeriesSubscription { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "subscriptionPropertiesSet")] - #[CoversMethod(Database::class, "subscriptionValidateId")] - #[CoversMethod(Database::class, "subscriptionRulesApply")] + //#[CoversMethod(Database::class, "subscriptionPropertiesSet")] + //#[CoversMethod(Database::class, "subscriptionValidateId")] + //#[CoversMethod(Database::class, "subscriptionRulesApply")] public function testMoveASubscriptionToAMissingFolder(): void { $this->assertException("idMissing", "Db", "ExceptionInput"); Arsse::$db->subscriptionPropertiesSet($this->user, 1, ['folder' => 4]); } - #[CoversMethod(Database::class, "subscriptionPropertiesSet")] - #[CoversMethod(Database::class, "subscriptionValidateId")] - #[CoversMethod(Database::class, "subscriptionRulesApply")] + //#[CoversMethod(Database::class, "subscriptionPropertiesSet")] + //#[CoversMethod(Database::class, "subscriptionValidateId")] + //#[CoversMethod(Database::class, "subscriptionRulesApply")] public function testMoveASubscriptionToTheRootFolder(): void { $this->assertTrue(Arsse::$db->subscriptionPropertiesSet($this->user, 3, ['folder' => null])); } #[DataProvider("provideInvalidSubscriptionProperties")] - #[CoversMethod(Database::class, "subscriptionPropertiesSet")] - #[CoversMethod(Database::class, "subscriptionValidateId")] - #[CoversMethod(Database::class, "subscriptionRulesApply")] + //#[CoversMethod(Database::class, "subscriptionPropertiesSet")] + //#[CoversMethod(Database::class, "subscriptionValidateId")] + //#[CoversMethod(Database::class, "subscriptionRulesApply")] public function testSetThePropertiesOfASubscriptionToInvalidValues(array $data, string $exp): void { $this->assertException($exp, "Db", "ExceptionInput"); Arsse::$db->subscriptionPropertiesSet($this->user, 1, $data); @@ -530,30 +530,30 @@ trait SeriesSubscription { ]; } - #[CoversMethod(Database::class, "subscriptionPropertiesSet")] - #[CoversMethod(Database::class, "subscriptionValidateId")] - #[CoversMethod(Database::class, "subscriptionRulesApply")] + //#[CoversMethod(Database::class, "subscriptionPropertiesSet")] + //#[CoversMethod(Database::class, "subscriptionValidateId")] + //#[CoversMethod(Database::class, "subscriptionRulesApply")] public function testRenameASubscriptionToZero(): void { $this->assertTrue(Arsse::$db->subscriptionPropertiesSet($this->user, 1, ['title' => 0])); } - #[CoversMethod(Database::class, "subscriptionPropertiesSet")] - #[CoversMethod(Database::class, "subscriptionValidateId")] - #[CoversMethod(Database::class, "subscriptionRulesApply")] + //#[CoversMethod(Database::class, "subscriptionPropertiesSet")] + //#[CoversMethod(Database::class, "subscriptionValidateId")] + //#[CoversMethod(Database::class, "subscriptionRulesApply")] public function testSetThePropertiesOfAMissingSubscription(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->subscriptionPropertiesSet($this->user, 2112, ['folder' => null]); } - #[CoversMethod(Database::class, "subscriptionPropertiesSet")] - #[CoversMethod(Database::class, "subscriptionValidateId")] - #[CoversMethod(Database::class, "subscriptionRulesApply")] + //#[CoversMethod(Database::class, "subscriptionPropertiesSet")] + //#[CoversMethod(Database::class, "subscriptionValidateId")] + //#[CoversMethod(Database::class, "subscriptionRulesApply")] public function testSetThePropertiesOfAnInvalidSubscription(): void { $this->assertException("typeViolation", "Db", "ExceptionInput"); Arsse::$db->subscriptionPropertiesSet($this->user, -1, ['folder' => null]); } - #[CoversMethod(Database::class, "subscriptionIcon")] + //#[CoversMethod(Database::class, "subscriptionIcon")] public function testRetrieveTheFaviconOfASubscription(): void { $exp = "http://example.com/favicon.ico"; $this->assertSame($exp, Arsse::$db->subscriptionIcon(null, 1)['url']); @@ -561,13 +561,13 @@ trait SeriesSubscription { $this->assertSame(null, Arsse::$db->subscriptionIcon(null, 6)); } - #[CoversMethod(Database::class, "subscriptionIcon")] + //#[CoversMethod(Database::class, "subscriptionIcon")] public function testRetrieveTheFaviconOfAMissingSubscription(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->subscriptionIcon(null, -2112); } - #[CoversMethod(Database::class, "subscriptionIcon")] + //#[CoversMethod(Database::class, "subscriptionIcon")] public function testRetrieveTheFaviconOfASubscriptionWithUser(): void { $exp = "http://example.com/favicon.ico"; $user = "john.doe@example.com"; @@ -577,14 +577,14 @@ trait SeriesSubscription { $this->assertSame($exp, Arsse::$db->subscriptionIcon($user, 2)['url']); } - #[CoversMethod(Database::class, "subscriptionIcon")] + //#[CoversMethod(Database::class, "subscriptionIcon")] public function testRetrieveTheFaviconOfASubscriptionOfTheWrongUser(): void { $user = "john.doe@example.com"; $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->subscriptionIcon($user, 2); } - #[CoversMethod(Database::class, "subscriptionTagsGet")] + //#[CoversMethod(Database::class, "subscriptionTagsGet")] public function testListTheTagsOfASubscription(): void { $this->assertEquals([1,2], Arsse::$db->subscriptionTagsGet("john.doe@example.com", 1)); $this->assertEquals([2], Arsse::$db->subscriptionTagsGet("john.doe@example.com", 3)); @@ -592,28 +592,28 @@ trait SeriesSubscription { $this->assertEquals(["Fascinating"], Arsse::$db->subscriptionTagsGet("john.doe@example.com", 3, true)); } - #[CoversMethod(Database::class, "subscriptionTagsGet")] + //#[CoversMethod(Database::class, "subscriptionTagsGet")] public function testListTheTagsOfAMissingSubscription(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->subscriptionTagsGet($this->user, 101); } - #[CoversMethod(Database::class, "subscriptionRefreshed")] + //#[CoversMethod(Database::class, "subscriptionRefreshed")] public function testGetRefreshTimeOfASubscription(): void { $user = "john.doe@example.com"; $this->assertTime(strtotime("now + 1 hour"), Arsse::$db->subscriptionRefreshed($user)); $this->assertTime(strtotime("now - 1 hour"), Arsse::$db->subscriptionRefreshed($user, 1)); } - #[CoversMethod(Database::class, "subscriptionRefreshed")] + //#[CoversMethod(Database::class, "subscriptionRefreshed")] public function testGetRefreshTimeOfAMissingSubscription(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); $this->assertTime(strtotime("now - 1 hour"), Arsse::$db->subscriptionRefreshed("john.doe@example.com", 2)); } - #[CoversMethod(Database::class, "subscriptionPropertiesSet")] - #[CoversMethod(Database::class, "subscriptionValidateId")] - #[CoversMethod(Database::class, "subscriptionRulesApply")] + //#[CoversMethod(Database::class, "subscriptionPropertiesSet")] + //#[CoversMethod(Database::class, "subscriptionValidateId")] + //#[CoversMethod(Database::class, "subscriptionRulesApply")] public function testSetTheFilterRulesOfASubscriptionCheckingMarks(): void { Arsse::$db->subscriptionPropertiesSet("jack.doe@example.com", 5, ['keep_rule' => "1|B|3|D", 'block_rule' => "4"]); $state = $this->primeExpectations($this->data, ['arsse_marks' => ['article', 'subscription', 'hidden']]); diff --git a/tests/cases/Database/SeriesTag.php b/tests/cases/Database/SeriesTag.php index 4ad853f2..af2375a8 100644 --- a/tests/cases/Database/SeriesTag.php +++ b/tests/cases/Database/SeriesTag.php @@ -115,8 +115,8 @@ trait SeriesTag { unset($this->data, $this->checkTags, $this->checkMembers, $this->user); } - #[CoversMethod(Database::class, "tagAdd")] - #[CoversMethod(Database::class, "tagValidateName")] + //#[CoversMethod(Database::class, "tagAdd")] + //#[CoversMethod(Database::class, "tagValidateName")] public function testAddATag(): void { $user = "john.doe@example.com"; $tagID = $this->nextID("arsse_tags"); @@ -126,35 +126,35 @@ trait SeriesTag { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "tagAdd")] - #[CoversMethod(Database::class, "tagValidateName")] + //#[CoversMethod(Database::class, "tagAdd")] + //#[CoversMethod(Database::class, "tagValidateName")] public function testAddADuplicateTag(): void { $this->assertException("constraintViolation", "Db", "ExceptionInput"); Arsse::$db->tagAdd("john.doe@example.com", ['name' => "Interesting"]); } - #[CoversMethod(Database::class, "tagAdd")] - #[CoversMethod(Database::class, "tagValidateName")] + //#[CoversMethod(Database::class, "tagAdd")] + //#[CoversMethod(Database::class, "tagValidateName")] public function testAddATagWithAMissingName(): void { $this->assertException("missing", "Db", "ExceptionInput"); Arsse::$db->tagAdd("john.doe@example.com", []); } - #[CoversMethod(Database::class, "tagAdd")] - #[CoversMethod(Database::class, "tagValidateName")] + //#[CoversMethod(Database::class, "tagAdd")] + //#[CoversMethod(Database::class, "tagValidateName")] public function testAddATagWithABlankName(): void { $this->assertException("missing", "Db", "ExceptionInput"); Arsse::$db->tagAdd("john.doe@example.com", ['name' => ""]); } - #[CoversMethod(Database::class, "tagAdd")] - #[CoversMethod(Database::class, "tagValidateName")] + //#[CoversMethod(Database::class, "tagAdd")] + //#[CoversMethod(Database::class, "tagValidateName")] public function testAddATagWithAWhitespaceName(): void { $this->assertException("whitespace", "Db", "ExceptionInput"); Arsse::$db->tagAdd("john.doe@example.com", ['name' => " "]); } - #[CoversMethod(Database::class, "tagList")] + //#[CoversMethod(Database::class, "tagList")] public function testListTags(): void { $exp = [ ['id' => 2, 'name' => "Fascinating"], @@ -170,8 +170,8 @@ trait SeriesTag { $this->assertResult($exp, Arsse::$db->tagList("jane.doe@example.com", false)); } - #[CoversMethod(Database::class, "tagRemove")] - #[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagRemove")] + //#[CoversMethod(Database::class, "tagValidateId")] public function testRemoveATag(): void { $this->assertTrue(Arsse::$db->tagRemove("john.doe@example.com", 1)); $state = $this->primeExpectations($this->data, $this->checkTags); @@ -179,8 +179,8 @@ trait SeriesTag { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "tagRemove")] - #[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagRemove")] + //#[CoversMethod(Database::class, "tagValidateId")] public function testRemoveATagByName(): void { $this->assertTrue(Arsse::$db->tagRemove("john.doe@example.com", "Interesting", true)); $state = $this->primeExpectations($this->data, $this->checkTags); @@ -188,36 +188,36 @@ trait SeriesTag { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "tagRemove")] - #[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagRemove")] + //#[CoversMethod(Database::class, "tagValidateId")] public function testRemoveAMissingTag(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->tagRemove("john.doe@example.com", 2112); } - #[CoversMethod(Database::class, "tagRemove")] - #[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagRemove")] + //#[CoversMethod(Database::class, "tagValidateId")] public function testRemoveAnInvalidTag(): void { $this->assertException("typeViolation", "Db", "ExceptionInput"); Arsse::$db->tagRemove("john.doe@example.com", -1); } - #[CoversMethod(Database::class, "tagRemove")] - #[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagRemove")] + //#[CoversMethod(Database::class, "tagValidateId")] public function testRemoveAnInvalidTagByName(): void { $this->assertException("typeViolation", "Db", "ExceptionInput"); Arsse::$db->tagRemove("john.doe@example.com", [], true); } - #[CoversMethod(Database::class, "tagRemove")] - #[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagRemove")] + //#[CoversMethod(Database::class, "tagValidateId")] public function testRemoveATagOfTheWrongOwner(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->tagRemove("john.doe@example.com", 3); // tag ID 3 belongs to Jane } - #[CoversMethod(Database::class, "tagPropertiesGet")] - #[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagPropertiesGet")] + //#[CoversMethod(Database::class, "tagValidateId")] public function testGetThePropertiesOfATag(): void { $exp = [ 'id' => 2, @@ -227,44 +227,44 @@ trait SeriesTag { $this->assertArraySubset($exp, Arsse::$db->tagPropertiesGet("john.doe@example.com", "Fascinating", true)); } - #[CoversMethod(Database::class, "tagPropertiesGet")] - #[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagPropertiesGet")] + //#[CoversMethod(Database::class, "tagValidateId")] public function testGetThePropertiesOfAMissingTag(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->tagPropertiesGet("john.doe@example.com", 2112); } - #[CoversMethod(Database::class, "tagPropertiesGet")] - #[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagPropertiesGet")] + //#[CoversMethod(Database::class, "tagValidateId")] public function testGetThePropertiesOfAnInvalidTag(): void { $this->assertException("typeViolation", "Db", "ExceptionInput"); Arsse::$db->tagPropertiesGet("john.doe@example.com", -1); } - #[CoversMethod(Database::class, "tagPropertiesGet")] - #[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagPropertiesGet")] + //#[CoversMethod(Database::class, "tagValidateId")] public function testGetThePropertiesOfAnInvalidTagByName(): void { $this->assertException("typeViolation", "Db", "ExceptionInput"); Arsse::$db->tagPropertiesGet("john.doe@example.com", [], true); } - #[CoversMethod(Database::class, "tagPropertiesGet")] - #[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagPropertiesGet")] + //#[CoversMethod(Database::class, "tagValidateId")] public function testGetThePropertiesOfATagOfTheWrongOwner(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->tagPropertiesGet("john.doe@example.com", 3); // tag ID 3 belongs to Jane } - #[CoversMethod(Database::class, "tagPropertiesSet")] - #[CoversMethod(Database::class, "tagValidateId")] - #[CoversMethod(Database::class, "tagValidateName")] + //#[CoversMethod(Database::class, "tagPropertiesSet")] + //#[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagValidateName")] public function testMakeNoChangesToATag(): void { $this->assertFalse(Arsse::$db->tagPropertiesSet("john.doe@example.com", 1, [])); } - #[CoversMethod(Database::class, "tagPropertiesSet")] - #[CoversMethod(Database::class, "tagValidateId")] - #[CoversMethod(Database::class, "tagValidateName")] + //#[CoversMethod(Database::class, "tagPropertiesSet")] + //#[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagValidateName")] public function testRenameATag(): void { $this->assertTrue(Arsse::$db->tagPropertiesSet("john.doe@example.com", 1, ['name' => "Curious"])); $state = $this->primeExpectations($this->data, $this->checkTags); @@ -272,9 +272,9 @@ trait SeriesTag { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "tagPropertiesSet")] - #[CoversMethod(Database::class, "tagValidateId")] - #[CoversMethod(Database::class, "tagValidateName")] + //#[CoversMethod(Database::class, "tagPropertiesSet")] + //#[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagValidateName")] public function testRenameATagByName(): void { $this->assertTrue(Arsse::$db->tagPropertiesSet("john.doe@example.com", "Interesting", ['name' => "Curious"], true)); $state = $this->primeExpectations($this->data, $this->checkTags); @@ -282,72 +282,72 @@ trait SeriesTag { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "tagPropertiesSet")] - #[CoversMethod(Database::class, "tagValidateId")] - #[CoversMethod(Database::class, "tagValidateName")] + //#[CoversMethod(Database::class, "tagPropertiesSet")] + //#[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagValidateName")] public function testRenameATagToTheEmptyString(): void { $this->assertException("missing", "Db", "ExceptionInput"); $this->assertTrue(Arsse::$db->tagPropertiesSet("john.doe@example.com", 1, ['name' => ""])); } - #[CoversMethod(Database::class, "tagPropertiesSet")] - #[CoversMethod(Database::class, "tagValidateId")] - #[CoversMethod(Database::class, "tagValidateName")] + //#[CoversMethod(Database::class, "tagPropertiesSet")] + //#[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagValidateName")] public function testRenameATagToWhitespaceOnly(): void { $this->assertException("whitespace", "Db", "ExceptionInput"); $this->assertTrue(Arsse::$db->tagPropertiesSet("john.doe@example.com", 1, ['name' => " "])); } - #[CoversMethod(Database::class, "tagPropertiesSet")] - #[CoversMethod(Database::class, "tagValidateId")] - #[CoversMethod(Database::class, "tagValidateName")] + //#[CoversMethod(Database::class, "tagPropertiesSet")] + //#[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagValidateName")] public function testRenameATagToAnInvalidValue(): void { $this->assertException("typeViolation", "Db", "ExceptionInput"); $this->assertTrue(Arsse::$db->tagPropertiesSet("john.doe@example.com", 1, ['name' => []])); } - #[CoversMethod(Database::class, "tagPropertiesSet")] - #[CoversMethod(Database::class, "tagValidateId")] - #[CoversMethod(Database::class, "tagValidateName")] + //#[CoversMethod(Database::class, "tagPropertiesSet")] + //#[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagValidateName")] public function testCauseATagCollision(): void { $this->assertException("constraintViolation", "Db", "ExceptionInput"); Arsse::$db->tagPropertiesSet("john.doe@example.com", 1, ['name' => "Fascinating"]); } - #[CoversMethod(Database::class, "tagPropertiesSet")] - #[CoversMethod(Database::class, "tagValidateId")] - #[CoversMethod(Database::class, "tagValidateName")] + //#[CoversMethod(Database::class, "tagPropertiesSet")] + //#[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagValidateName")] public function testSetThePropertiesOfAMissingTag(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->tagPropertiesSet("john.doe@example.com", 2112, ['name' => "Exciting"]); } - #[CoversMethod(Database::class, "tagPropertiesSet")] - #[CoversMethod(Database::class, "tagValidateId")] - #[CoversMethod(Database::class, "tagValidateName")] + //#[CoversMethod(Database::class, "tagPropertiesSet")] + //#[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagValidateName")] public function testSetThePropertiesOfAnInvalidTag(): void { $this->assertException("typeViolation", "Db", "ExceptionInput"); Arsse::$db->tagPropertiesSet("john.doe@example.com", -1, ['name' => "Exciting"]); } - #[CoversMethod(Database::class, "tagPropertiesSet")] - #[CoversMethod(Database::class, "tagValidateId")] - #[CoversMethod(Database::class, "tagValidateName")] + //#[CoversMethod(Database::class, "tagPropertiesSet")] + //#[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagValidateName")] public function testSetThePropertiesOfAnInvalidTagByName(): void { $this->assertException("typeViolation", "Db", "ExceptionInput"); Arsse::$db->tagPropertiesSet("john.doe@example.com", [], ['name' => "Exciting"], true); } - #[CoversMethod(Database::class, "tagPropertiesSet")] - #[CoversMethod(Database::class, "tagValidateId")] - #[CoversMethod(Database::class, "tagValidateName")] + //#[CoversMethod(Database::class, "tagPropertiesSet")] + //#[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagValidateName")] public function testSetThePropertiesOfATagForTheWrongOwner(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->tagPropertiesSet("john.doe@example.com", 3, ['name' => "Exciting"]); // tag ID 3 belongs to Jane } - #[CoversMethod(Database::class, "tagSubscriptionsGet")] - #[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagSubscriptionsGet")] + //#[CoversMethod(Database::class, "tagValidateId")] public function testListTaggedSubscriptions(): void { $exp = [1,5]; $this->assertEquals($exp, Arsse::$db->tagSubscriptionsGet("john.doe@example.com", 1)); @@ -360,22 +360,22 @@ trait SeriesTag { $this->assertEquals($exp, Arsse::$db->tagSubscriptionsGet("john.doe@example.com", "Lonely", true)); } - #[CoversMethod(Database::class, "tagSubscriptionsGet")] - #[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagSubscriptionsGet")] + //#[CoversMethod(Database::class, "tagValidateId")] public function testListTaggedSubscriptionsForAMissingTag(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->tagSubscriptionsGet("john.doe@example.com", 3); } - #[CoversMethod(Database::class, "tagSubscriptionsGet")] - #[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagSubscriptionsGet")] + //#[CoversMethod(Database::class, "tagValidateId")] public function testListTaggedSubscriptionsForAnInvalidTag(): void { $this->assertException("typeViolation", "Db", "ExceptionInput"); Arsse::$db->tagSubscriptionsGet("john.doe@example.com", -1); } - #[CoversMethod(Database::class, "tagSubscriptionsSet")] - #[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagSubscriptionsSet")] + //#[CoversMethod(Database::class, "tagValidateId")] public function testApplyATagToSubscriptions(): void { Arsse::$db->tagSubscriptionsSet("john.doe@example.com", 1, [3,4]); $state = $this->primeExpectations($this->data, $this->checkMembers); @@ -384,8 +384,8 @@ trait SeriesTag { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "tagSubscriptionsSet")] - #[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagSubscriptionsSet")] + //#[CoversMethod(Database::class, "tagValidateId")] public function testClearATagFromSubscriptions(): void { Arsse::$db->tagSubscriptionsSet("john.doe@example.com", 1, [1,3], Database::ASSOC_REMOVE); $state = $this->primeExpectations($this->data, $this->checkMembers); @@ -393,8 +393,8 @@ trait SeriesTag { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "tagSubscriptionsSet")] - #[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagSubscriptionsSet")] + //#[CoversMethod(Database::class, "tagValidateId")] public function testApplyATagToSubscriptionsByName(): void { Arsse::$db->tagSubscriptionsSet("john.doe@example.com", "Interesting", [3,4], Database::ASSOC_ADD, true); $state = $this->primeExpectations($this->data, $this->checkMembers); @@ -403,8 +403,8 @@ trait SeriesTag { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "tagSubscriptionsSet")] - #[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagSubscriptionsSet")] + //#[CoversMethod(Database::class, "tagValidateId")] public function testClearATagFromSubscriptionsByName(): void { Arsse::$db->tagSubscriptionsSet("john.doe@example.com", "Interesting", [1,3], Database::ASSOC_REMOVE, true); $state = $this->primeExpectations($this->data, $this->checkMembers); @@ -412,24 +412,24 @@ trait SeriesTag { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "tagSubscriptionsSet")] - #[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagSubscriptionsSet")] + //#[CoversMethod(Database::class, "tagValidateId")] public function testApplyATagToNoSubscriptionsByName(): void { Arsse::$db->tagSubscriptionsSet("john.doe@example.com", "Interesting", [], Database::ASSOC_ADD, true); $state = $this->primeExpectations($this->data, $this->checkMembers); $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "tagSubscriptionsSet")] - #[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagSubscriptionsSet")] + //#[CoversMethod(Database::class, "tagValidateId")] public function testClearATagFromNoSubscriptionsByName(): void { Arsse::$db->tagSubscriptionsSet("john.doe@example.com", "Interesting", [], Database::ASSOC_REMOVE, true); $state = $this->primeExpectations($this->data, $this->checkMembers); $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "tagSubscriptionsSet")] - #[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagSubscriptionsSet")] + //#[CoversMethod(Database::class, "tagValidateId")] public function testReplaceSubscriptionsOfATag(): void { Arsse::$db->tagSubscriptionsSet("john.doe@example.com", 1, [3,4], Database::ASSOC_REPLACE); $state = $this->primeExpectations($this->data, $this->checkMembers); @@ -440,8 +440,8 @@ trait SeriesTag { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "tagSubscriptionsSet")] - #[CoversMethod(Database::class, "tagValidateId")] + //#[CoversMethod(Database::class, "tagSubscriptionsSet")] + //#[CoversMethod(Database::class, "tagValidateId")] public function testPurgeSubscriptionsOfATag(): void { Arsse::$db->tagSubscriptionsSet("john.doe@example.com", 1, [], Database::ASSOC_REPLACE); $state = $this->primeExpectations($this->data, $this->checkMembers); @@ -450,7 +450,7 @@ trait SeriesTag { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "tagSummarize")] + //#[CoversMethod(Database::class, "tagSummarize")] public function testSummarizeTags(): void { $exp = [ ['id' => 1, 'name' => "Interesting", 'subscription' => 1], diff --git a/tests/cases/Database/SeriesToken.php b/tests/cases/Database/SeriesToken.php index f8913fc4..2e1cf307 100644 --- a/tests/cases/Database/SeriesToken.php +++ b/tests/cases/Database/SeriesToken.php @@ -56,7 +56,7 @@ trait SeriesToken { unset($this->data); } - #[CoversMethod(Database::class, "tokenLookup")] + //#[CoversMethod(Database::class, "tokenLookup")] public function testLookUpAValidToken(): void { $exp1 = [ 'id' => "80fa94c1a11f11e78667001e673b2560", @@ -78,25 +78,25 @@ trait SeriesToken { $this->assertArraySubset($exp3, Arsse::$db->tokenLookup("class.class", "ab3b3eb8a13311e78667001e673b2560")); } - #[CoversMethod(Database::class, "tokenLookup")] + //#[CoversMethod(Database::class, "tokenLookup")] public function testLookUpAMissingToken(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->tokenLookup("class", "thisTokenDoesNotExist"); } - #[CoversMethod(Database::class, "tokenLookup")] + //#[CoversMethod(Database::class, "tokenLookup")] public function testLookUpAnExpiredToken(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->tokenLookup("fever.login", "27c6de8da13311e78667001e673b2560"); } - #[CoversMethod(Database::class, "tokenLookup")] + //#[CoversMethod(Database::class, "tokenLookup")] public function testLookUpATokenOfTheWrongClass(): void { $this->assertException("subjectMissing", "Db", "ExceptionInput"); Arsse::$db->tokenLookup("some.class", "80fa94c1a11f11e78667001e673b2560"); } - #[CoversMethod(Database::class, "tokenCreate")] + //#[CoversMethod(Database::class, "tokenCreate")] public function testCreateAToken(): void { $user = "jane.doe@example.com"; $state = $this->primeExpectations($this->data, ['arsse_tokens' => ["id", "class", "expires", "user"]]); @@ -111,13 +111,13 @@ trait SeriesToken { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "tokenCreate")] + //#[CoversMethod(Database::class, "tokenCreate")] public function testCreateATokenForAMissingUser(): void { $this->assertException("doesNotExist", "User", "ExceptionConflict"); Arsse::$db->tokenCreate("fever.login", "jane.doe@example.biz"); } - #[CoversMethod(Database::class, "tokenRevoke")] + //#[CoversMethod(Database::class, "tokenRevoke")] public function testRevokeAToken(): void { $user = "jane.doe@example.com"; $id = "80fa94c1a11f11e78667001e673b2560"; @@ -129,7 +129,7 @@ trait SeriesToken { $this->assertFalse(Arsse::$db->tokenRevoke($user, "fever.login", $id)); } - #[CoversMethod(Database::class, "tokenRevoke")] + //#[CoversMethod(Database::class, "tokenRevoke")] public function testRevokeAllTokens(): void { $user = "jane.doe@example.com"; $state = $this->primeExpectations($this->data, ['arsse_tokens' => ["id", "expires", "user"]]); @@ -144,7 +144,7 @@ trait SeriesToken { $this->assertFalse(Arsse::$db->tokenRevoke($user, "unknown.class")); } - #[CoversMethod(Database::class, "tokenList")] + //#[CoversMethod(Database::class, "tokenList")] public function testListTokens(): void { $user = "jane.doe@example.com"; $exp = [ diff --git a/tests/cases/Database/SeriesUser.php b/tests/cases/Database/SeriesUser.php index 675364e9..e558e210 100644 --- a/tests/cases/Database/SeriesUser.php +++ b/tests/cases/Database/SeriesUser.php @@ -52,27 +52,27 @@ trait SeriesUser { unset($this->data); } - #[CoversMethod(Database::class, "userExists")] + //#[CoversMethod(Database::class, "userExists")] public function testCheckThatAUserExists(): void { $this->assertTrue(Arsse::$db->userExists("jane.doe@example.com")); $this->assertFalse(Arsse::$db->userExists("jane.doe@example.org")); $this->compareExpectations(static::$drv, $this->data); } - #[CoversMethod(Database::class, "userPasswordGet")] + //#[CoversMethod(Database::class, "userPasswordGet")] public function testGetAPassword(): void { $hash = Arsse::$db->userPasswordGet("admin@example.net"); $this->assertSame('$2y$10$PbcG2ZR3Z8TuPzM7aHTF8.v61dtCjzjK78gdZJcp4UePE8T9jEgBW', $hash); $this->assertTrue(password_verify("secret", $hash)); } - #[CoversMethod(Database::class, "userPasswordGet")] + //#[CoversMethod(Database::class, "userPasswordGet")] public function testGetThePasswordOfAMissingUser(): void { $this->assertException("doesNotExist", "User", "ExceptionConflict"); Arsse::$db->userPasswordGet("john.doe@example.org"); } - #[CoversMethod(Database::class, "userAdd")] + //#[CoversMethod(Database::class, "userAdd")] public function testAddANewUser(): void { $this->assertTrue(Arsse::$db->userAdd("john.doe@example.org", "")); $state = $this->primeExpectations($this->data, ['arsse_users' => ['id']]); @@ -80,13 +80,13 @@ trait SeriesUser { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "userAdd")] + //#[CoversMethod(Database::class, "userAdd")] public function testAddAnExistingUser(): void { $this->assertException("alreadyExists", "User", "ExceptionConflict"); Arsse::$db->userAdd("john.doe@example.com", ""); } - #[CoversMethod(Database::class, "userRemove")] + //#[CoversMethod(Database::class, "userRemove")] public function testRemoveAUser(): void { $this->assertTrue(Arsse::$db->userRemove("admin@example.net")); $state = $this->primeExpectations($this->data, ['arsse_users' => ['id']]); @@ -94,19 +94,19 @@ trait SeriesUser { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "userRemove")] + //#[CoversMethod(Database::class, "userRemove")] public function testRemoveAMissingUser(): void { $this->assertException("doesNotExist", "User", "ExceptionConflict"); Arsse::$db->userRemove("john.doe@example.org"); } - #[CoversMethod(Database::class, "userList")] + //#[CoversMethod(Database::class, "userList")] public function testListAllUsers(): void { $users = ["admin@example.net", "jane.doe@example.com", "john.doe@example.com"]; $this->assertSame($users, Arsse::$db->userList()); } - #[CoversMethod(Database::class, "userPasswordSet")] + //#[CoversMethod(Database::class, "userPasswordSet")] public function testSetAPassword(): void { $user = "john.doe@example.com"; $pass = "secret"; @@ -117,7 +117,7 @@ trait SeriesUser { $this->assertTrue(password_verify($pass, $hash), "Failed verifying password of $user '$pass' against hash '$hash'."); } - #[CoversMethod(Database::class, "userPasswordSet")] + //#[CoversMethod(Database::class, "userPasswordSet")] public function testUnsetAPassword(): void { $user = "john.doe@example.com"; $this->assertEquals("", Arsse::$db->userPasswordGet($user)); @@ -125,14 +125,14 @@ trait SeriesUser { $this->assertNull(Arsse::$db->userPasswordGet($user)); } - #[CoversMethod(Database::class, "userPasswordSet")] + //#[CoversMethod(Database::class, "userPasswordSet")] public function testSetThePasswordOfAMissingUser(): void { $this->assertException("doesNotExist", "User", "ExceptionConflict"); Arsse::$db->userPasswordSet("john.doe@example.org", "secret"); } #[DataProvider("provideMetaData")] - #[CoversMethod(Database::class, "userPropertiesGet")] + //#[CoversMethod(Database::class, "userPropertiesGet")] public function testGetMetadata(string $user, bool $includeLarge, array $exp): void { $this->assertSame($exp, Arsse::$db->userPropertiesGet($user, $includeLarge)); } @@ -148,13 +148,13 @@ trait SeriesUser { ]; } - #[CoversMethod(Database::class, "userPropertiesGet")] + //#[CoversMethod(Database::class, "userPropertiesGet")] public function testGetTheMetadataOfAMissingUser(): void { $this->assertException("doesNotExist", "User", "ExceptionConflict"); Arsse::$db->userPropertiesGet("john.doe@example.org"); } - #[CoversMethod(Database::class, "userPropertiesSet")] + //#[CoversMethod(Database::class, "userPropertiesSet")] public function testSetMetadata(): void { $in = [ 'admin' => true, @@ -171,7 +171,7 @@ trait SeriesUser { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "userPropertiesSet")] + //#[CoversMethod(Database::class, "userPropertiesSet")] public function testSetNoMetadata(): void { $in = [ 'num' => 2112, @@ -182,26 +182,26 @@ trait SeriesUser { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "userPropertiesSet")] + //#[CoversMethod(Database::class, "userPropertiesSet")] public function testSetTheMetadataOfAMissingUser(): void { $this->assertException("doesNotExist", "User", "ExceptionConflict"); Arsse::$db->userPropertiesSet("john.doe@example.org", ['admin' => true]); } - #[CoversMethod(Database::class, "userLookup")] + //#[CoversMethod(Database::class, "userLookup")] public function testLookUpAUserByNumber(): void { $this->assertSame("admin@example.net", Arsse::$db->userLookup(1)); $this->assertSame("jane.doe@example.com", Arsse::$db->userLookup(2)); $this->assertSame("john.doe@example.com", Arsse::$db->userLookup(3)); } - #[CoversMethod(Database::class, "userLookup")] + //#[CoversMethod(Database::class, "userLookup")] public function testLookUpAMissingUserByNumber(): void { $this->assertException("doesNotExist", "User", "ExceptionConflict"); Arsse::$db->userLookup(2112); } - #[CoversMethod(Database::class, "userRename")] + //#[CoversMethod(Database::class, "userRename")] public function testRenameAUser(): void { $this->assertTrue(Arsse::$db->userRename("john.doe@example.com", "juan.doe@example.com")); $state = $this->primeExpectations($this->data, [ @@ -213,24 +213,24 @@ trait SeriesUser { $this->compareExpectations(static::$drv, $state); } - #[CoversMethod(Database::class, "userRename")] + //#[CoversMethod(Database::class, "userRename")] public function testRenameAUserToTheSameName(): void { $this->assertFalse(Arsse::$db->userRename("john.doe@example.com", "john.doe@example.com")); } - #[CoversMethod(Database::class, "userRename")] + //#[CoversMethod(Database::class, "userRename")] public function testRenameAMissingUser(): void { $this->assertException("doesNotExist", "User", "ExceptionConflict"); Arsse::$db->userRename("juan.doe@example.com", "john.doe@example.com"); } - #[CoversMethod(Database::class, "userRename")] + //#[CoversMethod(Database::class, "userRename")] public function testRenameAUserToADuplicateName(): void { $this->assertException("alreadyExists", "User", "ExceptionConflict"); Arsse::$db->userRename("john.doe@example.com", "jane.doe@example.com"); } - #[CoversMethod(Database::class, "userAdd")] + //#[CoversMethod(Database::class, "userAdd")] public function testAddFirstUser(): void { // first truncate the users table static::$drv->exec("DELETE FROM arsse_users"); diff --git a/tests/cases/Database/TestDatabase.php b/tests/cases/Database/TestDatabase.php index 05c0abc7..973143f3 100644 --- a/tests/cases/Database/TestDatabase.php +++ b/tests/cases/Database/TestDatabase.php @@ -10,11 +10,11 @@ namespace JKingWeb\Arsse\TestCase\Database; use JKingWeb\Arsse\Database; use JKingWeb\Arsse\Db\Transaction; -use PHPUnit\Framework\Attributes\CoversNothing; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\CoversMethod; -#[CoversNothing] +#[CoversClass(Database::class)] class TestDatabase extends \JKingWeb\Arsse\Test\AbstractTest { protected $db = null; @@ -39,7 +39,7 @@ class TestDatabase extends \JKingWeb\Arsse\Test\AbstractTest { return $m->invoke($this->db, ...$arg); } - #[CoversMethod(Database::class, "generateIn")] + //#[CoversMethod(Database::class, "generateIn")] #[DataProvider('provideInClauses')] public function testGenerateInClause(string $clause, array $values, array $inV, string $inT): void { $types = array_fill(0, sizeof($values), $inT); @@ -74,7 +74,7 @@ class TestDatabase extends \JKingWeb\Arsse\Test\AbstractTest { ]; } - #[CoversMethod(Database::class, "generateSearch")] + //#[CoversMethod(Database::class, "generateSearch")] #[DataProvider('provideSearchClauses')] public function testGenerateSearchClause(string $clause, array $values, array $inV, array $inC, bool $inAny): void { // this is not an exhaustive test; integration tests already cover the ins and outs of the functionality @@ -99,7 +99,7 @@ class TestDatabase extends \JKingWeb\Arsse\Test\AbstractTest { ]; } - #[CoversMethod(Database::class, "generateSet")] + //#[CoversMethod(Database::class, "generateSet")] public function testGenerateSetClause(): void { $in = [ 'ook' => true, @@ -121,12 +121,12 @@ class TestDatabase extends \JKingWeb\Arsse\Test\AbstractTest { $this->assertSame($exp, $this->invoke("generateSet", $in, $valid)); } - #[CoversMethod(Database::class, "begin")] + //#[CoversMethod(Database::class, "begin")] public function testBeginATransaction(): void { $this->assertInstanceOf(Transaction::class, $this->invoke("begin")); } - #[CoversMethod(Database::class, "caller")] + //#[CoversMethod(Database::class, "caller")] public function testReportCallingMethod(): void { $this->assertSame("caller", $this->invoke("caller")); } diff --git a/tests/cases/Db/MySQL/TestCreation.php b/tests/cases/Db/MySQL/TestCreation.php index 2118fa17..99fdb401 100644 --- a/tests/cases/Db/MySQL/TestCreation.php +++ b/tests/cases/Db/MySQL/TestCreation.php @@ -8,11 +8,12 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db\MySQL; use JKingWeb\Arsse\Db\MySQL\Driver as Driver; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; -/** - * @group slow - * @covers \JKingWeb\Arsse\Db\MySQL\Driver - * @covers \JKingWeb\Arsse\Db\MySQL\ExceptionBuilder */ +#[Group("slow")] +#[CoversClass(\JKingWeb\Arsse\Db\MySQL\Driver::class)] +#[CoversClass(\JKingWeb\Arsse\Db\MySQL\ExceptionBuilder::class)] class TestCreation extends \JKingWeb\Arsse\Test\AbstractTest { public function setUp(): void { if (!Driver::requirementsMet()) { diff --git a/tests/cases/Db/MySQL/TestDatabase.php b/tests/cases/Db/MySQL/TestDatabase.php index 1e9c8f79..7b48816b 100644 --- a/tests/cases/Db/MySQL/TestDatabase.php +++ b/tests/cases/Db/MySQL/TestDatabase.php @@ -8,12 +8,13 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db\MySQL; +use JKingWeb\Arsse\Database; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\Group; -use PHPUnit\Framework\Attributes\CoversNothing; #[Group('slow')] #[Group('coverageOptional')] -#[CoversNothing] +#[CoversClass(Database::class)] class TestDatabase extends \JKingWeb\Arsse\TestCase\Database\AbstractTest { use \JKingWeb\Arsse\Test\DatabaseDrivers\MySQL; diff --git a/tests/cases/Db/MySQL/TestDriver.php b/tests/cases/Db/MySQL/TestDriver.php index a737cd0c..53eeb323 100644 --- a/tests/cases/Db/MySQL/TestDriver.php +++ b/tests/cases/Db/MySQL/TestDriver.php @@ -7,11 +7,13 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db\MySQL; -/** - * @group slow - * @covers \JKingWeb\Arsse\Db\MySQL\Driver - * @covers \JKingWeb\Arsse\Db\MySQL\ExceptionBuilder - * @covers \JKingWeb\Arsse\Db\SQLState */ +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; + +#[Group("slow")] +#[CoversClass(\JKingWeb\Arsse\Db\MySQL\Driver::class)] +#[CoversClass(\JKingWeb\Arsse\Db\MySQL\ExceptionBuilder::class)] +#[CoversClass(\JKingWeb\Arsse\Db\SQLState::class)] class TestDriver extends \JKingWeb\Arsse\TestCase\Db\BaseDriver { use \JKingWeb\Arsse\Test\DatabaseDrivers\MySQL; diff --git a/tests/cases/Db/MySQL/TestResult.php b/tests/cases/Db/MySQL/TestResult.php index d0774165..4a6ccfe5 100644 --- a/tests/cases/Db/MySQL/TestResult.php +++ b/tests/cases/Db/MySQL/TestResult.php @@ -7,11 +7,13 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db\MySQL; -/** - * @group slow - * @covers \JKingWeb\Arsse\Db\MySQL\Result - * @covers \JKingWeb\Arsse\Db\MySQL\ExceptionBuilder - * @covers \JKingWeb\Arsse\Db\SQLState */ +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; + +#[Group("slow")] +#[CoversClass(\JKingWeb\Arsse\Db\MySQL\Result::class)] +#[CoversClass(\JKingWeb\Arsse\Db\MySQL\ExceptionBuilder::class)] +#[CoversClass(\JKingWeb\Arsse\Db\SQLState::class)] class TestResult extends \JKingWeb\Arsse\TestCase\Db\BaseResult { use \JKingWeb\Arsse\Test\DatabaseDrivers\MySQL; diff --git a/tests/cases/Db/MySQL/TestStatement.php b/tests/cases/Db/MySQL/TestStatement.php index e59dcb3a..a5d6d39d 100644 --- a/tests/cases/Db/MySQL/TestStatement.php +++ b/tests/cases/Db/MySQL/TestStatement.php @@ -7,11 +7,13 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db\MySQL; -/** - * @group slow - * @covers \JKingWeb\Arsse\Db\MySQL\Statement - * @covers \JKingWeb\Arsse\Db\MySQL\ExceptionBuilder - * @covers \JKingWeb\Arsse\Db\SQLState */ +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; + +#[Group("slow")] +#[CoversClass(\JKingWeb\Arsse\Db\MySQL\Statement::class)] +#[CoversClass(\JKingWeb\Arsse\Db\MySQL\ExceptionBuilder::class)] +#[CoversClass(\JKingWeb\Arsse\Db\SQLState::class)] class TestStatement extends \JKingWeb\Arsse\TestCase\Db\BaseStatement { use \JKingWeb\Arsse\Test\DatabaseDrivers\MySQL; diff --git a/tests/cases/Db/MySQL/TestUpdate.php b/tests/cases/Db/MySQL/TestUpdate.php index 8a9375ef..ec85acb4 100644 --- a/tests/cases/Db/MySQL/TestUpdate.php +++ b/tests/cases/Db/MySQL/TestUpdate.php @@ -7,11 +7,13 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db\MySQL; -/** - * @group slow - * @covers \JKingWeb\Arsse\Db\MySQL\Driver - * @covers \JKingWeb\Arsse\Db\MySQL\ExceptionBuilder - * @covers \JKingWeb\Arsse\Db\SQLState */ +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; + +#[Group("slow")] +#[CoversClass(\JKingWeb\Arsse\Db\MySQL\Driver::class)] +#[CoversClass(\JKingWeb\Arsse\Db\MySQL\ExceptionBuilder::class)] +#[CoversClass(\JKingWeb\Arsse\Db\SQLState::class)] class TestUpdate extends \JKingWeb\Arsse\TestCase\Db\BaseUpdate { use \JKingWeb\Arsse\Test\DatabaseDrivers\MySQL; diff --git a/tests/cases/Db/MySQLPDO/TestCreation.php b/tests/cases/Db/MySQLPDO/TestCreation.php index 07800d19..dad1d7fd 100644 --- a/tests/cases/Db/MySQLPDO/TestCreation.php +++ b/tests/cases/Db/MySQLPDO/TestCreation.php @@ -8,11 +8,12 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db\MySQLPDO; use JKingWeb\Arsse\Db\MySQL\PDODriver as Driver; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; -/** - * @group slow - * @covers \JKingWeb\Arsse\Db\MySQL\PDODriver - * @covers \JKingWeb\Arsse\Db\MySQL\ExceptionBuilder */ +#[Group("slow")] +#[CoversClass(\JKingWeb\Arsse\Db\MySQL\PDODriver::class)] +#[CoversClass(\JKingWeb\Arsse\Db\MySQL\ExceptionBuilder::class)] class TestCreation extends \JKingWeb\Arsse\Test\AbstractTest { public function setUp(): void { if (!Driver::requirementsMet()) { diff --git a/tests/cases/Db/MySQLPDO/TestDatabase.php b/tests/cases/Db/MySQLPDO/TestDatabase.php index f0497f74..2dba954a 100644 --- a/tests/cases/Db/MySQLPDO/TestDatabase.php +++ b/tests/cases/Db/MySQLPDO/TestDatabase.php @@ -8,13 +8,14 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db\MySQLPDO; +use JKingWeb\Arsse\Database; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\Group; -use PHPUnit\Framework\Attributes\CoversNothing; #[Group('slow')] #[Group('optional')] #[Group('coverageOptional')] -#[CoversNothing] +#[CoversClass(Database::class)] class TestDatabase extends \JKingWeb\Arsse\TestCase\Database\AbstractTest { use \JKingWeb\Arsse\Test\DatabaseDrivers\MySQLPDO; diff --git a/tests/cases/Db/MySQLPDO/TestDriver.php b/tests/cases/Db/MySQLPDO/TestDriver.php index 24fd873f..e723362c 100644 --- a/tests/cases/Db/MySQLPDO/TestDriver.php +++ b/tests/cases/Db/MySQLPDO/TestDriver.php @@ -7,13 +7,15 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db\MySQLPDO; -/** - * @group slow - * @covers \JKingWeb\Arsse\Db\MySQL\PDODriver - * @covers \JKingWeb\Arsse\Db\MySQL\ExceptionBuilder - * @covers \JKingWeb\Arsse\Db\PDODriver - * @covers \JKingWeb\Arsse\Db\PDOError - * @covers \JKingWeb\Arsse\Db\SQLState */ +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; + +#[Group("slow")] +#[CoversClass(\JKingWeb\Arsse\Db\MySQL\PDODriver::class)] +#[CoversClass(\JKingWeb\Arsse\Db\MySQL\ExceptionBuilder::class)] +#[CoversClass(\JKingWeb\Arsse\Db\PDODriver::class)] +#[CoversClass(\JKingWeb\Arsse\Db\PDOError::class)] +#[CoversClass(\JKingWeb\Arsse\Db\SQLState::class)] class TestDriver extends \JKingWeb\Arsse\TestCase\Db\BaseDriver { use \JKingWeb\Arsse\Test\DatabaseDrivers\MySQLPDO; diff --git a/tests/cases/Db/MySQLPDO/TestResult.php b/tests/cases/Db/MySQLPDO/TestResult.php index 2c2efe02..7b1162f4 100644 --- a/tests/cases/Db/MySQLPDO/TestResult.php +++ b/tests/cases/Db/MySQLPDO/TestResult.php @@ -7,12 +7,14 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db\MySQLPDO; -/** - * @group slow - * @covers \JKingWeb\Arsse\Db\PDOResult - * @covers \JKingWeb\Arsse\Db\MySQL\ExceptionBuilder - * @covers \JKingWeb\Arsse\Db\PDOError - * @covers \JKingWeb\Arsse\Db\SQLState */ +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; + +#[Group("slow")] +#[CoversClass(\JKingWeb\Arsse\Db\PDOResult::class)] +#[CoversClass(\JKingWeb\Arsse\Db\MySQL\ExceptionBuilder::class)] +#[CoversClass(\JKingWeb\Arsse\Db\PDOError::class)] +#[CoversClass(\JKingWeb\Arsse\Db\SQLState::class)] class TestResult extends \JKingWeb\Arsse\TestCase\Db\BaseResult { use \JKingWeb\Arsse\Test\DatabaseDrivers\MySQLPDO; diff --git a/tests/cases/Db/MySQLPDO/TestStatement.php b/tests/cases/Db/MySQLPDO/TestStatement.php index 6f5f8116..2c82dd15 100644 --- a/tests/cases/Db/MySQLPDO/TestStatement.php +++ b/tests/cases/Db/MySQLPDO/TestStatement.php @@ -7,12 +7,14 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db\MySQLPDO; -/** - * @group slow - * @covers \JKingWeb\Arsse\Db\MySQL\PDOStatement - * @covers \JKingWeb\Arsse\Db\MySQL\ExceptionBuilder - * @covers \JKingWeb\Arsse\Db\PDOError - * @covers \JKingWeb\Arsse\Db\SQLState */ +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; + +#[Group("slow")] +#[CoversClass(\JKingWeb\Arsse\Db\MySQL\PDOStatement::class)] +#[CoversClass(\JKingWeb\Arsse\Db\MySQL\ExceptionBuilder::class)] +#[CoversClass(\JKingWeb\Arsse\Db\PDOError::class)] +#[CoversClass(\JKingWeb\Arsse\Db\SQLState::class)] class TestStatement extends \JKingWeb\Arsse\TestCase\Db\BaseStatement { use \JKingWeb\Arsse\Test\DatabaseDrivers\MySQLPDO; diff --git a/tests/cases/Db/MySQLPDO/TestUpdate.php b/tests/cases/Db/MySQLPDO/TestUpdate.php index 38a80f27..c31a089c 100644 --- a/tests/cases/Db/MySQLPDO/TestUpdate.php +++ b/tests/cases/Db/MySQLPDO/TestUpdate.php @@ -7,13 +7,15 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db\MySQLPDO; -/** - * @group slow - * @covers \JKingWeb\Arsse\Db\MySQL\PDODriver - * @covers \JKingWeb\Arsse\Db\MySQL\ExceptionBuilder - * @covers \JKingWeb\Arsse\Db\PDODriver - * @covers \JKingWeb\Arsse\Db\PDOError - * @covers \JKingWeb\Arsse\Db\SQLState */ +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; + +#[Group("slow")] +#[CoversClass(\JKingWeb\Arsse\Db\MySQL\PDODriver::class)] +#[CoversClass(\JKingWeb\Arsse\Db\MySQL\ExceptionBuilder::class)] +#[CoversClass(\JKingWeb\Arsse\Db\PDODriver::class)] +#[CoversClass(\JKingWeb\Arsse\Db\PDOError::class)] +#[CoversClass(\JKingWeb\Arsse\Db\SQLState::class)] class TestUpdate extends \JKingWeb\Arsse\TestCase\Db\BaseUpdate { use \JKingWeb\Arsse\Test\DatabaseDrivers\MySQLPDO; diff --git a/tests/cases/Db/PostgreSQL/TestCreation.php b/tests/cases/Db/PostgreSQL/TestCreation.php index be40911e..33803088 100644 --- a/tests/cases/Db/PostgreSQL/TestCreation.php +++ b/tests/cases/Db/PostgreSQL/TestCreation.php @@ -9,10 +9,12 @@ namespace JKingWeb\Arsse\TestCase\Db\PostgreSQL; use JKingWeb\Arsse\Arsse; use JKingWeb\Arsse\Db\PostgreSQL\Driver; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Group; -/** - * @group slow - * @covers \JKingWeb\Arsse\Db\PostgreSQL\Driver */ +#[Group("slow")] +#[CoversClass(\JKingWeb\Arsse\Db\PostgreSQL\Driver::class)] class TestCreation extends \JKingWeb\Arsse\Test\AbstractTest { public function setUp(): void { if (!Driver::requirementsMet()) { @@ -20,7 +22,7 @@ class TestCreation extends \JKingWeb\Arsse\Test\AbstractTest { } } - /** @dataProvider provideConnectionStrings */ + #[DataProvider("provideConnectionStrings")] public function testGenerateConnectionString(bool $pdo, string $user, string $pass, string $db, string $host, int $port, string $service, string $exp): void { self::setConf(); $timeout = (string) ceil(Arsse::$conf->dbTimeoutConnect ?? 0); diff --git a/tests/cases/Db/PostgreSQL/TestDatabase.php b/tests/cases/Db/PostgreSQL/TestDatabase.php index 7a23ed5d..ad25eab5 100644 --- a/tests/cases/Db/PostgreSQL/TestDatabase.php +++ b/tests/cases/Db/PostgreSQL/TestDatabase.php @@ -8,12 +8,13 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db\PostgreSQL; +use JKingWeb\Arsse\Database; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\Group; -use PHPUnit\Framework\Attributes\CoversNothing; #[Group('slow')] #[Group('coverageOptional')] -#[CoversNothing] +#[CoversClass(Database::class)] class TestDatabase extends \JKingWeb\Arsse\TestCase\Database\AbstractTest { use \JKingWeb\Arsse\Test\DatabaseDrivers\PostgreSQL; diff --git a/tests/cases/Db/PostgreSQL/TestDriver.php b/tests/cases/Db/PostgreSQL/TestDriver.php index 5ab09a11..4a4db62c 100644 --- a/tests/cases/Db/PostgreSQL/TestDriver.php +++ b/tests/cases/Db/PostgreSQL/TestDriver.php @@ -7,11 +7,13 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db\PostgreSQL; -/** - * @group slow - * @covers \JKingWeb\Arsse\Db\PostgreSQL\Driver - * @covers \JKingWeb\Arsse\Db\PostgreSQL\Dispatch - * @covers \JKingWeb\Arsse\Db\SQLState */ +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; + +#[Group("slow")] +#[CoversClass(\JKingWeb\Arsse\Db\PostgreSQL\Driver::class)] +#[CoversClass(\JKingWeb\Arsse\Db\PostgreSQL\Dispatch::class)] +#[CoversClass(\JKingWeb\Arsse\Db\SQLState::class)] class TestDriver extends \JKingWeb\Arsse\TestCase\Db\BaseDriver { use \JKingWeb\Arsse\Test\DatabaseDrivers\PostgreSQL; diff --git a/tests/cases/Db/PostgreSQL/TestResult.php b/tests/cases/Db/PostgreSQL/TestResult.php index af826240..37069e04 100644 --- a/tests/cases/Db/PostgreSQL/TestResult.php +++ b/tests/cases/Db/PostgreSQL/TestResult.php @@ -7,10 +7,11 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db\PostgreSQL; -/** - * @group slow - * @covers \JKingWeb\Arsse\Db\PostgreSQL\Result - */ +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; + +#[Group("slow")] +#[CoversClass(\JKingWeb\Arsse\Db\PostgreSQL\Result::class)] class TestResult extends \JKingWeb\Arsse\TestCase\Db\BaseResult { use \JKingWeb\Arsse\Test\DatabaseDrivers\PostgreSQL; diff --git a/tests/cases/Db/PostgreSQL/TestStatement.php b/tests/cases/Db/PostgreSQL/TestStatement.php index 5230f8cd..076a4250 100644 --- a/tests/cases/Db/PostgreSQL/TestStatement.php +++ b/tests/cases/Db/PostgreSQL/TestStatement.php @@ -7,11 +7,13 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db\PostgreSQL; -/** - * @group slow - * @covers \JKingWeb\Arsse\Db\PostgreSQL\Statement - * @covers \JKingWeb\Arsse\Db\PostgreSQL\Dispatch - * @covers \JKingWeb\Arsse\Db\SQLState */ +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; + +#[Group("slow")] +#[CoversClass(\JKingWeb\Arsse\Db\PostgreSQL\Statement::class)] +#[CoversClass(\JKingWeb\Arsse\Db\PostgreSQL\Dispatch::class)] +#[CoversClass(\JKingWeb\Arsse\Db\SQLState::class)] class TestStatement extends \JKingWeb\Arsse\TestCase\Db\BaseStatement { use \JKingWeb\Arsse\Test\DatabaseDrivers\PostgreSQL; diff --git a/tests/cases/Db/PostgreSQL/TestUpdate.php b/tests/cases/Db/PostgreSQL/TestUpdate.php index 5f7f06ce..03034c6b 100644 --- a/tests/cases/Db/PostgreSQL/TestUpdate.php +++ b/tests/cases/Db/PostgreSQL/TestUpdate.php @@ -7,10 +7,12 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db\PostgreSQL; -/** - * @group slow - * @covers \JKingWeb\Arsse\Db\PostgreSQL\Driver - * @covers \JKingWeb\Arsse\Db\SQLState */ +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; + +#[Group("slow")] +#[CoversClass(\JKingWeb\Arsse\Db\PostgreSQL\Driver::class)] +#[CoversClass(\JKingWeb\Arsse\Db\SQLState::class)] class TestUpdate extends \JKingWeb\Arsse\TestCase\Db\BaseUpdate { use \JKingWeb\Arsse\Test\DatabaseDrivers\PostgreSQL; diff --git a/tests/cases/Db/PostgreSQLPDO/TestCreation.php b/tests/cases/Db/PostgreSQLPDO/TestCreation.php index 915850e4..b7ab8608 100644 --- a/tests/cases/Db/PostgreSQLPDO/TestCreation.php +++ b/tests/cases/Db/PostgreSQLPDO/TestCreation.php @@ -9,10 +9,12 @@ namespace JKingWeb\Arsse\TestCase\Db\PostgreSQLPDO; use JKingWeb\Arsse\Arsse; use JKingWeb\Arsse\Db\PostgreSQL\PDODriver as Driver; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Group; -/** - * @group slow - * @covers \JKingWeb\Arsse\Db\PostgreSQL\PDODriver */ +#[Group("slow")] +#[CoversClass(\JKingWeb\Arsse\Db\PostgreSQL\PDODriver::class)] class TestCreation extends \JKingWeb\Arsse\Test\AbstractTest { public function setUp(): void { if (!Driver::requirementsMet()) { @@ -20,7 +22,7 @@ class TestCreation extends \JKingWeb\Arsse\Test\AbstractTest { } } - /** @dataProvider provideConnectionStrings */ + #[DataProvider("provideConnectionStrings")] public function testGenerateConnectionString(bool $pdo, string $user, string $pass, string $db, string $host, int $port, string $service, string $exp): void { self::setConf(); $timeout = (string) ceil(Arsse::$conf->dbTimeoutConnect ?? 0); diff --git a/tests/cases/Db/PostgreSQLPDO/TestDatabase.php b/tests/cases/Db/PostgreSQLPDO/TestDatabase.php index 750d34ec..b63ff79e 100644 --- a/tests/cases/Db/PostgreSQLPDO/TestDatabase.php +++ b/tests/cases/Db/PostgreSQLPDO/TestDatabase.php @@ -8,13 +8,14 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db\PostgreSQLPDO; +use JKingWeb\Arsse\Database; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\Group; -use PHPUnit\Framework\Attributes\CoversNothing; #[Group('slow')] #[Group('optional')] #[Group('coverageOptional')] -#[CoversNothing] +#[CoversClass(Database::class)] class TestDatabase extends \JKingWeb\Arsse\TestCase\Database\AbstractTest { use \JKingWeb\Arsse\Test\DatabaseDrivers\PostgreSQLPDO; diff --git a/tests/cases/Db/PostgreSQLPDO/TestDriver.php b/tests/cases/Db/PostgreSQLPDO/TestDriver.php index 83c26c69..7aabbf4f 100644 --- a/tests/cases/Db/PostgreSQLPDO/TestDriver.php +++ b/tests/cases/Db/PostgreSQLPDO/TestDriver.php @@ -7,12 +7,14 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db\PostgreSQLPDO; -/** - * @group slow - * @covers \JKingWeb\Arsse\Db\PostgreSQL\PDODriver - * @covers \JKingWeb\Arsse\Db\PDODriver - * @covers \JKingWeb\Arsse\Db\PDOError - * @covers \JKingWeb\Arsse\Db\SQLState */ +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; + +#[Group("slow")] +#[CoversClass(\JKingWeb\Arsse\Db\PostgreSQL\PDODriver::class)] +#[CoversClass(\JKingWeb\Arsse\Db\PDODriver::class)] +#[CoversClass(\JKingWeb\Arsse\Db\PDOError::class)] +#[CoversClass(\JKingWeb\Arsse\Db\SQLState::class)] class TestDriver extends \JKingWeb\Arsse\TestCase\Db\BaseDriver { use \JKingWeb\Arsse\Test\DatabaseDrivers\PostgreSQLPDO; diff --git a/tests/cases/Db/PostgreSQLPDO/TestResult.php b/tests/cases/Db/PostgreSQLPDO/TestResult.php index efdadd3c..0ac7866a 100644 --- a/tests/cases/Db/PostgreSQLPDO/TestResult.php +++ b/tests/cases/Db/PostgreSQLPDO/TestResult.php @@ -7,10 +7,11 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db\PostgreSQLPDO; -/** - * @group slow - * @covers \JKingWeb\Arsse\Db\PostgreSQL\PDOResult - */ +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; + +#[Group("slow")] +#[CoversClass(\JKingWeb\Arsse\Db\PostgreSQL\PDOResult::class)] class TestResult extends \JKingWeb\Arsse\TestCase\Db\BaseResult { use \JKingWeb\Arsse\Test\DatabaseDrivers\PostgreSQLPDO; diff --git a/tests/cases/Db/PostgreSQLPDO/TestStatement.php b/tests/cases/Db/PostgreSQLPDO/TestStatement.php index 0789eeb2..9f4642db 100644 --- a/tests/cases/Db/PostgreSQLPDO/TestStatement.php +++ b/tests/cases/Db/PostgreSQLPDO/TestStatement.php @@ -7,11 +7,13 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db\PostgreSQLPDO; -/** - * @group slow - * @covers \JKingWeb\Arsse\Db\PostgreSQL\PDOStatement - * @covers \JKingWeb\Arsse\Db\PDOError - * @covers \JKingWeb\Arsse\Db\SQLState */ +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; + +#[Group("slow")] +#[CoversClass(\JKingWeb\Arsse\Db\PostgreSQL\PDOStatement::class)] +#[CoversClass(\JKingWeb\Arsse\Db\PDOError::class)] +#[CoversClass(\JKingWeb\Arsse\Db\SQLState::class)] class TestStatement extends \JKingWeb\Arsse\TestCase\Db\BaseStatement { use \JKingWeb\Arsse\Test\DatabaseDrivers\PostgreSQLPDO; diff --git a/tests/cases/Db/PostgreSQLPDO/TestUpdate.php b/tests/cases/Db/PostgreSQLPDO/TestUpdate.php index a9f88ecc..192ec0d5 100644 --- a/tests/cases/Db/PostgreSQLPDO/TestUpdate.php +++ b/tests/cases/Db/PostgreSQLPDO/TestUpdate.php @@ -7,12 +7,14 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db\PostgreSQLPDO; -/** - * @group slow - * @covers \JKingWeb\Arsse\Db\PostgreSQL\PDODriver - * @covers \JKingWeb\Arsse\Db\PDODriver - * @covers \JKingWeb\Arsse\Db\PDOError - * @covers \JKingWeb\Arsse\Db\SQLState */ +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; + +#[Group("slow")] +#[CoversClass(\JKingWeb\Arsse\Db\PostgreSQL\PDODriver::class)] +#[CoversClass(\JKingWeb\Arsse\Db\PDODriver::class)] +#[CoversClass(\JKingWeb\Arsse\Db\PDOError::class)] +#[CoversClass(\JKingWeb\Arsse\Db\SQLState::class)] class TestUpdate extends \JKingWeb\Arsse\TestCase\Db\BaseUpdate { use \JKingWeb\Arsse\Test\DatabaseDrivers\PostgreSQLPDO; diff --git a/tests/cases/Db/SQLite3/TestCreation.php b/tests/cases/Db/SQLite3/TestCreation.php index 4622734d..4d705a95 100644 --- a/tests/cases/Db/SQLite3/TestCreation.php +++ b/tests/cases/Db/SQLite3/TestCreation.php @@ -10,10 +10,10 @@ namespace JKingWeb\Arsse\TestCase\Db\SQLite3; use JKingWeb\Arsse\Arsse; use JKingWeb\Arsse\Db\SQLite3\Driver; use org\bovigo\vfs\vfsStream; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \JKingWeb\Arsse\Db\SQLite3\Driver - * @covers \JKingWeb\Arsse\Db\SQLite3\ExceptionBuilder */ +#[CoversClass(\JKingWeb\Arsse\Db\SQLite3\Driver::class)] +#[CoversClass(\JKingWeb\Arsse\Db\SQLite3\ExceptionBuilder::class)] class TestCreation extends \JKingWeb\Arsse\Test\AbstractTest { protected $data; protected $drv; diff --git a/tests/cases/Db/SQLite3/TestDatabase.php b/tests/cases/Db/SQLite3/TestDatabase.php index bde5c2c3..1531857c 100644 --- a/tests/cases/Db/SQLite3/TestDatabase.php +++ b/tests/cases/Db/SQLite3/TestDatabase.php @@ -8,11 +8,12 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db\SQLite3; +use JKingWeb\Arsse\Database; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\Group; -use PHPUnit\Framework\Attributes\CoversNothing; #[Group('optional')] -#[CoversNothing] +#[CoversClass(Database::class)] class TestDatabase extends \JKingWeb\Arsse\TestCase\Database\AbstractTest { use \JKingWeb\Arsse\Test\DatabaseDrivers\SQLite3; diff --git a/tests/cases/Db/SQLite3/TestDriver.php b/tests/cases/Db/SQLite3/TestDriver.php index 4ac44259..b7419094 100644 --- a/tests/cases/Db/SQLite3/TestDriver.php +++ b/tests/cases/Db/SQLite3/TestDriver.php @@ -7,9 +7,10 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db\SQLite3; -/** - * @covers \JKingWeb\Arsse\Db\SQLite3\Driver - * @covers \JKingWeb\Arsse\Db\SQLite3\ExceptionBuilder */ +use PHPUnit\Framework\Attributes\CoversClass; + +#[CoversClass(\JKingWeb\Arsse\Db\SQLite3\Driver::class)] +#[CoversClass(\JKingWeb\Arsse\Db\SQLite3\ExceptionBuilder::class)] class TestDriver extends \JKingWeb\Arsse\TestCase\Db\BaseDriver { use \JKingWeb\Arsse\Test\DatabaseDrivers\SQLite3; diff --git a/tests/cases/Db/SQLite3/TestResult.php b/tests/cases/Db/SQLite3/TestResult.php index f5d1e019..a60789c8 100644 --- a/tests/cases/Db/SQLite3/TestResult.php +++ b/tests/cases/Db/SQLite3/TestResult.php @@ -7,9 +7,9 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db\SQLite3; -/** - * @covers \JKingWeb\Arsse\Db\SQLite3\Result - */ +use PHPUnit\Framework\Attributes\CoversClass; + +#[CoversClass(\JKingWeb\Arsse\Db\SQLite3\Result::class)] class TestResult extends \JKingWeb\Arsse\TestCase\Db\BaseResult { use \JKingWeb\Arsse\Test\DatabaseDrivers\SQLite3; diff --git a/tests/cases/Db/SQLite3/TestStatement.php b/tests/cases/Db/SQLite3/TestStatement.php index b853e3ff..1e78098f 100644 --- a/tests/cases/Db/SQLite3/TestStatement.php +++ b/tests/cases/Db/SQLite3/TestStatement.php @@ -7,9 +7,10 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db\SQLite3; -/** - * @covers \JKingWeb\Arsse\Db\SQLite3\Statement - * @covers \JKingWeb\Arsse\Db\SQLite3\ExceptionBuilder */ +use PHPUnit\Framework\Attributes\CoversClass; + +#[CoversClass(\JKingWeb\Arsse\Db\SQLite3\Statement::class)] +#[CoversClass(\JKingWeb\Arsse\Db\SQLite3\ExceptionBuilder::class)] class TestStatement extends \JKingWeb\Arsse\TestCase\Db\BaseStatement { use \JKingWeb\Arsse\Test\DatabaseDrivers\SQLite3; diff --git a/tests/cases/Db/SQLite3/TestUpdate.php b/tests/cases/Db/SQLite3/TestUpdate.php index 840778d3..b6733efc 100644 --- a/tests/cases/Db/SQLite3/TestUpdate.php +++ b/tests/cases/Db/SQLite3/TestUpdate.php @@ -7,9 +7,10 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db\SQLite3; -/** - * @covers \JKingWeb\Arsse\Db\SQLite3\Driver - * @covers \JKingWeb\Arsse\Db\SQLite3\ExceptionBuilder */ +use PHPUnit\Framework\Attributes\CoversClass; + +#[CoversClass(\JKingWeb\Arsse\Db\SQLite3\Driver::class)] +#[CoversClass(\JKingWeb\Arsse\Db\SQLite3\ExceptionBuilder::class)] class TestUpdate extends \JKingWeb\Arsse\TestCase\Db\BaseUpdate { use \JKingWeb\Arsse\Test\DatabaseDrivers\SQLite3; diff --git a/tests/cases/Db/SQLite3PDO/TestCreation.php b/tests/cases/Db/SQLite3PDO/TestCreation.php index ff93797e..393f269b 100644 --- a/tests/cases/Db/SQLite3PDO/TestCreation.php +++ b/tests/cases/Db/SQLite3PDO/TestCreation.php @@ -10,12 +10,12 @@ namespace JKingWeb\Arsse\TestCase\Db\SQLite3PDO; use JKingWeb\Arsse\Arsse; use JKingWeb\Arsse\Db\SQLite3\PDODriver as Driver; use org\bovigo\vfs\vfsStream; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \JKingWeb\Arsse\Db\SQLite3\PDODriver - * @covers \JKingWeb\Arsse\Db\PDODriver - * @covers \JKingWeb\Arsse\Db\PDOError - * @covers \JKingWeb\Arsse\Db\SQLState */ +#[CoversClass(\JKingWeb\Arsse\Db\SQLite3\PDODriver::class)] +#[CoversClass(\JKingWeb\Arsse\Db\PDODriver::class)] +#[CoversClass(\JKingWeb\Arsse\Db\PDOError::class)] +#[CoversClass(\JKingWeb\Arsse\Db\SQLState::class)] class TestCreation extends \JKingWeb\Arsse\Test\AbstractTest { protected $data; protected $drv; diff --git a/tests/cases/Db/SQLite3PDO/TestDatabase.php b/tests/cases/Db/SQLite3PDO/TestDatabase.php index 61a530a8..5d60a3a8 100644 --- a/tests/cases/Db/SQLite3PDO/TestDatabase.php +++ b/tests/cases/Db/SQLite3PDO/TestDatabase.php @@ -8,9 +8,10 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db\SQLite3PDO; -use PHPUnit\Framework\Attributes\CoversNothing; +use JKingWeb\Arsse\Database; +use PHPUnit\Framework\Attributes\CoversClass; -#[CoversNothing] +#[CoversClass(Database::class)] class TestDatabase extends \JKingWeb\Arsse\TestCase\Database\AbstractTest { use \JKingWeb\Arsse\Test\DatabaseDrivers\SQLite3PDO; diff --git a/tests/cases/Db/SQLite3PDO/TestDriver.php b/tests/cases/Db/SQLite3PDO/TestDriver.php index 73cf3c70..f053a3d9 100644 --- a/tests/cases/Db/SQLite3PDO/TestDriver.php +++ b/tests/cases/Db/SQLite3PDO/TestDriver.php @@ -7,11 +7,12 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db\SQLite3PDO; -/** - * @covers \JKingWeb\Arsse\Db\SQLite3\PDODriver - * @covers \JKingWeb\Arsse\Db\PDODriver - * @covers \JKingWeb\Arsse\Db\PDOError - * @covers \JKingWeb\Arsse\Db\SQLState */ +use PHPUnit\Framework\Attributes\CoversClass; + +#[CoversClass(\JKingWeb\Arsse\Db\SQLite3\PDODriver::class)] +#[CoversClass(\JKingWeb\Arsse\Db\PDODriver::class)] +#[CoversClass(\JKingWeb\Arsse\Db\PDOError::class)] +#[CoversClass(\JKingWeb\Arsse\Db\SQLState::class)] class TestDriver extends \JKingWeb\Arsse\TestCase\Db\BaseDriver { use \JKingWeb\Arsse\Test\DatabaseDrivers\SQLite3PDO; diff --git a/tests/cases/Db/SQLite3PDO/TestResult.php b/tests/cases/Db/SQLite3PDO/TestResult.php index 13a030ae..d6be0eef 100644 --- a/tests/cases/Db/SQLite3PDO/TestResult.php +++ b/tests/cases/Db/SQLite3PDO/TestResult.php @@ -7,9 +7,9 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db\SQLite3PDO; -/** - * @covers \JKingWeb\Arsse\Db\PDOResult - */ +use PHPUnit\Framework\Attributes\CoversClass; + +#[CoversClass(\JKingWeb\Arsse\Db\PDOResult::class)] class TestResult extends \JKingWeb\Arsse\TestCase\Db\BaseResult { use \JKingWeb\Arsse\Test\DatabaseDrivers\SQLite3PDO; diff --git a/tests/cases/Db/SQLite3PDO/TestStatement.php b/tests/cases/Db/SQLite3PDO/TestStatement.php index 4ec9ad81..d2ad8ce2 100644 --- a/tests/cases/Db/SQLite3PDO/TestStatement.php +++ b/tests/cases/Db/SQLite3PDO/TestStatement.php @@ -7,10 +7,11 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db\SQLite3PDO; -/** - * @covers \JKingWeb\Arsse\Db\PDOStatement - * @covers \JKingWeb\Arsse\Db\PDOError - * @covers \JKingWeb\Arsse\Db\SQLState */ +use PHPUnit\Framework\Attributes\CoversClass; + +#[CoversClass(\JKingWeb\Arsse\Db\PDOStatement::class)] +#[CoversClass(\JKingWeb\Arsse\Db\PDOError::class)] +#[CoversClass(\JKingWeb\Arsse\Db\SQLState::class)] class TestStatement extends \JKingWeb\Arsse\TestCase\Db\BaseStatement { use \JKingWeb\Arsse\Test\DatabaseDrivers\SQLite3PDO; diff --git a/tests/cases/Db/SQLite3PDO/TestUpdate.php b/tests/cases/Db/SQLite3PDO/TestUpdate.php index 2eb8ef42..9cb16710 100644 --- a/tests/cases/Db/SQLite3PDO/TestUpdate.php +++ b/tests/cases/Db/SQLite3PDO/TestUpdate.php @@ -7,11 +7,12 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db\SQLite3PDO; -/** - * @covers \JKingWeb\Arsse\Db\SQLite3\PDODriver - * @covers \JKingWeb\Arsse\Db\PDODriver - * @covers \JKingWeb\Arsse\Db\PDOError - * @covers \JKingWeb\Arsse\Db\SQLState */ +use PHPUnit\Framework\Attributes\CoversClass; + +#[CoversClass(\JKingWeb\Arsse\Db\SQLite3\PDODriver::class)] +#[CoversClass(\JKingWeb\Arsse\Db\PDODriver::class)] +#[CoversClass(\JKingWeb\Arsse\Db\PDOError::class)] +#[CoversClass(\JKingWeb\Arsse\Db\SQLState::class)] class TestUpdate extends \JKingWeb\Arsse\TestCase\Db\BaseUpdate { use \JKingWeb\Arsse\Test\DatabaseDrivers\SQLite3PDO; diff --git a/tests/cases/Db/TestResultAggregate.php b/tests/cases/Db/TestResultAggregate.php index 75ff0032..2f3b8007 100644 --- a/tests/cases/Db/TestResultAggregate.php +++ b/tests/cases/Db/TestResultAggregate.php @@ -9,8 +9,9 @@ namespace JKingWeb\Arsse\TestCase\Db; use JKingWeb\Arsse\Db\ResultAggregate; use JKingWeb\Arsse\Test\Result; +use PHPUnit\Framework\Attributes\CoversClass; -/** @covers \JKingWeb\Arsse\Db\ResultAggregate */ +#[CoversClass(\JKingWeb\Arsse\Db\ResultAggregate::class)] class TestResultAggregate extends \JKingWeb\Arsse\Test\AbstractTest { public function testGetChangeCountAndLastInsertId(): void { $in = [ diff --git a/tests/cases/Db/TestResultEmpty.php b/tests/cases/Db/TestResultEmpty.php index 64fd98c4..b53c5bfe 100644 --- a/tests/cases/Db/TestResultEmpty.php +++ b/tests/cases/Db/TestResultEmpty.php @@ -8,8 +8,9 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\Db; use JKingWeb\Arsse\Db\ResultEmpty; +use PHPUnit\Framework\Attributes\CoversClass; -/** @covers \JKingWeb\Arsse\Db\ResultEmpty */ +#[CoversClass(\JKingWeb\Arsse\Db\ResultEmpty::class)] class TestResultEmpty extends \JKingWeb\Arsse\Test\AbstractTest { public function testGetChangeCountAndLastInsertId(): void { $r = new ResultEmpty; diff --git a/tests/cases/Exception/TestException.php b/tests/cases/Exception/TestException.php index f26a8a6c..77aa8a15 100644 --- a/tests/cases/Exception/TestException.php +++ b/tests/cases/Exception/TestException.php @@ -16,6 +16,7 @@ use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\Depends; #[CoversClass(\JKingWeb\Arsse\AbstractException::class)] +#[CoversClass(\JKingWeb\Arsse\ExceptionFatal::class)] class TestException extends \JKingWeb\Arsse\Test\AbstractTest { public function setUp(): void { self::clearData(false); @@ -59,7 +60,6 @@ class TestException extends \JKingWeb\Arsse\Test\AbstractTest { throw new LangException("testThisExceptionMessageDoesNotExist"); } - /** @covers \JKingWeb\Arsse\ExceptionFatal */ public function testFatalException(): void { $this->expectException('JKingWeb\Arsse\ExceptionFatal'); throw new \JKingWeb\Arsse\ExceptionFatal(""); diff --git a/tests/cases/Feed/TestFetching.php b/tests/cases/Feed/TestFetching.php index e7d5569e..a04a0c79 100644 --- a/tests/cases/Feed/TestFetching.php +++ b/tests/cases/Feed/TestFetching.php @@ -13,8 +13,8 @@ use JKingWeb\Arsse\Feed; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\Group; -#[CoversClass(\JKingWeb\Arsse\Feed::class)] #[Group('slow')] +#[CoversClass(\JKingWeb\Arsse\Feed::class)] class TestFetching extends \JKingWeb\Arsse\Test\AbstractTest { protected static $host = "http://localhost:8000/"; protected $base = ""; diff --git a/tests/cases/ImportExport/TestOPML.php b/tests/cases/ImportExport/TestOPML.php index 76559a99..21cb51ba 100644 --- a/tests/cases/ImportExport/TestOPML.php +++ b/tests/cases/ImportExport/TestOPML.php @@ -12,8 +12,10 @@ use JKingWeb\Arsse\Database; use JKingWeb\Arsse\Test\Result; use JKingWeb\Arsse\ImportExport\OPML; use JKingWeb\Arsse\ImportExport\Exception; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; -/** @covers \JKingWeb\Arsse\ImportExport\OPML */ +#[CoversClass(\JKingWeb\Arsse\ImportExport\OPML::class)] class TestOPML extends \JKingWeb\Arsse\Test\AbstractTest { protected $folders = [ ['id' => 5, 'parent' => 3, 'children' => 0, 'feeds' => 1, 'name' => "Local"], @@ -104,7 +106,7 @@ OPML_EXPORT_SERIALIZATION; (new OPML)->export("john.doe@example.com"); } - /** @dataProvider provideParserData */ + #[DataProvider("provideParserData")] public function testParseOpmlForImport(string $file, bool $flat, $exp): void { $data = file_get_contents(\JKingWeb\Arsse\DOCROOT."Import/OPML/$file"); // make the ImportExport::parse() method visible diff --git a/tests/cases/Misc/TestContext.php b/tests/cases/Misc/TestContext.php index 6ac3763f..d7ba1300 100644 --- a/tests/cases/Misc/TestContext.php +++ b/tests/cases/Misc/TestContext.php @@ -12,17 +12,17 @@ use JKingWeb\Arsse\Context\ExclusionContext; use JKingWeb\Arsse\Context\UnionContext; use JKingWeb\Arsse\Misc\Date; use JKingWeb\Arsse\Misc\ValueInfo; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; -/** - * @covers \JKingWeb\Arsse\Context\Context - * @covers \JKingWeb\Arsse\Context\ExclusionContext - * @covers \JKingWeb\Arsse\Context\UnionContext - */ +#[CoversClass(\JKingWeb\Arsse\Context\Context::class)] +#[CoversClass(\JKingWeb\Arsse\Context\ExclusionContext::class)] +#[CoversClass(\JKingWeb\Arsse\Context\UnionContext::class)] class TestContext extends \JKingWeb\Arsse\Test\AbstractTest { protected $ranges = ['modifiedRange', 'markedRange', 'articleRange', 'editionRange']; protected $times = ['modifiedRange', 'markedRange']; - /** @dataProvider provideContextOptions */ + #[DataProvider("provideContextOptions")] public function testSetContextOptions(string $method, array $input, $output, bool $not): void { $parent = new Context; $c = ($not) ? $parent->not : $parent; diff --git a/tests/cases/Misc/TestValueInfo.php b/tests/cases/Misc/TestValueInfo.php index 8ca9d66d..e0e0b8d3 100644 --- a/tests/cases/Misc/TestValueInfo.php +++ b/tests/cases/Misc/TestValueInfo.php @@ -11,6 +11,7 @@ namespace JKingWeb\Arsse\TestCase\Misc; use JKingWeb\Arsse\Misc\ValueInfo as I; use JKingWeb\Arsse\Test\Misc\StrClass; use JKingWeb\Arsse\Test\Result; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; #[CoversClass(\JKingWeb\Arsse\Misc\ValueInfo::class)] diff --git a/tests/cases/REST/Fever/PDO/TestAPI.php b/tests/cases/REST/Fever/PDO/TestAPI.php index 8042f358..f16a6438 100644 --- a/tests/cases/REST/Fever/PDO/TestAPI.php +++ b/tests/cases/REST/Fever/PDO/TestAPI.php @@ -7,8 +7,11 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\REST\Fever\PDO; -/** @covers \JKingWeb\Arsse\REST\Fever\API - * @group optional */ +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; + +#[Group("optional")] +#[CoversClass(\JKingWeb\Arsse\REST\Fever\API::class)] class TestAPI extends \JKingWeb\Arsse\TestCase\REST\Fever\TestAPI { use \JKingWeb\Arsse\Test\PDOTest; } diff --git a/tests/cases/REST/Fever/TestAPI.php b/tests/cases/REST/Fever/TestAPI.php index da71c1c5..119ec11a 100644 --- a/tests/cases/REST/Fever/TestAPI.php +++ b/tests/cases/REST/Fever/TestAPI.php @@ -16,9 +16,11 @@ use JKingWeb\Arsse\Context\Context; use JKingWeb\Arsse\Db\ExceptionInput; use JKingWeb\Arsse\Db\Transaction; use JKingWeb\Arsse\REST\Fever\API; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use Psr\Http\Message\ResponseInterface; -/** @covers \JKingWeb\Arsse\REST\Fever\API */ +#[CoversClass(\JKingWeb\Arsse\REST\Fever\API::class)] class TestAPI extends \JKingWeb\Arsse\Test\AbstractTest { /** @var \JKingWeb\Arsse\REST\Fever\API */ protected $h; @@ -168,7 +170,7 @@ class TestAPI extends \JKingWeb\Arsse\Test\AbstractTest { \Phake::when($this->hMock)->baseResponse->thenReturn([]); } - /** @dataProvider provideTokenAuthenticationRequests */ + #[DataProvider("provideTokenAuthenticationRequests")] public function testAuthenticateAUserToken(bool $httpRequired, bool $tokenEnforced, ?string $httpUser, array $dataPost, array $dataGet, ResponseInterface $exp): void { self::setConf([ 'userHTTPAuthRequired' => $httpRequired, @@ -291,7 +293,7 @@ class TestAPI extends \JKingWeb\Arsse\Test\AbstractTest { $this->assertMessage($exp, $this->req("api&feeds")); } - /** @dataProvider provideItemListContexts */ + #[DataProvider("provideItemListContexts")] public function testListItems(string $url, Context $c, bool $desc): void { $fields = ["id", "subscription", "title", "author", "content", "url", "starred", "unread", "published_date"]; $order = [$desc ? "id desc" : "id"]; @@ -338,7 +340,7 @@ class TestAPI extends \JKingWeb\Arsse\Test\AbstractTest { $this->assertMessage($exp, $this->req("api&links")); } - /** @dataProvider provideMarkingContexts */ + #[DataProvider("provideMarkingContexts")] public function testSetMarks(string $post, Context $c, array $data, array $out): void { $saved = [['id' => 1],['id' => 2],['id' => 3]]; $unread = [['id' => 4],['id' => 5],['id' => 6]]; @@ -355,7 +357,7 @@ class TestAPI extends \JKingWeb\Arsse\Test\AbstractTest { } } - /** @dataProvider provideMarkingContexts */ + #[DataProvider("provideMarkingContexts")] public function testSetMarksWithQuery(string $get, Context $c, array $data, array $out): void { $saved = [['id' => 1],['id' => 2],['id' => 3]]; $unread = [['id' => 4],['id' => 5],['id' => 6]]; @@ -410,7 +412,7 @@ class TestAPI extends \JKingWeb\Arsse\Test\AbstractTest { ]; } - /** @dataProvider provideInvalidRequests */ + #[DataProvider("provideInvalidRequests")] public function testSendInvalidRequests(string $get, string $post, string $method, ?string $type, ResponseInterface $exp): void { $this->assertMessage($exp, $this->req($get, $post, $method, $type)); } diff --git a/tests/cases/REST/Fever/TestUser.php b/tests/cases/REST/Fever/TestUser.php index 171b67f3..b96ed000 100644 --- a/tests/cases/REST/Fever/TestUser.php +++ b/tests/cases/REST/Fever/TestUser.php @@ -14,8 +14,10 @@ use JKingWeb\Arsse\Db\ExceptionInput; use JKingWeb\Arsse\User\ExceptionConflict as UserException; use JKingWeb\Arsse\Db\Transaction; use JKingWeb\Arsse\REST\Fever\User as FeverUser; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; -/** @covers \JKingWeb\Arsse\REST\Fever\User */ +#[CoversClass(\JKingWeb\Arsse\REST\Fever\User::class)] class TestUser extends \JKingWeb\Arsse\Test\AbstractTest { protected $u; protected $h; @@ -33,7 +35,7 @@ class TestUser extends \JKingWeb\Arsse\Test\AbstractTest { $this->h = new FeverUser; } - /** @dataProvider providePasswordCreations */ + #[DataProvider("providePasswordCreations")] public function testRegisterAUserPassword(string $user, ?string $password, $exp): void { \Phake::when(Arsse::$user)->generatePassword->thenReturn("RANDOM_PASSWORD"); \Phake::when(Arsse::$db)->tokenCreate->thenReturnCallback(function($user, $class, $id = null) { @@ -73,7 +75,7 @@ class TestUser extends \JKingWeb\Arsse\Test\AbstractTest { \Phake::verify(Arsse::$db)->tokenRevoke("john.doe@example.com", "fever.login"); } - /** @dataProvider provideUserAuthenticationRequests */ + #[DataProvider("provideUserAuthenticationRequests")] public function testAuthenticateAUserName(string $user, string $password, bool $exp): void { \Phake::when(Arsse::$db)->tokenLookup->thenThrow(new ExceptionInput("constraintViolation")); \Phake::when(Arsse::$db)->tokenLookup("fever.login", md5("jane.doe@example.com:secret"))->thenReturn(['user' => "jane.doe@example.com"]); diff --git a/tests/cases/REST/Miniflux/PDO/TestToken.php b/tests/cases/REST/Miniflux/PDO/TestToken.php index 4f3ce3c0..32baa60b 100644 --- a/tests/cases/REST/Miniflux/PDO/TestToken.php +++ b/tests/cases/REST/Miniflux/PDO/TestToken.php @@ -7,8 +7,11 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\REST\Miniflux\PDO; -/** @covers \JKingWeb\Arsse\REST\Miniflux\Token - * @group optional */ +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; + +#[Group("optional")] +#[CoversClass(\JKingWeb\Arsse\REST\Miniflux\Token::class)] class TestToken extends \JKingWeb\Arsse\TestCase\REST\Miniflux\TestV1 { use \JKingWeb\Arsse\Test\PDOTest; } diff --git a/tests/cases/REST/Miniflux/PDO/TestV1.php b/tests/cases/REST/Miniflux/PDO/TestV1.php index 0f1e0e23..86f22547 100644 --- a/tests/cases/REST/Miniflux/PDO/TestV1.php +++ b/tests/cases/REST/Miniflux/PDO/TestV1.php @@ -7,8 +7,11 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\REST\Miniflux\PDO; -/** @covers \JKingWeb\Arsse\REST\Miniflux\V1 - * @group optional */ +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; + +#[Group("optional")] +#[CoversClass(\JKingWeb\Arsse\REST\Miniflux\V1::class)] class TestV1 extends \JKingWeb\Arsse\TestCase\REST\Miniflux\TestV1 { use \JKingWeb\Arsse\Test\PDOTest; } diff --git a/tests/cases/REST/Miniflux/TestToken.php b/tests/cases/REST/Miniflux/TestToken.php index 6ddd3f48..13dafe7d 100644 --- a/tests/cases/REST/Miniflux/TestToken.php +++ b/tests/cases/REST/Miniflux/TestToken.php @@ -12,8 +12,9 @@ use JKingWeb\Arsse\Database; use JKingWeb\Arsse\Db\Transaction; use JKingWeb\Arsse\REST\Miniflux\Token; use JKingWeb\Arsse\Test\Result; +use PHPUnit\Framework\Attributes\CoversClass; -/** @covers \JKingWeb\Arsse\REST\Miniflux\Token */ +#[CoversClass(\JKingWeb\Arsse\REST\Miniflux\Token::class)] class TestToken extends \JKingWeb\Arsse\Test\AbstractTest { protected const NOW = "2020-12-09T22:35:10.023419Z"; protected const TOKEN = "Tk2o9YubmZIL2fm2w8Z4KlDEQJz532fNSOcTG0s2_xc="; diff --git a/tests/cases/REST/Miniflux/TestV1.php b/tests/cases/REST/Miniflux/TestV1.php index b5ef43e4..895e8811 100644 --- a/tests/cases/REST/Miniflux/TestV1.php +++ b/tests/cases/REST/Miniflux/TestV1.php @@ -23,9 +23,11 @@ use JKingWeb\Arsse\ImportExport\OPML; use JKingWeb\Arsse\User\ExceptionConflict; use JKingWeb\Arsse\User\ExceptionInput as UserExceptionInput; use JKingWeb\Arsse\Test\Result; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use Psr\Http\Message\ResponseInterface; -/** @covers \JKingWeb\Arsse\REST\Miniflux\V1 */ +#[CoversClass(\JKingWeb\Arsse\REST\Miniflux\V1::class)] class TestV1 extends \JKingWeb\Arsse\Test\AbstractTest { protected const NOW = "2020-12-09T22:35:10.023419Z"; protected const TOKEN = "Tk2o9YubmZIL2fm2w8Z4KlDEQJz532fNSOcTG0s2_xc="; @@ -97,7 +99,7 @@ class TestV1 extends \JKingWeb\Arsse\Test\AbstractTest { $this->assertMessage($exp, $act); } - /** @dataProvider provideAuthResponses */ + #[DataProvider("provideAuthResponses")] public function testAuthenticateAUser($token, bool $auth, bool $success): void { $exp = $success ? HTTP::respEmpty(404) : V1::respError("401", 401); $user = "john.doe@example.com"; @@ -128,7 +130,7 @@ class TestV1 extends \JKingWeb\Arsse\Test\AbstractTest { ]; } - /** @dataProvider provideInvalidPaths */ + #[DataProvider("provideInvalidPaths")] public function testRespondToInvalidPaths($path, $method, $code, $allow = null): void { $exp = HTTP::respEmpty($code, $allow ? ['Allow' => $allow] : []); $this->assertMessage($exp, $this->req($method, $path)); @@ -143,7 +145,7 @@ class TestV1 extends \JKingWeb\Arsse\Test\AbstractTest { ]; } - /** @dataProvider provideOptionsRequests */ + #[DataProvider("provideOptionsRequests")] public function testRespondToOptionsRequests(string $url, string $allow, string $accept): void { $exp = HTTP::respEmpty(204, [ 'Allow' => $allow, @@ -172,7 +174,7 @@ class TestV1 extends \JKingWeb\Arsse\Test\AbstractTest { $this->assertMessage($exp, $this->req("POST", "/discover", ['url' => 2112])); } - /** @dataProvider provideDiscoveries */ + #[DataProvider("provideDiscoveries")] public function testDiscoverFeeds($in, ResponseInterface $exp): void { $this->assertMessage($exp, $this->req("POST", "/discover", ['url' => $in])); } @@ -193,7 +195,7 @@ class TestV1 extends \JKingWeb\Arsse\Test\AbstractTest { ]; } - /** @dataProvider provideUserQueries */ + #[DataProvider("provideUserQueries")] public function testQueryUsers(bool $admin, string $route, ResponseInterface $exp): void { $u = [ new ExceptionConflict("doesNotExist"), @@ -234,7 +236,7 @@ class TestV1 extends \JKingWeb\Arsse\Test\AbstractTest { ]; } - /** @dataProvider provideUserModifications */ + #[DataProvider("provideUserModifications")] public function testModifyAUser(bool $admin, string $url, array $body, $in1, $out1, $in2, $out2, $in3, $out3, ResponseInterface $exp): void { Arsse::$user = \Phake::mock(User::class); \Phake::when(Arsse::$user)->begin->thenReturn($this->transaction); @@ -303,7 +305,7 @@ class TestV1 extends \JKingWeb\Arsse\Test\AbstractTest { ]; } - /** @dataProvider provideUserAdditions */ + #[DataProvider("provideUserAdditions")] public function testAddAUser(array $body, $in1, $out1, $in2, $out2, ResponseInterface $exp): void { Arsse::$user = \Phake::mock(User::class); \Phake::when(Arsse::$user)->begin->thenReturn($this->transaction); @@ -398,7 +400,7 @@ class TestV1 extends \JKingWeb\Arsse\Test\AbstractTest { $this->assertMessage($exp, $this->req("GET", "/categories")); } - /** @dataProvider provideCategoryAdditions */ + #[DataProvider("provideCategoryAdditions")] public function testAddACategory($title, ResponseInterface $exp): void { if (!strlen((string) $title)) { \Phake::when(Arsse::$db)->folderAdd->thenThrow(new ExceptionInput("missing")); @@ -423,7 +425,7 @@ class TestV1 extends \JKingWeb\Arsse\Test\AbstractTest { ]; } - /** @dataProvider provideCategoryUpdates */ + #[DataProvider("provideCategoryUpdates")] public function testRenameACategory(int $id, $title, $out, ResponseInterface $exp): void { \Phake::when(Arsse::$user)->propertiesSet->thenReturn(['root_folder_name' => $title]); if (is_string($out)) { @@ -523,7 +525,7 @@ class TestV1 extends \JKingWeb\Arsse\Test\AbstractTest { \Phake::verify(Arsse::$db)->subscriptionPropertiesGet(Arsse::$user->id, 1); } - /** @dataProvider provideFeedCreations */ + #[DataProvider("provideFeedCreations")] public function testCreateAFeed(array $in, $out1, $out2, $out3, $out4, ResponseInterface $exp): void { if ($out1 instanceof \Exception) { \Phake::when(Arsse::$db)->feedAdd->thenThrow($out1); @@ -614,7 +616,7 @@ class TestV1 extends \JKingWeb\Arsse\Test\AbstractTest { ]; } - /** @dataProvider provideFeedModifications */ + #[DataProvider("provideFeedModifications")] public function testModifyAFeed(array $in, array $data, $out, ResponseInterface $exp): void { $this->h = \Phake::partialMock(V1::class); \Phake::when($this->h)->getFeed->thenReturn(HTTP::respJson(self::FEEDS_OUT[0])); @@ -664,7 +666,7 @@ class TestV1 extends \JKingWeb\Arsse\Test\AbstractTest { \Phake::verify(Arsse::$db)->subscriptionRemove(Arsse::$user->id, 2112); } - /** @dataProvider provideIcons */ + #[DataProvider("provideIcons")] public function testGetTheIconOfASubscription($out, ResponseInterface $exp): void { if ($out instanceof \Exception) { \Phake::when(Arsse::$db)->subscriptionIcon->thenThrow($out); @@ -686,7 +688,7 @@ class TestV1 extends \JKingWeb\Arsse\Test\AbstractTest { ]; } - /** @dataProvider provideEntryQueries */ + #[DataProvider("provideEntryQueries")] public function testGetEntries(string $url, ?RootContext $c, ?array $order, $out, bool $count, ResponseInterface $exp): void { \Phake::when(Arsse::$db)->subscriptionList->thenReturn(new Result(self::v(self::FEEDS))); \Phake::when(Arsse::$db)->articleCount->thenReturn(2112); @@ -777,7 +779,7 @@ class TestV1 extends \JKingWeb\Arsse\Test\AbstractTest { ]; } - /** @dataProvider provideSingleEntryQueries */ + #[DataProvider("provideSingleEntryQueries")] public function testGetASingleEntry(string $url, Context $c, $out, ResponseInterface $exp): void { \Phake::when(Arsse::$db)->subscriptionPropertiesGet->thenReturn(self::v(self::FEEDS[1])); if ($out instanceof \Exception) { @@ -816,7 +818,7 @@ class TestV1 extends \JKingWeb\Arsse\Test\AbstractTest { ]; } - /** @dataProvider provideEntryMarkings */ + #[DataProvider("provideEntryMarkings")] public function testMarkEntries(array $in, ?array $data, ResponseInterface $exp): void { \Phake::when(Arsse::$db)->articleMark->thenReturn(0); $this->assertMessage($exp, $this->req("PUT", "/entries", $in)); @@ -844,7 +846,7 @@ class TestV1 extends \JKingWeb\Arsse\Test\AbstractTest { ]; } - /** @dataProvider provideMassMarkings */ + #[DataProvider("provideMassMarkings")] public function testMassMarkEntries(string $url, Context $c, $out, ResponseInterface $exp): void { if ($out instanceof \Exception) { \Phake::when(Arsse::$db)->articleMark->thenThrow($out); @@ -873,7 +875,7 @@ class TestV1 extends \JKingWeb\Arsse\Test\AbstractTest { ]; } - /** @dataProvider provideBookmarkTogglings */ + #[DataProvider("provideBookmarkTogglings")] public function testToggleABookmark($before, ?bool $after, ResponseInterface $exp): void { $c = (new Context)->article(2112); \Phake::when(Arsse::$db)->articleMark->thenReturn(1); @@ -925,7 +927,7 @@ class TestV1 extends \JKingWeb\Arsse\Test\AbstractTest { $this->assertMessage(HTTP::respEmpty(204), $this->req("PUT", "/feeds/refresh")); } - /** @dataProvider provideImports */ + #[DataProvider("provideImports")] public function testImport($out, ResponseInterface $exp): void { $opml = \Phake::mock(OPML::class); \Phake::when(Arsse::$obj)->get(OPML::class)->thenReturn($opml); diff --git a/tests/cases/REST/NextcloudNews/PDO/TestV1_2.php b/tests/cases/REST/NextcloudNews/PDO/TestV1_2.php index 6b8d834a..7b1bd100 100644 --- a/tests/cases/REST/NextcloudNews/PDO/TestV1_2.php +++ b/tests/cases/REST/NextcloudNews/PDO/TestV1_2.php @@ -7,9 +7,11 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\REST\NextcloudNews\PDO; -/** @covers \JKingWeb\Arsse\REST\NextcloudNews\V1_2 - * @group optional - */ +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; + +#[Group("optional")] +#[CoversClass(\JKingWeb\Arsse\REST\NextcloudNews\V1_2::class)] class TestV1_2 extends \JKingWeb\Arsse\TestCase\REST\NextcloudNews\TestV1_2 { use \JKingWeb\Arsse\Test\PDOTest; } diff --git a/tests/cases/REST/NextcloudNews/TestV1_2.php b/tests/cases/REST/NextcloudNews/TestV1_2.php index 8fe1dc62..05de9803 100644 --- a/tests/cases/REST/NextcloudNews/TestV1_2.php +++ b/tests/cases/REST/NextcloudNews/TestV1_2.php @@ -17,9 +17,11 @@ use JKingWeb\Arsse\Context\Context; use JKingWeb\Arsse\Db\ExceptionInput; use JKingWeb\Arsse\Db\Transaction; use JKingWeb\Arsse\REST\NextcloudNews\V1_2; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use Psr\Http\Message\ResponseInterface; -/** @covers \JKingWeb\Arsse\REST\NextcloudNews\V1_2 */ +#[CoversClass(\JKingWeb\Arsse\REST\NextcloudNews\V1_2::class)] class TestV1_2 extends \JKingWeb\Arsse\Test\AbstractTest { protected $h; protected $transaction; @@ -337,7 +339,7 @@ class TestV1_2 extends \JKingWeb\Arsse\Test\AbstractTest { $this->assertMessage($exp, $this->req("GET", "/", "", [], false)); } - /** @dataProvider provideInvalidPaths */ + #[DataProvider("provideInvalidPaths")] public function testRespondToInvalidPaths($path, $method, $code, $allow = null): void { $exp = HTTP::respEmpty($code, $allow ? ['Allow' => $allow] : []); $this->assertMessage($exp, $this->req($method, $path)); @@ -378,7 +380,7 @@ class TestV1_2 extends \JKingWeb\Arsse\Test\AbstractTest { $this->assertMessage($exp, $this->req("PUT", "/folders/1", '', ['Content-Type' => null])); } - /** @dataProvider provideOptionsRequests */ + #[DataProvider("provideOptionsRequests")] public function testRespondToOptionsRequests(string $url, string $allow, string $accept): void { $exp = HTTP::respEmpty(204, [ 'Allow' => $allow, @@ -409,7 +411,7 @@ class TestV1_2 extends \JKingWeb\Arsse\Test\AbstractTest { $this->assertMessage($exp, $this->req("GET", "/folders")); } - /** @dataProvider provideFolderCreations */ + #[DataProvider("provideFolderCreations")] public function testAddAFolder(array $input, bool $body, $output, ResponseInterface $exp): void { if ($output instanceof ExceptionInput) { \Phake::when(Arsse::$db)->folderAdd->thenThrow($output); @@ -450,7 +452,7 @@ class TestV1_2 extends \JKingWeb\Arsse\Test\AbstractTest { \Phake::verify(Arsse::$db, \Phake::times(2))->folderRemove($this->userId, 1); } - /** @dataProvider provideFolderRenamings */ + #[DataProvider("provideFolderRenamings")] public function testRenameAFolder(array $input, int $id, $output, ResponseInterface $exp): void { if ($output instanceof ExceptionInput) { \Phake::when(Arsse::$db)->folderPropertiesSet->thenThrow($output); @@ -500,7 +502,7 @@ class TestV1_2 extends \JKingWeb\Arsse\Test\AbstractTest { $this->assertMessage($exp, $this->req("GET", "/feeds")); } - /** @dataProvider provideNewSubscriptions */ + #[DataProvider("provideNewSubscriptions")] public function testAddASubscription(array $input, $id, int $latestEdition, array $output, $moveOutcome, ResponseInterface $exp): void { if ($id instanceof \Exception) { \Phake::when(Arsse::$db)->subscriptionAdd->thenThrow($id); @@ -663,7 +665,7 @@ class TestV1_2 extends \JKingWeb\Arsse\Test\AbstractTest { \Phake::verify(Arsse::$db, \Phake::never())->feedUpdate(\Phake::anyParameters()); } - /** @dataProvider provideArticleQueries */ + #[DataProvider("provideArticleQueries")] public function testListArticles(string $url, array $in, Context $c, $out, ResponseInterface $exp): void { if ($out instanceof \Exception) { \Phake::when(Arsse::$db)->articleList->thenThrow($out); diff --git a/tests/cases/REST/TinyTinyRSS/PDO/TestAPI.php b/tests/cases/REST/TinyTinyRSS/PDO/TestAPI.php index 1ec5a32e..7792856e 100644 --- a/tests/cases/REST/TinyTinyRSS/PDO/TestAPI.php +++ b/tests/cases/REST/TinyTinyRSS/PDO/TestAPI.php @@ -7,9 +7,12 @@ declare(strict_types=1); namespace JKingWeb\Arsse\TestCase\REST\TinyTinyRSS\PDO; -/** @covers \JKingWeb\Arsse\REST\TinyTinyRSS\API - * @covers \JKingWeb\Arsse\REST\TinyTinyRSS\Exception - * @group optional */ +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; + +#[Group("optional")] +#[CoversClass(\JKingWeb\Arsse\REST\TinyTinyRSS\API::class)] +#[CoversClass(\JKingWeb\Arsse\REST\TinyTinyRSS\Exception::class)] class TestAPI extends \JKingWeb\Arsse\TestCase\REST\TinyTinyRSS\TestAPI { use \JKingWeb\Arsse\Test\PDOTest; } diff --git a/tests/cases/REST/TinyTinyRSS/TestAPI.php b/tests/cases/REST/TinyTinyRSS/TestAPI.php index 9e023fce..829aeb1c 100644 --- a/tests/cases/REST/TinyTinyRSS/TestAPI.php +++ b/tests/cases/REST/TinyTinyRSS/TestAPI.php @@ -18,10 +18,12 @@ use JKingWeb\Arsse\Db\ExceptionInput; use JKingWeb\Arsse\Db\Transaction; use JKingWeb\Arsse\REST\TinyTinyRSS\API; use JKingWeb\Arsse\Feed\Exception as FeedException; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use Psr\Http\Message\ResponseInterface; -/** @covers \JKingWeb\Arsse\REST\TinyTinyRSS\API - * @covers \JKingWeb\Arsse\REST\TinyTinyRSS\Exception */ +#[CoversClass(\JKingWeb\Arsse\REST\TinyTinyRSS\API::class)] +#[CoversClass(\JKingWeb\Arsse\REST\TinyTinyRSS\Exception::class)] class TestAPI extends \JKingWeb\Arsse\Test\AbstractTest { protected const NOW = "2020-12-21T23:09:17.189065Z"; @@ -203,7 +205,7 @@ LONG_STRING; $this->assertMessage($exp, $this->req(null, "POST", "", "")); // lack of data is also an error } - /** @dataProvider provideLoginRequests */ + #[DataProvider("provideLoginRequests")] public function testLogIn(array $conf, $httpUser, array $data, $sessions): void { self::$userId = null; self::setConf($conf); @@ -237,7 +239,7 @@ LONG_STRING; return self::generateLoginRequests("login"); } - /** @dataProvider provideResumeRequests */ + #[DataProvider("provideResumeRequests")] public function testValidateASession(array $conf, $httpUser, string $data, $result): void { self::$userId = null; self::setConf($conf); @@ -589,7 +591,7 @@ LONG_STRING; $this->assertMessage($exp, $this->req($data)); } - /** @dataProvider provideCategoryAdditions */ + #[DataProvider("provideCategoryAdditions")] public function testAddACategory(array $in, array $data, $out, ResponseInterface $exp): void { $in = array_merge(['op' => "addCategory", 'sid' => "PriestsOfSyrinx"], $in); $action = ($out instanceof \Exception) ? "thenThrow" : "thenReturn"; @@ -621,7 +623,7 @@ LONG_STRING; ]; } - /** @dataProvider provideCategoryRemovals */ + #[DataProvider("provideCategoryRemovals")] public function testRemoveACategory(array $in, ?int $data, $out, ResponseInterface $exp): void { $in = array_merge(['op' => "removeCategory", 'sid' => "PriestsOfSyrinx"], $in); $action = ($out instanceof \Exception) ? "thenThrow" : "thenReturn"; @@ -641,7 +643,7 @@ LONG_STRING; ]; } - /** @dataProvider provideCategoryMoves */ + #[DataProvider("provideCategoryMoves")] public function testMoveACategory(array $in, array $data, $out, ResponseInterface $exp): void { $in = array_merge(['op' => "moveCategory", 'sid' => "PriestsOfSyrinx"], $in); $action = ($out instanceof \Exception) ? "thenThrow" : "thenReturn"; @@ -668,7 +670,7 @@ LONG_STRING; ]; } - /** @dataProvider provideCategoryRenamings */ + #[DataProvider("provideCategoryRenamings")] public function testRenameACategory(array $in, ?array $data, $out, ResponseInterface $exp): void { $in = array_merge(['op' => "renameCategory", 'sid' => "PriestsOfSyrinx"], $in); $action = ($out instanceof \Exception) ? "thenThrow" : "thenReturn"; @@ -695,7 +697,7 @@ LONG_STRING; ]; } - /** @dataProvider provideFeedSubscriptions */ + #[DataProvider("provideFeedSubscriptions")] public function testAddASubscription(array $in, ?array $data, $out, ResponseInterface $exp): void { $in = array_merge(['op' => "subscribeToFeed", 'sid' => "PriestsOfSyrinx"], $in); $action = ($out instanceof \Exception) ? "thenThrow" : "thenReturn"; @@ -740,7 +742,7 @@ LONG_STRING; ]; } - /** @dataProvider provideFeedUnsubscriptions */ + #[DataProvider("provideFeedUnsubscriptions")] public function testRemoveASubscription(array $in, ?array $data, $out, ResponseInterface $exp): void { $in = array_merge(['op' => "unsubscribeFeed", 'sid' => "PriestsOfSyrinx"], $in); $action = ($out instanceof \Exception) ? "thenThrow" : "thenReturn"; @@ -762,7 +764,7 @@ LONG_STRING; ]; } - /** @dataProvider provideFeedMoves */ + #[DataProvider("provideFeedMoves")] public function testMoveAFeed(array $in, ?array $data, $out, ResponseInterface $exp): void { $in = array_merge(['op' => "moveFeed", 'sid' => "PriestsOfSyrinx"], $in); $action = ($out instanceof \Exception) ? "thenThrow" : "thenReturn"; @@ -789,7 +791,7 @@ LONG_STRING; ]; } - /** @dataProvider provideFeedRenamings */ + #[DataProvider("provideFeedRenamings")] public function testRenameAFeed(array $in, ?array $data, $out, ResponseInterface $exp): void { $in = array_merge(['op' => "renameFeed", 'sid' => "PriestsOfSyrinx"], $in); $action = ($out instanceof \Exception) ? "thenThrow" : "thenReturn"; @@ -838,7 +840,7 @@ LONG_STRING; $this->assertMessage(self::respGood(['icons_dir' => "feed-icons", 'icons_url' => "feed-icons", 'daemon_is_running' => false, 'num_feeds' => 2]), $this->req($in)); } - /** @dataProvider provideFeedUpdates */ + #[DataProvider("provideFeedUpdates")] public function testUpdateAFeed(array $in, ?array $data, $out, ?int $id, ResponseInterface $exp): void { $in = array_merge(['op' => "updateFeed", 'sid' => "PriestsOfSyrinx"], $in); $action = ($out instanceof \Exception) ? "thenThrow" : "thenReturn"; @@ -866,7 +868,7 @@ LONG_STRING; ]; } - /** @dataProvider provideLabelAdditions */ + #[DataProvider("provideLabelAdditions")] public function testAddALabel(array $in, ?array $data1, $out1, ?array $data2, $out2, ResponseInterface $exp): void { $in = array_merge(['op' => "addLabel", 'sid' => "PriestsOfSyrinx"], $in); $action = ($out1 instanceof \Exception) ? "thenThrow" : "thenReturn"; @@ -897,7 +899,7 @@ LONG_STRING; ]; } - /** @dataProvider provideLabelRemovals */ + #[DataProvider("provideLabelRemovals")] public function testRemoveALabel(array $in, ?array $data, $out, ResponseInterface $exp): void { $in = array_merge(['op' => "removeLabel", 'sid' => "PriestsOfSyrinx"], $in); $action = ($out instanceof \Exception) ? "thenThrow" : "thenReturn"; @@ -921,7 +923,7 @@ LONG_STRING; ]; } - /** @dataProvider provideLabelRenamings */ + #[DataProvider("provideLabelRenamings")] public function testRenameALabel(array $in, ?array $data, $out, ResponseInterface $exp): void { $in = array_merge(['op' => "renameLabel", 'sid' => "PriestsOfSyrinx"], $in); $action = ($out instanceof \Exception) ? "thenThrow" : "thenReturn"; @@ -949,7 +951,7 @@ LONG_STRING; ]; } - /** @dataProvider provideCategoryListings */ + #[DataProvider("provideCategoryListings")] public function testRetrieveCategoryLists(array $in, ResponseInterface $exp): void { $in = array_merge(['op' => "getCategories", 'sid' => "PriestsOfSyrinx"], $in); \Phake::when(Arsse::$db)->folderList($this->anything(), null, true)->thenReturn(new Result(self::v($this->folders))); @@ -1060,7 +1062,7 @@ LONG_STRING; \Phake::verify(Arsse::$db)->articleCount(self::$userId, $this->equalTo((new Context)->hidden(false)->unread(true)->modifiedRange(Date::sub("PT24H", self::NOW), null))); } - /** @dataProvider provideLabelListings */ + #[DataProvider("provideLabelListings")] public function testRetrieveTheLabelList(array $in, ResponseInterface $exp): void { $in = array_merge(['op' => "getLabels", 'sid' => "PriestsOfSyrinx"], $in); \Phake::when(Arsse::$db)->labelList->thenReturn(new Result(self::v($this->labels))); @@ -1121,7 +1123,7 @@ LONG_STRING; ]; } - /** @dataProvider provideLabelAssignments */ + #[DataProvider("provideLabelAssignments")] public function testAssignArticlesToALabel(array $in, ?int $label, ?int $operation, ResponseInterface $exp): void { $in = array_merge(['op' => "setArticleLabel", 'sid' => "PriestsOfSyrinx"], $in); \Phake::when(Arsse::$db)->labelArticlesSet(self::$userId, $this->anything(), $this->anything(), Database::ASSOC_REMOVE)->thenReturn(42)->thenReturn(47); @@ -1152,7 +1154,7 @@ LONG_STRING; \Phake::verify(Arsse::$db, \Phake::times(2))->articleCount(self::$userId, $this->equalTo((new Context)->hidden(false)->unread(true)->modifiedRange(Date::sub("PT24H", self::NOW), null))); } - /** @dataProvider provideMassMarkings */ + #[DataProvider("provideMassMarkings")] public function testMarkFeedsAsRead(array $in, ?Context $c): void { $base = ['op' => "catchupFeed", 'sid' => "PriestsOfSyrinx"]; $in = array_merge($base, $in); @@ -1194,7 +1196,7 @@ LONG_STRING; ]; } - /** @dataProvider provideFeedListings */ + #[DataProvider("provideFeedListings")] public function testRetrieveFeedList(array $in, ResponseInterface $exp): void { $in = array_merge(['op' => "getFeeds", 'sid' => "PriestsOfSyrinx"], $in); // statistical mocks @@ -1353,7 +1355,7 @@ LONG_STRING; ]; } - /** @dataProvider provideArticleChanges */ + #[DataProvider("provideArticleChanges")] public function testChangeArticles(array $in, ResponseInterface $exp): void { $in = array_merge(['op' => "updateArticle", 'sid' => "PriestsOfSyrinx"], $in); \Phake::when(Arsse::$db)->articleMark->thenReturn(1); @@ -1404,7 +1406,7 @@ LONG_STRING; ]; } - /** @dataProvider provideArticleListings */ + #[DataProvider("provideArticleListings")] public function testListArticles(array $in, ResponseInterface $exp): void { $in = array_merge(['op' => "getArticle", 'sid' => "PriestsOfSyrinx"], $in); \Phake::when(Arsse::$db)->labelList($this->anything())->thenReturn(new Result(self::v($this->labels))); @@ -1485,7 +1487,7 @@ LONG_STRING; ]; } - /** @dataProvider provideArticleListingsWithoutLabels */ + #[DataProvider("provideArticleListingsWithoutLabels")] public function testListArticlesWithoutLabels(array $in, ResponseInterface $exp): void { $in = array_merge(['op' => "getArticle", 'sid' => "PriestsOfSyrinx"], $in); \Phake::when(Arsse::$db)->labelList($this->anything())->thenReturn(new Result([])); @@ -1563,7 +1565,7 @@ LONG_STRING; ]; } - /** @dataProvider provideHeadlines */ + #[DataProvider("provideHeadlines")] public function testRetrieveHeadlines(bool $full, array $in, $out, Context $c, array $fields, array $order, ResponseInterface $exp): void { $base = ['op' => $full ? "getHeadlines" : "getCompactHeadlines", 'sid' => "PriestsOfSyrinx"]; $in = array_merge($base, $in); diff --git a/tests/cases/REST/TinyTinyRSS/TestIcon.php b/tests/cases/REST/TinyTinyRSS/TestIcon.php index 72184d78..3dbb2db2 100644 --- a/tests/cases/REST/TinyTinyRSS/TestIcon.php +++ b/tests/cases/REST/TinyTinyRSS/TestIcon.php @@ -13,9 +13,10 @@ use JKingWeb\Arsse\Database; use JKingWeb\Arsse\Misc\HTTP; use JKingWeb\Arsse\Db\ExceptionInput; use JKingWeb\Arsse\REST\TinyTinyRSS\Icon; +use PHPUnit\Framework\Attributes\CoversClass; use Psr\Http\Message\ResponseInterface; -/** @covers \JKingWeb\Arsse\REST\TinyTinyRSS\Icon */ +#[CoversClass(\JKingWeb\Arsse\REST\TinyTinyRSS\Icon::class)] class TestIcon extends \JKingWeb\Arsse\Test\AbstractTest { protected $h; protected $user = "john.doe@example.com"; diff --git a/tests/lib/AbstractTest.php b/tests/lib/AbstractTest.php index 427f9c50..409f74b4 100644 --- a/tests/lib/AbstractTest.php +++ b/tests/lib/AbstractTest.php @@ -25,9 +25,9 @@ use Psr\Http\Message\RequestInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Message\ResponseInterface; use GuzzleHttp\Psr7\ServerRequest; -use PHPUnit\Framework\Attributes\CoversNothing; +use PHPUnit\Framework\Attributes\CoversClass; -#[CoversNothing] +#[CoversClass(Database::class)] abstract class AbstractTest extends \PHPUnit\Framework\TestCase { public function setUp(): void { self::clearData(); diff --git a/tests/phpunit.dist.xml b/tests/phpunit.dist.xml index ea08b283..0f1a6400 100644 --- a/tests/phpunit.dist.xml +++ b/tests/phpunit.dist.xml @@ -1,154 +1,150 @@ - - - - - - - - + + + + + + - - - - - - - - + + + + + + + - ../lib + ../lib - - + + - cases/Exception/TestException.php + cases/Exception/TestException.php - cases/Lang/TestBasic.php - cases/Lang/TestComplex.php - cases/Lang/TestErrors.php + cases/Lang/TestBasic.php + cases/Lang/TestComplex.php + cases/Lang/TestErrors.php - cases/Conf/TestConf.php + cases/Conf/TestConf.php - cases/Misc/TestFactory.php - cases/Misc/TestValueInfo.php - cases/Misc/TestDate.php - cases/Misc/TestQuery.php - cases/Misc/TestContext.php - cases/Misc/TestURL.php - cases/Misc/TestHTTP.php - cases/Misc/TestRule.php + cases/Misc/TestFactory.php + cases/Misc/TestValueInfo.php + cases/Misc/TestDate.php + cases/Misc/TestQuery.php + cases/Misc/TestContext.php + cases/Misc/TestURL.php + cases/Misc/TestHTTP.php + cases/Misc/TestRule.php - cases/User/TestInternal.php - cases/User/TestUser.php + cases/User/TestInternal.php + cases/User/TestUser.php - cases/Feed/TestException.php - cases/Feed/TestFetching.php - cases/Feed/TestFeed.php + cases/Feed/TestException.php + cases/Feed/TestFetching.php + cases/Feed/TestFeed.php - cases/Db/TestTransaction.php - cases/Db/TestResultAggregate.php - cases/Db/TestResultEmpty.php - cases/Database/TestDatabase.php + cases/Db/TestTransaction.php + cases/Db/TestResultAggregate.php + cases/Db/TestResultEmpty.php + cases/Database/TestDatabase.php - cases/Db/SQLite3/TestResult.php - cases/Db/SQLite3/TestStatement.php - cases/Db/SQLite3/TestCreation.php - cases/Db/SQLite3/TestDriver.php - cases/Db/SQLite3/TestUpdate.php - cases/Db/SQLite3/TestDatabase.php - cases/Db/SQLite3PDO/TestResult.php - cases/Db/SQLite3PDO/TestStatement.php - cases/Db/SQLite3PDO/TestCreation.php - cases/Db/SQLite3PDO/TestDriver.php - cases/Db/SQLite3PDO/TestUpdate.php - cases/Db/SQLite3PDO/TestDatabase.php + cases/Db/SQLite3/TestResult.php + cases/Db/SQLite3/TestStatement.php + cases/Db/SQLite3/TestCreation.php + cases/Db/SQLite3/TestDriver.php + cases/Db/SQLite3/TestUpdate.php + cases/Db/SQLite3/TestDatabase.php + cases/Db/SQLite3PDO/TestResult.php + cases/Db/SQLite3PDO/TestStatement.php + cases/Db/SQLite3PDO/TestCreation.php + cases/Db/SQLite3PDO/TestDriver.php + cases/Db/SQLite3PDO/TestUpdate.php + cases/Db/SQLite3PDO/TestDatabase.php - cases/Db/PostgreSQL/TestResult.php - cases/Db/PostgreSQL/TestStatement.php - cases/Db/PostgreSQL/TestCreation.php - cases/Db/PostgreSQL/TestDriver.php - cases/Db/PostgreSQL/TestUpdate.php - cases/Db/PostgreSQL/TestDatabase.php - cases/Db/PostgreSQLPDO/TestResult.php - cases/Db/PostgreSQLPDO/TestStatement.php - cases/Db/PostgreSQLPDO/TestCreation.php - cases/Db/PostgreSQLPDO/TestDriver.php - cases/Db/PostgreSQLPDO/TestUpdate.php - cases/Db/PostgreSQLPDO/TestDatabase.php + cases/Db/PostgreSQL/TestResult.php + cases/Db/PostgreSQL/TestStatement.php + cases/Db/PostgreSQL/TestCreation.php + cases/Db/PostgreSQL/TestDriver.php + cases/Db/PostgreSQL/TestUpdate.php + cases/Db/PostgreSQL/TestDatabase.php + cases/Db/PostgreSQLPDO/TestResult.php + cases/Db/PostgreSQLPDO/TestStatement.php + cases/Db/PostgreSQLPDO/TestCreation.php + cases/Db/PostgreSQLPDO/TestDriver.php + cases/Db/PostgreSQLPDO/TestUpdate.php + cases/Db/PostgreSQLPDO/TestDatabase.php - cases/Db/MySQL/TestResult.php - cases/Db/MySQL/TestStatement.php - cases/Db/MySQL/TestCreation.php - cases/Db/MySQL/TestDriver.php - cases/Db/MySQL/TestUpdate.php - cases/Db/MySQL/TestDatabase.php - cases/Db/MySQLPDO/TestResult.php - cases/Db/MySQLPDO/TestStatement.php - cases/Db/MySQLPDO/TestCreation.php - cases/Db/MySQLPDO/TestDriver.php - cases/Db/MySQLPDO/TestUpdate.php - cases/Db/MySQLPDO/TestDatabase.php + cases/Db/MySQL/TestResult.php + cases/Db/MySQL/TestStatement.php + cases/Db/MySQL/TestCreation.php + cases/Db/MySQL/TestDriver.php + cases/Db/MySQL/TestUpdate.php + cases/Db/MySQL/TestDatabase.php + cases/Db/MySQLPDO/TestResult.php + cases/Db/MySQLPDO/TestStatement.php + cases/Db/MySQLPDO/TestCreation.php + cases/Db/MySQLPDO/TestDriver.php + cases/Db/MySQLPDO/TestUpdate.php + cases/Db/MySQLPDO/TestDatabase.php - cases/REST/TestREST.php + cases/REST/TestREST.php - cases/REST/Miniflux/TestStatus.php - cases/REST/Miniflux/TestV1.php - cases/REST/Miniflux/TestToken.php - cases/REST/Miniflux/PDO/TestV1.php - cases/REST/Miniflux/PDO/TestToken.php + cases/REST/Miniflux/TestStatus.php + cases/REST/Miniflux/TestV1.php + cases/REST/Miniflux/TestToken.php + cases/REST/Miniflux/PDO/TestV1.php + cases/REST/Miniflux/PDO/TestToken.php - cases/REST/NextcloudNews/TestVersions.php - cases/REST/NextcloudNews/TestV1_2.php - cases/REST/NextcloudNews/PDO/TestV1_2.php + cases/REST/NextcloudNews/TestVersions.php + cases/REST/NextcloudNews/TestV1_2.php + cases/REST/NextcloudNews/PDO/TestV1_2.php - cases/REST/TinyTinyRSS/TestSearch.php - cases/REST/TinyTinyRSS/TestAPI.php - cases/REST/TinyTinyRSS/TestIcon.php - cases/REST/TinyTinyRSS/PDO/TestAPI.php + cases/REST/TinyTinyRSS/TestSearch.php + cases/REST/TinyTinyRSS/TestAPI.php + cases/REST/TinyTinyRSS/TestIcon.php + cases/REST/TinyTinyRSS/PDO/TestAPI.php - cases/REST/Fever/TestUser.php - cases/REST/Fever/TestAPI.php - cases/REST/Fever/PDO/TestAPI.php + cases/REST/Fever/TestUser.php + cases/REST/Fever/TestAPI.php + cases/REST/Fever/PDO/TestAPI.php - cases/Service/TestService.php - cases/Service/TestSerial.php - cases/Service/TestSubprocess.php - cases/Service/TestDaemon.php - cases/CLI/TestCLI.php - cases/TestArsse.php + cases/Service/TestService.php + cases/Service/TestSerial.php + cases/Service/TestSubprocess.php + cases/Service/TestDaemon.php + cases/CLI/TestCLI.php + cases/TestArsse.php - cases/ImportExport/TestFile.php - cases/ImportExport/TestImportExport.php - cases/ImportExport/TestOPML.php + cases/ImportExport/TestFile.php + cases/ImportExport/TestImportExport.php + cases/ImportExport/TestOPML.php - +