Files

81 lines
2.4 KiB
PHP
Raw Permalink Normal View History

<?php
namespace MintyPHP\Tests\Service\Ui;
use MintyPHP\Service\Ui\HotkeyService;
use PHPUnit\Framework\TestCase;
class HotkeyServiceTest extends TestCase
{
public function testListReturnsNonEmptyArray(): void
{
$result = HotkeyService::list();
$this->assertNotEmpty($result);
}
public function testListEntriesHaveRequiredKeys(): void
{
$result = HotkeyService::list();
foreach ($result as $index => $entry) {
$this->assertArrayHasKey('action_key', $entry, "Entry #{$index} is missing 'action_key'");
$this->assertArrayHasKey('mac', $entry, "Entry #{$index} is missing 'mac'");
$this->assertArrayHasKey('win', $entry, "Entry #{$index} is missing 'win'");
$this->assertNotEmpty($entry['action_key'], "Entry #{$index} has empty 'action_key'");
$this->assertNotEmpty($entry['mac'], "Entry #{$index} has empty 'mac'");
$this->assertNotEmpty($entry['win'], "Entry #{$index} has empty 'win'");
}
}
public function testListEntriesHaveExactlyThreeKeys(): void
{
$result = HotkeyService::list();
foreach ($result as $index => $entry) {
$this->assertCount(3, $entry, "Entry #{$index} should have exactly 3 keys");
}
}
public function testSearchKeywordsReturnsNonEmptyArray(): void
{
$result = HotkeyService::searchKeywords();
$this->assertNotEmpty($result);
}
public function testSearchKeywordsContainsExpectedTerms(): void
{
$result = HotkeyService::searchKeywords();
$this->assertContains('hotkey', $result);
$this->assertContains('shortcut', $result);
$this->assertContains('keyboard', $result);
}
public function testSearchKeywordsAreAllStrings(): void
{
$result = HotkeyService::searchKeywords();
foreach ($result as $keyword) {
$this->assertNotEmpty($keyword);
}
}
public function testListReturnsDeterministicResult(): void
{
$first = HotkeyService::list();
$second = HotkeyService::list();
$this->assertSame($first, $second);
}
public function testSearchKeywordsReturnsDeterministicResult(): void
{
$first = HotkeyService::searchKeywords();
$second = HotkeyService::searchKeywords();
$this->assertSame($first, $second);
}
}