59 public function pass($userModel = null, $groupModel = null, $roleModel = null)
61 $this->passes[] = $this->
parseArguments($userModel, $groupModel, $roleModel);
73 private function parseArguments($userModel = null, $groupModel = null, $roleModel = null)
75 return [($userModel instanceof User ? $userModel->id() : null), ($groupModel instanceof Group ? $groupModel->id() : null), ($roleModel instanceof Role ? $roleModel->id() : null)];
86 public function fail($userModel = null, $groupModel = null, $roleModel = null)
88 $this->fails[] = $this->
parseArguments($userModel, $groupModel, $roleModel);
100 public function shouldBeCalled($userModel = null, $groupModel = null, $roleModel = null)
102 $this->required[] = $this->
parseArguments($userModel, $groupModel, $roleModel);
114 $this->
default = $value;
123 $this->overrideResult =
true;
131 $this->overrideResult =
false;
142 public function evaluate($userModel = null, $groupModel = null, $roleModel = null): bool
144 $args = $this->
parseArguments($userModel, $groupModel, $roleModel);
145 $this->required = array_filter($this->required,
function($parameters) use ($args) {
146 return $parameters !== $args;
149 if ($this->overrideResult !== null) {
153 if (in_array($args, $this->passes)) {
156 if (in_array($args, $this->fails)) {
167 Assert::assertCount(0, $this->required,
'Not all logic tests have been called.');
shouldBeCalled($userModel=null, $groupModel=null, $roleModel=null)
parseArguments($userModel=null, $groupModel=null, $roleModel=null)
evaluate($userModel=null, $groupModel=null, $roleModel=null)
fail($userModel=null, $groupModel=null, $roleModel=null)
pass($userModel=null, $groupModel=null, $roleModel=null)
otherwise(bool $value=true)