<?php declare(strict_types=1);

namespace Aviat\Kilo\Tests;

use Aviat\Kilo\Event;
use InvalidArgumentException;
use PHPUnit\Framework\TestCase;

class EventTest extends TestCase {
	public function testRequiresValidEvent(): void
	{
		$this->expectException(InvalidArgumentException::class);
		Event::on('badEventName', fn () => null);

		$this->expectException(InvalidArgumentException::class);
		Event::fire('badEventName', []);
	}

	public function testBindAndFire(): void
	{
		$fn = static function($value = false) {
			static::assertTrue($value);
		};
		Event::on(Event::INPUT_KEY, $fn);
		Event::fire(Event::INPUT_KEY, TRUE);
	}
}