7 declare(strict_types=1);
14 use PHPUnit\Framework\TestCase as TestCase;
15 use PHPUnit_Framework_MockObject_MockObject as MockObject;
16 use PHPUnit\Framework\MockObject\Builder\InvocationMocker as InvocationMocker;
18 use PHPMD\Node\ClassNode;
28 public function testApply($fakeAction,
bool $violates)
30 $node = $this->createNodeMock($fakeAction);
32 $this->expectsRuleViolation(
$rule, $violates);
47 public function execute()
59 public function execute()
71 public function execute()
92 private function createNodeMock($dynamicObject): MockObject
94 $node = $this->getMockBuilder(ClassNode::class)
95 ->disableOriginalConstructor()
96 ->disableProxyingToOriginalMethods()
102 'getFullQualifiedName',
105 $node->expects($this->any())
106 ->method(
'getFullQualifiedName')
107 ->willReturn(get_class($dynamicObject));
117 private function expectsRuleViolation(
118 AllPurposeAction
$rule,
120 ): InvocationMocker {
122 $report = $this->getMockBuilder(Report::class)->getMock();
124 $violationExpectation = $this->atLeastOnce();
126 $violationExpectation = $this->never();
128 $invokation = $report->expects($violationExpectation)
129 ->method(
'addRuleViolation');
130 $rule->setReport($report);
testApply($fakeAction, bool $violates)