1
0
mirror of https://github.com/php/web-php.git synced 2026-03-23 23:02:13 +01:00
Files
archived-web-php/tests/Unit/News/NewsHandlerTest.php
2025-07-21 10:06:28 +08:00

58 lines
1.7 KiB
PHP

<?php
declare(strict_types=1);
namespace News;
use DateTimeImmutable;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\TestCase;
use phpweb\News\NewsHandler;
#[CoversClass(NewsHandler::class)]
final class NewsHandlerTest extends TestCase
{
public function testGetLastestNews(): void
{
$newsHandler = new NewsHandler();
$news = $newsHandler->getPregeneratedNews();
self::assertArrayHasKey(0, $news);
self::assertSame($news[0], $newsHandler->getLastestNews());
}
public function testGetConferences(): void
{
$conferences = (new NewsHandler())->getConferences();
self::assertNotEmpty($conferences);
foreach ($conferences as $conference) {
$isConference = false;
foreach ($conference['category'] as $category) {
if ($category['term'] === 'cfp' || $category['term'] === 'conferences') {
$isConference = true;
break;
}
}
self::assertTrue($isConference);
}
}
public function testGetNewsByYear(): void
{
$news = (new NewsHandler())->getNewsByYear(2018);
self::assertNotEmpty($news);
foreach ($news as $entry) {
self::assertSame('2018', (new DateTimeImmutable($entry['published']))->format('Y'));
}
}
public function testGetFrontPageNews(): void
{
$frontPage = (new NewsHandler())->getFrontPageNews();
self::assertCount(25, $frontPage);
foreach ($frontPage as $news) {
self::assertContains(['term' => 'frontpage', 'label' => 'PHP.net frontpage news'], $news['category']);
}
}
}