From 72e1f72aa45d53bf208639cd2e0ebfd88d56274d Mon Sep 17 00:00:00 2001 From: Herberto Graca Date: Mon, 18 Sep 2023 19:27:55 +0200 Subject: [PATCH] Make the Expression $because be empty by default This will make it easier to use in cases where we can not provide a reason, namely in automatically built rules. The system is already prepared to receive an empty reason, and will not write the "because" word in the output. --- src/Expression/Boolean/Andx.php | 4 ++-- src/Expression/Boolean/Not.php | 4 ++-- src/Expression/Boolean/Orx.php | 4 ++-- src/Expression/Expression.php | 8 ++++---- src/Expression/ForClasses/ContainDocBlockLike.php | 4 ++-- .../ForClasses/DependsOnlyOnTheseExpressions.php | 4 ++-- .../ForClasses/DependsOnlyOnTheseNamespaces.php | 4 ++-- src/Expression/ForClasses/Extend.php | 4 ++-- src/Expression/ForClasses/HaveAttribute.php | 4 ++-- src/Expression/ForClasses/HaveCorrespondingUnit.php | 4 ++-- src/Expression/ForClasses/HaveNameMatching.php | 4 ++-- src/Expression/ForClasses/Implement.php | 4 ++-- src/Expression/ForClasses/IsA.php | 4 ++-- src/Expression/ForClasses/IsAbstract.php | 4 ++-- src/Expression/ForClasses/IsEnum.php | 4 ++-- src/Expression/ForClasses/IsFinal.php | 4 ++-- src/Expression/ForClasses/IsInterface.php | 4 ++-- src/Expression/ForClasses/IsMapped.php | 4 ++-- src/Expression/ForClasses/IsNotAbstract.php | 4 ++-- src/Expression/ForClasses/IsNotEnum.php | 4 ++-- src/Expression/ForClasses/IsNotFinal.php | 4 ++-- src/Expression/ForClasses/IsNotInterface.php | 4 ++-- src/Expression/ForClasses/IsNotTrait.php | 4 ++-- src/Expression/ForClasses/IsTrait.php | 4 ++-- src/Expression/ForClasses/MatchOneOfTheseNames.php | 4 ++-- src/Expression/ForClasses/NotContainDocBlockLike.php | 4 ++-- src/Expression/ForClasses/NotDependsOnTheseNamespaces.php | 4 ++-- src/Expression/ForClasses/NotExtend.php | 4 ++-- .../ForClasses/NotHaveDependencyOutsideNamespace.php | 4 ++-- src/Expression/ForClasses/NotHaveNameMatching.php | 4 ++-- src/Expression/ForClasses/NotImplement.php | 4 ++-- src/Expression/ForClasses/NotResideInTheseNamespaces.php | 4 ++-- .../ForClasses/ResideInOneOfTheseNamespaces.php | 4 ++-- tests/Unit/Rules/ConstraintsTest.php | 8 ++++---- 34 files changed, 72 insertions(+), 72 deletions(-) diff --git a/src/Expression/Boolean/Andx.php b/src/Expression/Boolean/Andx.php index 5f4cb222..d5b93f64 100644 --- a/src/Expression/Boolean/Andx.php +++ b/src/Expression/Boolean/Andx.php @@ -21,7 +21,7 @@ public function __construct(Expression ...$expressions) $this->expressions = $expressions; } - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { $expressionsDescriptions = []; foreach ($this->expressions as $expression) { @@ -34,7 +34,7 @@ public function describe(ClassDescription $theClass, string $because): Descripti return new Description($expressionsDescriptionsString, $because); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { foreach ($this->expressions as $expression) { $newViolations = new Violations(); diff --git a/src/Expression/Boolean/Not.php b/src/Expression/Boolean/Not.php index 3db76654..bf018f6e 100644 --- a/src/Expression/Boolean/Not.php +++ b/src/Expression/Boolean/Not.php @@ -21,12 +21,12 @@ public function __construct(Expression $expression) $this->expression = $expression; } - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { return new Description('must NOT ('.$this->expression->describe($theClass, '')->toString().')', $because); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { $newViolations = new Violations(); $this->expression->evaluate($theClass, $newViolations, $because); diff --git a/src/Expression/Boolean/Orx.php b/src/Expression/Boolean/Orx.php index 91980f4b..34b43ec8 100644 --- a/src/Expression/Boolean/Orx.php +++ b/src/Expression/Boolean/Orx.php @@ -20,7 +20,7 @@ public function __construct(Expression ...$expressions) $this->expressions = $expressions; } - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { $expressionsDescriptions = []; foreach ($this->expressions as $expression) { @@ -31,7 +31,7 @@ public function describe(ClassDescription $theClass, string $because): Descripti return new Description($expressionsDescriptionsString, $because); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { if (0 === \count($this->expressions)) { return; diff --git a/src/Expression/Expression.php b/src/Expression/Expression.php index 79c8d4b3..83565df3 100644 --- a/src/Expression/Expression.php +++ b/src/Expression/Expression.php @@ -15,14 +15,14 @@ interface Expression { /** - * Returns a human readable description of the expression + * Returns a human-readable description of the expression * $theClass can be used to add contextual information. */ - public function describe(ClassDescription $theClass, string $because): Description; + public function describe(ClassDescription $theClass, string $because = ''): Description; /** * Evaluates the expression for the class passed as parameter. - * It should adds violations if rule is violated. + * It should add violations if rule is violated. */ - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void; + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void; } diff --git a/src/Expression/ForClasses/ContainDocBlockLike.php b/src/Expression/ForClasses/ContainDocBlockLike.php index 08d49a92..f3fea26d 100644 --- a/src/Expression/ForClasses/ContainDocBlockLike.php +++ b/src/Expression/ForClasses/ContainDocBlockLike.php @@ -21,12 +21,12 @@ public function __construct(string $docBlock) $this->docBlock = $docBlock; } - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { return new Description("should have a doc block that contains {$this->docBlock}", $because); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { if (!$theClass->containsDocBlock($this->docBlock)) { $violation = Violation::create( diff --git a/src/Expression/ForClasses/DependsOnlyOnTheseExpressions.php b/src/Expression/ForClasses/DependsOnlyOnTheseExpressions.php index 31ce0778..af245436 100644 --- a/src/Expression/ForClasses/DependsOnlyOnTheseExpressions.php +++ b/src/Expression/ForClasses/DependsOnlyOnTheseExpressions.php @@ -31,7 +31,7 @@ public function __construct(Expression ...$expressions) } } - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { $expressionsDescriptions = ''; foreach ($this->expressions as $expression) { @@ -45,7 +45,7 @@ public function describe(ClassDescription $theClass, string $because): Descripti ); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { $dependencies = $this->removeDuplicateDependencies($theClass->getDependencies()); diff --git a/src/Expression/ForClasses/DependsOnlyOnTheseNamespaces.php b/src/Expression/ForClasses/DependsOnlyOnTheseNamespaces.php index 55a346f3..ad81319c 100644 --- a/src/Expression/ForClasses/DependsOnlyOnTheseNamespaces.php +++ b/src/Expression/ForClasses/DependsOnlyOnTheseNamespaces.php @@ -22,14 +22,14 @@ public function __construct(string ...$namespace) $this->namespaces = $namespace; } - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { $desc = implode(', ', $this->namespaces); return new Description("should depend only on classes in one of these namespaces: $desc", $because); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { $dependencies = $theClass->getDependencies(); diff --git a/src/Expression/ForClasses/Extend.php b/src/Expression/ForClasses/Extend.php index b27947c5..487ec8f6 100644 --- a/src/Expression/ForClasses/Extend.php +++ b/src/Expression/ForClasses/Extend.php @@ -21,12 +21,12 @@ public function __construct(string $className) $this->className = $className; } - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { return new Description("should extend {$this->className}", $because); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { $extends = $theClass->getExtends(); diff --git a/src/Expression/ForClasses/HaveAttribute.php b/src/Expression/ForClasses/HaveAttribute.php index 8a542fdf..461669e8 100644 --- a/src/Expression/ForClasses/HaveAttribute.php +++ b/src/Expression/ForClasses/HaveAttribute.php @@ -20,12 +20,12 @@ public function __construct(string $attribute) $this->attribute = $attribute; } - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { return new Description("should have the attribute {$this->attribute}", $because); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { if ($theClass->hasAttribute($this->attribute)) { return; diff --git a/src/Expression/ForClasses/HaveCorrespondingUnit.php b/src/Expression/ForClasses/HaveCorrespondingUnit.php index 6ac84dfb..e798ce6d 100644 --- a/src/Expression/ForClasses/HaveCorrespondingUnit.php +++ b/src/Expression/ForClasses/HaveCorrespondingUnit.php @@ -20,14 +20,14 @@ public function __construct(\Closure $inferFqnFunction) $this->inferFqnFunction = $inferFqnFunction; } - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { $correspondingFqn = $this->inferCorrespondingFqn($theClass); return new Description("should have a matching unit named: '$correspondingFqn'", $because); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { $correspondingFqn = $this->inferCorrespondingFqn($theClass); diff --git a/src/Expression/ForClasses/HaveNameMatching.php b/src/Expression/ForClasses/HaveNameMatching.php index 858c3928..c807b4ee 100644 --- a/src/Expression/ForClasses/HaveNameMatching.php +++ b/src/Expression/ForClasses/HaveNameMatching.php @@ -22,12 +22,12 @@ public function __construct(string $name) $this->name = $name; } - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { return new Description("should have a name that matches {$this->name}", $because); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { $fqcn = FullyQualifiedClassName::fromString($theClass->getFQCN()); if (!$fqcn->classMatches($this->name)) { diff --git a/src/Expression/ForClasses/Implement.php b/src/Expression/ForClasses/Implement.php index b097a865..78a3c19d 100644 --- a/src/Expression/ForClasses/Implement.php +++ b/src/Expression/ForClasses/Implement.php @@ -22,12 +22,12 @@ public function __construct(string $interface) $this->interface = $interface; } - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { return new Description("should implement {$this->interface}", $because); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { if ($theClass->isInterface() || $theClass->isTrait()) { return; diff --git a/src/Expression/ForClasses/IsA.php b/src/Expression/ForClasses/IsA.php index be7b2ee2..028c7756 100644 --- a/src/Expression/ForClasses/IsA.php +++ b/src/Expression/ForClasses/IsA.php @@ -24,14 +24,14 @@ public function __construct(string ...$allowedFqcnList) $this->allowedFqcnList = $allowedFqcnList; } - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { $allowedFqcnList = implode(', ', $this->allowedFqcnList); return new Description("should inherit from one of: $allowedFqcnList", $because); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { if (!$this->isA($theClass, ...$this->allowedFqcnList)) { $violation = Violation::create( diff --git a/src/Expression/ForClasses/IsAbstract.php b/src/Expression/ForClasses/IsAbstract.php index 3a58908e..6b233c33 100644 --- a/src/Expression/ForClasses/IsAbstract.php +++ b/src/Expression/ForClasses/IsAbstract.php @@ -13,12 +13,12 @@ class IsAbstract implements Expression { - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { return new Description("{$theClass->getName()} should be abstract", $because); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { if ($theClass->isAbstract()) { return; diff --git a/src/Expression/ForClasses/IsEnum.php b/src/Expression/ForClasses/IsEnum.php index 34e3c0a9..ed652a46 100644 --- a/src/Expression/ForClasses/IsEnum.php +++ b/src/Expression/ForClasses/IsEnum.php @@ -13,12 +13,12 @@ class IsEnum implements Expression { - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { return new Description("{$theClass->getName()} should be an enum", $because); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { if ($theClass->isEnum()) { return; diff --git a/src/Expression/ForClasses/IsFinal.php b/src/Expression/ForClasses/IsFinal.php index 968efc43..5cedd300 100644 --- a/src/Expression/ForClasses/IsFinal.php +++ b/src/Expression/ForClasses/IsFinal.php @@ -13,12 +13,12 @@ class IsFinal implements Expression { - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { return new Description("{$theClass->getName()} should be final", $because); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { if ($theClass->isAbstract() || $theClass->isInterface() || $theClass->isFinal() || $theClass->isTrait() || $theClass->isEnum()) { diff --git a/src/Expression/ForClasses/IsInterface.php b/src/Expression/ForClasses/IsInterface.php index d6c9ffde..62287b2a 100644 --- a/src/Expression/ForClasses/IsInterface.php +++ b/src/Expression/ForClasses/IsInterface.php @@ -13,12 +13,12 @@ class IsInterface implements Expression { - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { return new Description("{$theClass->getName()} should be an interface", $because); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { if ($theClass->isInterface()) { return; diff --git a/src/Expression/ForClasses/IsMapped.php b/src/Expression/ForClasses/IsMapped.php index 70cd0f77..8cefbba7 100644 --- a/src/Expression/ForClasses/IsMapped.php +++ b/src/Expression/ForClasses/IsMapped.php @@ -23,12 +23,12 @@ public function __construct(array $list) $this->list = array_flip($list); } - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { return new Description(self::POSITIVE_DESCRIPTION, $because); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { if (isset($this->list[$theClass->getFQCN()])) { return; diff --git a/src/Expression/ForClasses/IsNotAbstract.php b/src/Expression/ForClasses/IsNotAbstract.php index 73eca2fb..d15be1a1 100644 --- a/src/Expression/ForClasses/IsNotAbstract.php +++ b/src/Expression/ForClasses/IsNotAbstract.php @@ -13,12 +13,12 @@ class IsNotAbstract implements Expression { - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { return new Description("{$theClass->getName()} should not be abstract", $because); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { if (!$theClass->isAbstract()) { return; diff --git a/src/Expression/ForClasses/IsNotEnum.php b/src/Expression/ForClasses/IsNotEnum.php index b8a412d5..edd6a518 100644 --- a/src/Expression/ForClasses/IsNotEnum.php +++ b/src/Expression/ForClasses/IsNotEnum.php @@ -13,12 +13,12 @@ class IsNotEnum implements Expression { - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { return new Description("{$theClass->getName()} should not be an enum", $because); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { if (false === $theClass->isEnum()) { return; diff --git a/src/Expression/ForClasses/IsNotFinal.php b/src/Expression/ForClasses/IsNotFinal.php index 7557099d..913d5359 100644 --- a/src/Expression/ForClasses/IsNotFinal.php +++ b/src/Expression/ForClasses/IsNotFinal.php @@ -13,12 +13,12 @@ class IsNotFinal implements Expression { - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { return new Description("{$theClass->getName()} should not be final", $because); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { if (!$theClass->isFinal()) { return; diff --git a/src/Expression/ForClasses/IsNotInterface.php b/src/Expression/ForClasses/IsNotInterface.php index 7f0768d9..bf5165b6 100644 --- a/src/Expression/ForClasses/IsNotInterface.php +++ b/src/Expression/ForClasses/IsNotInterface.php @@ -13,12 +13,12 @@ class IsNotInterface implements Expression { - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { return new Description("{$theClass->getName()} should not be an interface", $because); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { if (!$theClass->isInterface()) { return; diff --git a/src/Expression/ForClasses/IsNotTrait.php b/src/Expression/ForClasses/IsNotTrait.php index 5339fcc0..c89e29db 100644 --- a/src/Expression/ForClasses/IsNotTrait.php +++ b/src/Expression/ForClasses/IsNotTrait.php @@ -13,12 +13,12 @@ class IsNotTrait implements Expression { - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { return new Description("{$theClass->getName()} should not be trait", $because); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { if (!$theClass->isTrait()) { return; diff --git a/src/Expression/ForClasses/IsTrait.php b/src/Expression/ForClasses/IsTrait.php index 18c01ea0..4608dfc0 100644 --- a/src/Expression/ForClasses/IsTrait.php +++ b/src/Expression/ForClasses/IsTrait.php @@ -13,12 +13,12 @@ class IsTrait implements Expression { - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { return new Description("{$theClass->getName()} should be trait", $because); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { if ($theClass->isTrait()) { return; diff --git a/src/Expression/ForClasses/MatchOneOfTheseNames.php b/src/Expression/ForClasses/MatchOneOfTheseNames.php index 351782dc..6540d06f 100644 --- a/src/Expression/ForClasses/MatchOneOfTheseNames.php +++ b/src/Expression/ForClasses/MatchOneOfTheseNames.php @@ -22,14 +22,14 @@ public function __construct(array $names) $this->names = $names; } - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { $names = implode(', ', $this->names); return new Description("should have a name that matches {$names}", $because); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { $fqcn = FullyQualifiedClassName::fromString($theClass->getFQCN()); $matches = false; diff --git a/src/Expression/ForClasses/NotContainDocBlockLike.php b/src/Expression/ForClasses/NotContainDocBlockLike.php index 164f6a66..6b6a4576 100644 --- a/src/Expression/ForClasses/NotContainDocBlockLike.php +++ b/src/Expression/ForClasses/NotContainDocBlockLike.php @@ -21,12 +21,12 @@ public function __construct(string $docBlock) $this->docBlock = $docBlock; } - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { return new Description("should not have a doc block that contains {$this->docBlock}", $because); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { if ($theClass->containsDocBlock($this->docBlock)) { $violation = Violation::create( diff --git a/src/Expression/ForClasses/NotDependsOnTheseNamespaces.php b/src/Expression/ForClasses/NotDependsOnTheseNamespaces.php index eb5c73a9..86a0c493 100644 --- a/src/Expression/ForClasses/NotDependsOnTheseNamespaces.php +++ b/src/Expression/ForClasses/NotDependsOnTheseNamespaces.php @@ -22,14 +22,14 @@ public function __construct(string ...$namespace) $this->namespaces = $namespace; } - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { $desc = implode(', ', $this->namespaces); return new Description("should not depend on these namespaces: $desc", $because); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { $dependencies = $theClass->getDependencies(); diff --git a/src/Expression/ForClasses/NotExtend.php b/src/Expression/ForClasses/NotExtend.php index 26539312..48efe6b7 100644 --- a/src/Expression/ForClasses/NotExtend.php +++ b/src/Expression/ForClasses/NotExtend.php @@ -21,12 +21,12 @@ public function __construct(string $className) $this->className = $className; } - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { return new Description("should not extend {$this->className}", $because); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { $extends = $theClass->getExtends(); diff --git a/src/Expression/ForClasses/NotHaveDependencyOutsideNamespace.php b/src/Expression/ForClasses/NotHaveDependencyOutsideNamespace.php index 19ac84dd..debccef0 100644 --- a/src/Expression/ForClasses/NotHaveDependencyOutsideNamespace.php +++ b/src/Expression/ForClasses/NotHaveDependencyOutsideNamespace.php @@ -25,12 +25,12 @@ public function __construct(string $namespace, array $externalDependenciesToExcl $this->externalDependenciesToExclude = $externalDependenciesToExclude; } - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { return new Description("should not depend on classes outside namespace {$this->namespace}", $because); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { $namespace = $this->namespace; $depends = function (ClassDependency $dependency) use ($namespace): bool { diff --git a/src/Expression/ForClasses/NotHaveNameMatching.php b/src/Expression/ForClasses/NotHaveNameMatching.php index 05b80f01..a27a6986 100644 --- a/src/Expression/ForClasses/NotHaveNameMatching.php +++ b/src/Expression/ForClasses/NotHaveNameMatching.php @@ -22,12 +22,12 @@ public function __construct(string $name) $this->name = $name; } - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { return new Description("should not have a name that matches {$this->name}", $because); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { $fqcn = FullyQualifiedClassName::fromString($theClass->getFQCN()); if ($fqcn->classMatches($this->name)) { diff --git a/src/Expression/ForClasses/NotImplement.php b/src/Expression/ForClasses/NotImplement.php index e01a51bf..4bbcc140 100644 --- a/src/Expression/ForClasses/NotImplement.php +++ b/src/Expression/ForClasses/NotImplement.php @@ -22,12 +22,12 @@ public function __construct(string $interface) $this->interface = $interface; } - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { return new Description("should not implement {$this->interface}", $because); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { if ($theClass->isInterface() || $theClass->isTrait()) { return; diff --git a/src/Expression/ForClasses/NotResideInTheseNamespaces.php b/src/Expression/ForClasses/NotResideInTheseNamespaces.php index 23949ff3..d25e56fa 100644 --- a/src/Expression/ForClasses/NotResideInTheseNamespaces.php +++ b/src/Expression/ForClasses/NotResideInTheseNamespaces.php @@ -21,14 +21,14 @@ public function __construct(string ...$namespaces) $this->namespaces = $namespaces; } - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { $descr = implode(', ', $this->namespaces); return new Description("should not reside in one of these namespaces: $descr", $because); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { $resideInNamespace = false; foreach ($this->namespaces as $namespace) { diff --git a/src/Expression/ForClasses/ResideInOneOfTheseNamespaces.php b/src/Expression/ForClasses/ResideInOneOfTheseNamespaces.php index 5f7305b6..78ef621e 100644 --- a/src/Expression/ForClasses/ResideInOneOfTheseNamespaces.php +++ b/src/Expression/ForClasses/ResideInOneOfTheseNamespaces.php @@ -22,14 +22,14 @@ public function __construct(string ...$namespaces) $this->namespaces = array_unique($namespaces); } - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { $descr = implode(', ', $this->namespaces); return new Description("should reside in one of these namespaces: $descr", $because); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { $resideInNamespace = false; foreach ($this->namespaces as $namespace) { diff --git a/tests/Unit/Rules/ConstraintsTest.php b/tests/Unit/Rules/ConstraintsTest.php index 53530d12..ac5c05bd 100644 --- a/tests/Unit/Rules/ConstraintsTest.php +++ b/tests/Unit/Rules/ConstraintsTest.php @@ -19,12 +19,12 @@ class ConstraintsTest extends TestCase public function test_it_should_not_add_to_violation_if_constraint_is_not_violated(): void { $trueExpression = new class() implements Expression { - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { return new Description('', ''); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { } }; @@ -49,12 +49,12 @@ public function evaluate(ClassDescription $theClass, Violations $violations, str public function test_it_should_add_to_violation_store_if_constraint_is_violated(): void { $falseExpression = new class() implements Expression { - public function describe(ClassDescription $theClass, string $because): Description + public function describe(ClassDescription $theClass, string $because = ''): Description { return new Description('bar', 'we want to add this rule'); } - public function evaluate(ClassDescription $theClass, Violations $violations, string $because): void + public function evaluate(ClassDescription $theClass, Violations $violations, string $because = ''): void { $violation = Violation::create( $theClass->getFQCN(),