class AssertableJson implements Arrayable (View source)

Traits

Properties

protected array $interacted

The list of interacted properties.

from  Interaction
static protected array $macros

The registered string macros.

from  Macroable

Methods

Has
count(string|int $key, int $length = null)

Assert that the prop is of the expected size.

from  Has
$this
has(string $key, null $value = null, Closure $scope = null)

Ensure that the given prop exists.

from  Matching
Has
hasAll(array|string $key)

Assert that all of the given props exist.

from  Has
Has
missingAll(array|string $key)

Assert that none of the given props exist.

from  Has
Has
missing(string $key)

Assert that the given prop does not exist.

from  Has
string
dotPath(string $key = '')

Compose the absolute "dot" path to the given key.

void
interactsWith(string $key)

Marks the property as interacted.

mixed
prop(string $key = null)

Retrieve a prop within the current scope using "dot" notation.

scope(string $key, Closure $callback)

Instantiate a new "scope" at the path of the given key.

etc()

Disables the interaction check.

first(Closure $callback)

Instantiate a new "scope" on the first child element.

where(string $key, mixed|Closure $expected)

Asserts that the property matches the expected value.

from  Matching
whereAll(array $bindings)

Asserts that all properties match their expected values.

from  Matching
whereType(string $key, string|array $expected)

Asserts that the property is of the expected type.

from  Matching
whereAllType(array $bindings)

Asserts that all properties are of their expected types.

from  Matching
$this
whereContains(string $key, array|string $expected)

Asserts that the property contains the expected values.

from  Matching
void
ensureSorted(mixed $value)

Ensures that all properties are sorted the same way, recursively.

from  Matching
dump(string $prop = null)

Dumps the given props.

void
dd(string $prop = null)

Dumps the given props and exits.

void
interacted()

Asserts that all properties have been interacted with.

static void
macro(string $name, object|callable $macro)

Register a custom macro.

static void
mixin(object $mixin, bool $replace = true)

Mix another object into the class.

static bool
hasMacro(string $name)

Checks if macro is registered.

static mixed
__callStatic(string $method, array $parameters)

Dynamically handle calls to the class.

mixed
__call(string $method, array $parameters)

Dynamically handle calls to the class.

mixed
tap(callable|null $callback = null)

Call the given Closure with this instance then return the instance.

from  Tappable
void
__construct(array $props, string $path = null)

Create a new fluent, assertable JSON data instance.

each(Closure $callback)

Instantiate a new "scope" on each child element.

static AssertableJson
fromArray(array $data)

Create a new instance from an array.

static AssertableJson
fromAssertableJsonString(AssertableJsonString $json)

Create a new instance from a AssertableJsonString.

array
toArray()

Get the instance as an array.

Details

Has count(string|int $key, int $length = null)

Assert that the prop is of the expected size.

Parameters

string|int $key
int $length

Return Value

Has

abstract $this has(string $key, null $value = null, Closure $scope = null)

Ensure that the given prop exists.

Parameters

string $key
null $value
Closure $scope

Return Value

$this

Has hasAll(array|string $key)

Assert that all of the given props exist.

Parameters

array|string $key

Return Value

Has

Has missingAll(array|string $key)

Assert that none of the given props exist.

Parameters

array|string $key

Return Value

Has

Has missing(string $key)

Assert that the given prop does not exist.

Parameters

string $key

Return Value

Has

protected string dotPath(string $key = '')

Compose the absolute "dot" path to the given key.

Parameters

string $key

Return Value

string

protected void interactsWith(string $key)

Marks the property as interacted.

Parameters

string $key

Return Value

void

protected mixed prop(string $key = null)

Retrieve a prop within the current scope using "dot" notation.

Parameters

string $key

Return Value

mixed

protected AssertableJson scope(string $key, Closure $callback)

Instantiate a new "scope" at the path of the given key.

Parameters

string $key
Closure $callback

Return Value

AssertableJson

Interaction etc()

Disables the interaction check.

Return Value

Interaction

AssertableJson first(Closure $callback)

Instantiate a new "scope" on the first child element.

Parameters

Closure $callback

Return Value

AssertableJson

Matching where(string $key, mixed|Closure $expected)

Asserts that the property matches the expected value.

Parameters

string $key
mixed|Closure $expected

Return Value

Matching

Matching whereAll(array $bindings)

Asserts that all properties match their expected values.

Parameters

array $bindings

Return Value

Matching

Matching whereType(string $key, string|array $expected)

Asserts that the property is of the expected type.

Parameters

string $key
string|array $expected

Return Value

Matching

Matching whereAllType(array $bindings)

Asserts that all properties are of their expected types.

Parameters

array $bindings

Return Value

Matching

$this whereContains(string $key, array|string $expected)

Asserts that the property contains the expected values.

Parameters

string $key
array|string $expected

Return Value

$this

protected void ensureSorted(mixed $value)

Ensures that all properties are sorted the same way, recursively.

Parameters

mixed $value

Return Value

void

Debugging dump(string $prop = null)

Dumps the given props.

Parameters

string $prop

Return Value

Debugging

void dd(string $prop = null)

Dumps the given props and exits.

Parameters

string $prop

Return Value

void

void interacted()

Asserts that all properties have been interacted with.

Return Value

void

static void macro(string $name, object|callable $macro)

Register a custom macro.

Parameters

string $name
object|callable $macro

Return Value

void

static void mixin(object $mixin, bool $replace = true)

Mix another object into the class.

Parameters

object $mixin
bool $replace

Return Value

void

Exceptions

ReflectionException

static bool hasMacro(string $name)

Checks if macro is registered.

Parameters

string $name

Return Value

bool

static mixed __callStatic(string $method, array $parameters)

Dynamically handle calls to the class.

Parameters

string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

mixed __call(string $method, array $parameters)

Dynamically handle calls to the class.

Parameters

string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

mixed tap(callable|null $callback = null)

Call the given Closure with this instance then return the instance.

Parameters

callable|null $callback

Return Value

mixed

protected void __construct(array $props, string $path = null)

Create a new fluent, assertable JSON data instance.

Parameters

array $props
string $path

Return Value

void

AssertableJson each(Closure $callback)

Instantiate a new "scope" on each child element.

Parameters

Closure $callback

Return Value

AssertableJson

static AssertableJson fromArray(array $data)

Create a new instance from an array.

Parameters

array $data

Return Value

AssertableJson

static AssertableJson fromAssertableJsonString(AssertableJsonString $json)

Create a new instance from a AssertableJsonString.

Parameters

AssertableJsonString $json

Return Value

AssertableJson

array toArray()

Get the instance as an array.

Return Value

array