createMock(DatabaseAnonymizer::class); $anonymizer->expects(self::never())->method('anonymizeAll'); $tester = new CommandTester($this->createCommand($anonymizer, 'prod')); $tester->execute([]); self::assertSame(Command::FAILURE, $tester->getStatusCode()); self::assertStringContainsString('disabled in the prod environment', $tester->getDisplay()); } public function testCommandDelegatesOutsideProdEnvironment(): void { $anonymizer = $this->createMock(DatabaseAnonymizer::class); $anonymizer->expects(self::once()) ->method('anonymizeAll') ->willReturn([ 'users' => 1, 'newsletterConsents' => 2, 'newsletterOptInRequests' => 3, 'bookingEditDrafts' => 4, ]); $tester = new CommandTester($this->createCommand($anonymizer, 'dev')); $tester->execute([]); self::assertSame(Command::SUCCESS, $tester->getStatusCode()); self::assertStringContainsString('Anonymized 1 users, 2 newsletter consents, 3 newsletter opt-in requests, and 4 booking drafts.', $tester->getDisplay()); } private function createCommand(DatabaseAnonymizer $anonymizer, string $environment): DbAnonymizeCommand { return new DbAnonymizeCommand( $anonymizer, $this->createMock(LoggerInterface::class), $environment, ); } }