<?php
declare(strict_types=1);
namespace Tests\git2;
use git2\git;
use git2\git_error_code;
use git2\git_time;
final class SignatureTest extends GitTestCase
{
public function testDefault(): void
{
$dir = $this->mkdir('default');
$this->assertOK(git::repository_init($repo, $dir, false));
$this->assertOK(git::repository_config($config, $repo));
$this->assertOK(git::config_set_string($config, 'user.name', 'John Doe'));
$this->assertOK(git::config_set_string($config, 'user.email', 'john.doe@example.com'));
$this->assertOK(git::signature_default($sig, $repo));
$this->assertSame('John Doe', $sig->name);
$this->assertSame('john.doe@example.com', $sig->email);
$this->assertOK(git::config_set_string($config, 'user.name', ''));
$this->assertOK(git::config_set_string($config, 'user.email', ''));
$this->assertSame(git_error_code::ERROR, git::signature_default($sig, $repo));
}
public function testNew(): void
{
$this->assertOK(git::signature_new(
$sig,
'John Doe', 'john.doe@example.com',
1640165957, 60,
));
$this->assertSame('John Doe', $sig->name);
$this->assertSame('john.doe@example.com', $sig->email);
$this->assertInstanceOf(git_time::class, $sig->when);
$this->assertSame(1640165957, $sig->when->time);
$this->assertSame(60, $sig->when->offset);
$this->assertSame('+', $sig->when->sign);
}
public function testNow(): void
{
$this->assertOK(git::signature_now($sig, 'John Doe', 'john.doe@example.com'));
$this->assertSame('John Doe', $sig->name);
$this->assertSame('john.doe@example.com', $sig->email);
}
}