Merge pull request #129 from ceceppa/feat/expect

Feat/expect
This commit is contained in:
Nuno Maduro
2020-07-18 18:29:32 +02:00
committed by GitHub
7 changed files with 140 additions and 2 deletions

View File

@ -372,6 +372,46 @@ final class Expectation
return $this; return $this;
} }
/**
* Assert that the value array has the key.
*/
public function toHaveKey(string $key): Expectation
{
Assert::assertArrayHasKey($key, $this->value);
return $this;
}
/**
* Assert that the value is a directory.
*/
public function toBeDirectory(): Expectation
{
Assert::assertDirectoryExists($this->value);
return $this;
}
/**
* Assert that the value is a directory and is readable.
*/
public function toBeReadableDirectory(): Expectation
{
Assert::assertDirectoryIsReadable($this->value);
return $this;
}
/**
* Assert that the value is a directory and is writable.
*/
public function toBeWritableDirectory(): Expectation
{
Assert::assertDirectoryIsWritable($this->value);
return $this;
}
/** /**
* Dynamically calls methods on the class without any arguments. * Dynamically calls methods on the class without any arguments.
* *

View File

@ -24,6 +24,11 @@
PASS Tests\Expect\toBeCallable PASS Tests\Expect\toBeCallable
✓ pass ✓ pass
✓ failures ✓ failures
✓ not failures
PASS Tests\Expect\toBeDirectory
✓ pass
✓ failures
✓ not failures ✓ not failures
PASS Tests\Expect\toBeEmpty PASS Tests\Expect\toBeEmpty
@ -99,6 +104,11 @@
PASS Tests\Expect\toBeObject PASS Tests\Expect\toBeObject
✓ pass ✓ pass
✓ failures ✓ failures
✓ not failures
PASS Tests\Expect\toBeReadableDirectory
✓ pass
✓ failures
✓ not failures ✓ not failures
PASS Tests\Expect\toBeResource PASS Tests\Expect\toBeResource
@ -119,6 +129,11 @@
PASS Tests\Expect\toBeTrue PASS Tests\Expect\toBeTrue
✓ strict comparisons ✓ strict comparisons
✓ failures ✓ failures
✓ not failures
PASS Tests\Expect\toBeWritableDirectory
✓ pass
✓ failures
✓ not failures ✓ not failures
PASS Tests\Expect\toContain PASS Tests\Expect\toContain
@ -140,6 +155,11 @@
PASS Tests\Expect\toHaveCount PASS Tests\Expect\toHaveCount
✓ pass ✓ pass
✓ failures ✓ failures
✓ not failures
PASS Tests\Expect\toHaveKey
✓ pass
✓ failures
✓ not failures ✓ not failures
PASS Tests\Expect\toHaveProperty PASS Tests\Expect\toHaveProperty
@ -312,5 +332,5 @@
WARN Tests\Visual\Success WARN Tests\Visual\Success
- visual snapshot of test suite on success - visual snapshot of test suite on success
Tests: 6 skipped, 183 passed Tests: 6 skipped, 195 passed
Time: 5.77s Time: 5.27s

View File

@ -0,0 +1,17 @@
<?php
use PHPUnit\Framework\ExpectationFailedException;
test('pass', function () {
$temp = sys_get_temp_dir();
expect($temp)->toBeDirectory();
});
test('failures', function () {
expect('/random/path/whatever')->toBeDirectory();
})->throws(ExpectationFailedException::class);
test('not failures', function () {
expect('.')->not->toBeDirectory();
})->throws(ExpectationFailedException::class);

View File

@ -0,0 +1,15 @@
<?php
use PHPUnit\Framework\ExpectationFailedException;
test('pass', function () {
expect(sys_get_temp_dir())->toBeWritableDirectory();
});
test('failures', function () {
expect('/random/path/whatever')->toBeWritableDirectory();
})->throws(ExpectationFailedException::class);
test('not failures', function () {
expect(sys_get_temp_dir())->not->toBeWritableDirectory();
})->throws(ExpectationFailedException::class);

View File

@ -0,0 +1,15 @@
<?php
use PHPUnit\Framework\ExpectationFailedException;
test('pass', function () {
expect(sys_get_temp_dir())->toBeWritableDirectory();
});
test('failures', function () {
expect('/random/path/whatever')->toBeWritableDirectory();
})->throws(ExpectationFailedException::class);
test('not failures', function () {
expect(sys_get_temp_dir())->not->toBeWritableDirectory();
})->throws(ExpectationFailedException::class);

View File

@ -0,0 +1,16 @@
<?php
use PHPUnit\Framework\ExpectationFailedException;
test('pass', function () {
expect([1, 2, 3])->toEqualCanonicalizing([3, 1, 2]);
expect(['g', 'a', 'z'])->not->toEqualCanonicalizing(['a', 'z']);
});
test('failures', function () {
expect([3, 2, 1])->toEqualCanonicalizing([1, 2]);
})->throws(ExpectationFailedException::class);
test('not failures', function () {
expect(['a', 'b', 'c'])->not->toEqualCanonicalizing(['b', 'a', 'c']);
})->throws(ExpectationFailedException::class);

View File

@ -0,0 +1,15 @@
<?php
use PHPUnit\Framework\ExpectationFailedException;
test('pass', function () {
expect(['a' => 1, 'b', 'c' => 'world'])->toHaveKey('c');
});
test('failures', function () {
expect(['a' => 1, 'b', 'c' => 'world'])->toHaveKey('hello');
})->throws(ExpectationFailedException::class);
test('not failures', function () {
expect(['a' => 1, 'hello' => 'world', 'c'])->not->toHaveKey('hello');
})->throws(ExpectationFailedException::class);