create([ 'type' => 'rss', 'url' => 'https://example.com/feed.rss' ]); $result = ArticleFetcher::getArticlesFromFeed($feed); $this->assertInstanceOf(\Illuminate\Support\Collection::class, $result); } public function test_get_articles_from_rss_feed_returns_empty_collection(): void { $feed = Feed::factory()->create([ 'type' => 'rss', 'url' => 'https://example.com/feed.rss' ]); $result = ArticleFetcher::getArticlesFromFeed($feed); // RSS parsing is not implemented yet, should return empty collection $this->assertEmpty($result); } public function test_get_articles_from_website_feed_handles_no_parser(): void { $feed = Feed::factory()->create([ 'type' => 'website', 'url' => 'https://unsupported-site.com/' ]); $result = ArticleFetcher::getArticlesFromFeed($feed); // Should return empty collection when no parser is available $this->assertInstanceOf(\Illuminate\Support\Collection::class, $result); $this->assertEmpty($result); } public function test_get_articles_from_unsupported_feed_type(): void { $feed = Feed::factory()->create([ 'type' => 'website', // Use valid type but with unsupported URL 'url' => 'https://unsupported-feed-type.com/feed' ]); $result = ArticleFetcher::getArticlesFromFeed($feed); $this->assertInstanceOf(\Illuminate\Support\Collection::class, $result); $this->assertEmpty($result); } public function test_fetch_article_data_returns_array(): void { $article = Article::factory()->create([ 'url' => 'https://example.com/article' ]); $result = ArticleFetcher::fetchArticleData($article); $this->assertIsArray($result); // Will be empty array due to unsupported URL in test $this->assertEmpty($result); } public function test_fetch_article_data_handles_invalid_url(): void { $article = Article::factory()->create([ 'url' => 'invalid-url' ]); $result = ArticleFetcher::fetchArticleData($article); $this->assertIsArray($result); $this->assertEmpty($result); } }