55 lines
1.3 KiB
PHP
55 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace Tests;
|
|
|
|
use Illuminate\Support\Arr;
|
|
use PHPUnit\Framework\Assert;
|
|
use Illuminate\Foundation\Testing\TestResponse;
|
|
use Illuminate\Foundation\Testing\TestCase as BaseTestCase;
|
|
|
|
abstract class TestCase extends BaseTestCase
|
|
{
|
|
use CreatesApplication;
|
|
|
|
protected function setUp(): void
|
|
{
|
|
parent::setUp();
|
|
|
|
TestResponse::macro('props', function ($key = null) {
|
|
$props = json_decode(json_encode($this->original->getData()['props']), JSON_OBJECT_AS_ARRAY);
|
|
|
|
if ($key) {
|
|
return Arr::get($props, $key);
|
|
}
|
|
|
|
return $props;
|
|
});
|
|
|
|
TestResponse::macro('assertHasProp', function ($key) {
|
|
Assert::assertTrue(Arr::has($this->props(), $key));
|
|
|
|
return $this;
|
|
});
|
|
|
|
TestResponse::macro('assertPropValue', function ($key, $value) {
|
|
$this->assertHasProp($key);
|
|
|
|
if (is_callable($value)) {
|
|
$value($this->props($key));
|
|
} else {
|
|
Assert::assertEquals($this->props($key), $value);
|
|
}
|
|
|
|
return $this;
|
|
});
|
|
|
|
TestResponse::macro('assertPropCount', function ($key, $count) {
|
|
$this->assertHasProp($key);
|
|
|
|
Assert::assertCount($count, $this->props($key));
|
|
|
|
return $this;
|
|
});
|
|
}
|
|
}
|