diff --git a/tests/cases/Database/TestDatabase.php b/tests/cases/Database/TestDatabase.php index 00838b3a..7408d7cd 100644 --- a/tests/cases/Database/TestDatabase.php +++ b/tests/cases/Database/TestDatabase.php @@ -10,6 +10,152 @@ use JKingWeb\Arsse\Database; /** @covers \JKingWeb\Arsse\Database */ class TestDatabase extends \JKingWeb\Arsse\Test\AbstractTest { + protected const COL_DEFS = [ + 'arsse_meta' => [ + 'key' => "strict str", + 'value' => "str", + ], + 'arsse_users' => [ + 'id' => "strict str", + 'password' => "str", + 'num' => "strict int", + 'admin' => "strict bool", + ], + 'arsse_user_meta' => [ + 'owner' => "strict str", + 'key' => "strict str", + 'modified' => "strict datetime", + 'value' => "str", + ], + 'arsse_sessions' => [ + 'id' => "strict str", + 'created' => "strict datetime", + 'expires' => "strict datetime", + 'user' => "strict str", + ], + 'arsse_tokens' => [ + 'id' => "strict str", + 'class' => "strict str", + 'user' => "strict str", + 'created' => "strict datetime", + 'expires' => "datetime", + 'data' => "str", + ], + 'arsse_feeds' => [ + 'id' => "int", + 'url' => "strict str", + 'title' => "str", + 'source' => "str", + 'updated' => "datetime", + 'modified' => "datetime", + 'next_fetch' => "datetime", + 'orphaned' => "datetime", + 'etag' => "strict str", + 'err_count' => "strict int", + 'err_msg' => "str", + 'username' => "strict str", + 'password' => "strict str", + 'size' => "strict int", + 'icon' => "int", + ], + 'arsse_icons' => [ + 'id' => "int", + 'url' => "strict str", + 'modified' => "datetime", + 'etag' => "strict str", + 'next_fetch' => "datetime", + 'orphaned' => "datetime", + 'type' => "str", + 'data' => "blob", + ], + 'arsse_articles' => [ + 'id' => "int", + 'feed' => "strict int", + 'url' => "str", + 'title' => "str", + 'author' => "str", + 'published' => "datetime", + 'edited' => "datetime", + 'modified' => "strict datetime", + 'guid' => "str", + 'url_title_hash' => "strict str", + 'url_content_hash' => "strict str", + 'title_content_hash' => "strict str", + 'content_scraped' => "str", + 'content' => "str", + ], + 'arsse_editions' => [ + 'id' => "int", + 'article' => "strict int", + 'modified' => "strict datetime", + ], + 'arsse_enclosures' => [ + 'article' => "strict int", + 'url' => "str", + 'type' => "str", + ], + 'arsse_categories' => [ + 'article' => "strict int", + 'name' => "str", + ], + 'arsse_marks' => [ + 'article' => "strict int", + 'subscription' => "strict int", + 'read' => "strict bool", + 'starred' => "strict bool", + 'modified' => "datetime", + 'note' => "strict str", + 'touched' => "strict bool", + 'hidden' => "strict bool", + ], + 'arsse_subscriptions' => [ + 'id' => "int", + 'owner' => "strict str", + 'feed' => "strict int", + 'added' => "strict datetime", + 'modified' => "strict datetime", + 'title' => "str", + 'order_type' => "strict int", + 'pinned' => "strict bool", + 'folder' => "int", + 'keep_rule' => "str", + 'block_rule' => "str", + 'scrape' => "strict bool", + ], + 'arsse_folders' => [ + 'id' => "int", + 'owner' => "strict str", + 'parent' => "int", + 'name' => "strict str", + 'modified' => "strict datetime", + ], + 'arsse_tags' => [ + 'id' => "int", + 'owner' => "strict str", + 'name' => "strict str", + 'modified' => "strict datetime", + ], + 'arsse_tag_members' => [ + 'tag' => "strict int", + 'subscription' => "strict int", + 'assigned' => "strict bool", + 'modified' => "strict datetime", + ], + 'arsse_labels' => [ + 'id' => "int", + 'owner' => "strict str", + 'name' => "strict str", + 'modified' => "strict datetime", + ], + 'arsse_label_members' => [ + 'label' => "strict int", + 'article' => "strict int", + 'subscription' => "strict int", + 'assigned' => "strict bool", + 'modified' => "strict datetime", + ], + ]; + protected $db = null; public function setUp(): void {