<?php
declare(strict_types=1);
namespace Tests\git2;
use git2\git;
use git2\git_filter_flag_t;
use git2\git_filter_list;
use git2\git_filter_mode_t;
final class FilterTest extends GitTestCase
{
public function testFilter(): void
{
git::repository_init($repo, $dir = $this->mkdir('filter'), false);
$this->assertOK(git::filter_list_load($filters, $repo, null, 'foo', git_filter_mode_t::TO_WORKTREE, git_filter_flag_t::DEFAULT));
$this->assertInstanceOf(git_filter_list::class, $filters);
$this->assertFalse(git::filter_list_contains($filters, 'foo'));
git::blob_create_from_buffer($id, $repo, 'foo');
git::blob_lookup($blob, $repo, $id);
$this->assertOK(git::filter_list_apply_to_blob($buf, $filters, $blob));
$this->assertSame('foo', (string) $buf);
$this->assertOK(git::filter_list_apply_to_buffer($buf2, $filters, 'foo'));
$this->assertSame('foo', (string) $buf2);
file_put_contents($dir . '/foo', 'foo');
$this->assertOK(git::filter_list_apply_to_file($buf3, $filters, $repo, 'foo'));
$this->assertSame('foo', (string) $buf3);
}
}