Merge pull request #947 from ludoguenet/2.x

[2.x] Add `toHaveMethod` arch expectation
This commit is contained in:
Nuno Maduro
2023-09-03 21:32:01 +01:00
committed by GitHub
9 changed files with 120 additions and 21 deletions

View File

@ -501,6 +501,19 @@ final class Expectation
);
}
/**
* Asserts that the given expectation target has a specific method.
*/
public function toHaveMethod(string $method): ArchExpectation
{
return Targeted::make(
$this,
fn (ObjectDescription $object): bool => $object->reflectionClass->hasMethod($method),
'to have method',
FileLineFinder::where(fn (string $line): bool => str_contains($line, 'class')),
);
}
/**
* Asserts that the given expectation target is enum.
*/

View File

@ -149,6 +149,19 @@ final class OppositeExpectation
);
}
/**
* Asserts that the given expectation target does not have a specific method.
*/
public function toHaveMethod(string $method): ArchExpectation
{
return Targeted::make(
$this->original,
fn (ObjectDescription $object): bool => ! $object->reflectionClass->hasMethod($method),
'to not have method',
FileLineFinder::where(fn (string $line): bool => str_contains($line, 'class')),
);
}
/**
* Asserts that the given expectation target is not enum.
*/