<?php
declare(strict_types=1);
namespace Tests\git2;
use git2\git;
use git2\git_error;
use git2\git_error_code;
use git2\git_error_t;
final class ErrorTest extends GitTestCase
{
public function testError(): void
{
$this->assertNull(git::error_last());
$this->assertSame(git_error_code::ENOTFOUND, git::repository_open($_, 'foo'));
$error = git::error_last();
$this->assertInstanceOf(git_error::class, $error);
$this->assertStringStartsWith('failed to resolve path', $error->message);
$this->assertSame(git_error_t::OS, $error->klass);
$this->assertOK(git::error_set_str(git_error_t::DESCRIBE, 'test'));
$error = git::error_last();
$this->assertSame('test', $error->message);
$this->assertSame(git_error_t::DESCRIBE, $error->klass);
git::error_clear();
$this->assertNull(git::error_last());
git::error_set_oom();
$error = git::error_last();
$this->assertSame('Out of memory', $error->message);
$this->assertSame(git_error_t::NOMEMORY, $error->klass);
}
}