Add architectural tests with PHPat

This commit is contained in:
Oliver Davies 2024-02-09 07:07:04 +00:00
parent df04ac0097
commit e917e41d01
7 changed files with 114 additions and 3 deletions

View file

@ -0,0 +1,34 @@
<?php
namespace Tests\Architecture;
use Drupal\Core\Controller\ControllerBase;
use PHPat\Selector\Selector;
use PHPat\Test\Builder\Rule;
use PHPat\Test\PHPat;
final class ArchTest {
public function test_classes_should_be_final(): Rule {
return PHPat::rule()
->classes(Selector::inNamespace('Drupal\atdc'))
->shouldBeFinal();
}
public function test_controllers_should_extend_ControllerBase(): Rule {
return PHPat::rule()
->classes(Selector::inNamespace('Drupal\atdc\Controller'))
->shouldExtend()
->classes(Selector::classname(ControllerBase::class));
}
public function test_controllers_should_have_the_Controller_suffix(): Rule {
return PHPat::rule()
->classes(Selector::inNamespace('Drupal\atdc\Controller'))
->shouldBeNamed(
classname: '/Controller$/',
regex: TRUE,
);
}
}