bebat/filesystem-assertions

Collection of assertions about filesystem objects

1.1.0 2022-04-18 20:53 UTC

This package is auto-updated.

Last update: 2022-09-18 22:07:44 UTC


README

This is a small collection PHPUnit assertions for testing filesystem entries. It is meant to compliment the assertions already built into PHPunit.

Latest Stable Version License Acceptance Test Status Code Coverage

Table of Contents

Installation

Use Composer to install the current version of PHPUnit Filesystem Asserts from Packagist.

composer require --dev bebat/filesystem-assertions

The easiest way to add these assertions to your test case(s) is using a trait:

<?php

use BeBat\FilesystemAssertions\FilesystemAssertionsTrait;
use PHPUnit\Framework\TestCase;

class SomeTest extends TestCase
{
    use FilesystemAssertionsTrait;

    // ...
}

Available Assertions

// Assert that $directory contains one or more files.
assertDirectoryContainsFiles(string $directory, array $files, string $message = '');
assertDirectoryDoesNotContainFiles(string $directory, array $files, string $message = '')

// Assert that $file is owned by a user ID or name.
assertFileHasUserId(string $file, int $uid, string $message = '')
assertFileHasUser(string $file, string $user, string $message = '')
assertFileDoesNotHaveUserId(string $file, int $uid, string $message = '')
assertFileDoesNotHaveUser(string $file, string $user, string $message = '')

// Assert that $file has a group ID or name.
assertFileHasGroupId(string $file, int $gid, string $message = '')
assertFileHasGroup(string $file, string $group, string $message = '')
assertFileDoesNotHaveGroupId(string $file, int $gid, string $message = '')
assertFileDoesNotHaveGroup(string $file, string $group, string $message = '')

// Assert that $path is a regular file.
assertIsFile(string $path, string $message = '')
assertIsNotFile(string $path, string $message = '')

// Assert that $file is a symbolic link.
assertFileIsLink(string $file, string $message = '')
assertFileIsNotLink(string $file, string $message = '')

// Assert that $file is executable.
assertFileIsExecutable(string $file, string $message = '')
assertFileIsNotExecutable(string $file, string $message = '')

// Assert that $file is a symbolic link and points to $target.
assertSymbolicLinkPointsTo(string $file, string $target, string $message = '')
assertSymbolicLinkDoesNotPointTo(string $file, string $target, string $message = '')

// Assert that $file's permissions are exactly an octal string (or integer).
assertFilePermissionsEqual(string $file, $perms, string $message = '')
assertFilePermissionsDoNotEqual(string $file, $perms, string $message = '')

// Assert that $file's permissions MATCH an octal string (or integer).
// For example, if a file has permissions 755, 644 would match but 422 would NOT.
assertFilePermissionsMatch(string $file, $perms, string $message = '')
assertFilePermissionsDoNotMatch(string $file, $perms, string $message = '')