diff --git a/CHANGELOG.md b/CHANGELOG.md index 42b217bb..f300bde8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,12 @@ ## Next * [feature] 🌟 String pattern anonymizer, build complex strings by fetching values from other anonymizers. +* [fix] Some minor PHP 8.4 deprecations. +* [bc] Salt in `AbstractAnonymizer::$option->get('salt')` in now in `AbstractAnonymizer::$context->salt` (#235). +* [bc] `AbstractAnonymizer::__construct()` now expects an additional `$context` parameter (#235). +* [bc] `Anonymizator::__construct()` `$salt` parameter was removed (#235). * [bc] Officially drop support for MySQL 5.7 - code is still there and working but automated unit testing has been disabled. +* [internal] introduce anonymizer context for carrying environment configuration to anonymizers (#235). * [internal] Add automated testing for MariaDB 12. * [internal] Rewrote `dev.sh` local unit testing script to be simpler, reorganized the local unit testing Docker stack. diff --git a/src/Anonymization/Anonymizator.php b/src/Anonymization/Anonymizator.php index 2adcc576..823ac4ae 100644 --- a/src/Anonymization/Anonymizator.php +++ b/src/Anonymization/Anonymizator.php @@ -6,6 +6,7 @@ use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\AbstractAnonymizer; use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\AnonymizerRegistry; +use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\Context; use MakinaCorpus\DbToolsBundle\Anonymization\Config\AnonymizationConfig; use MakinaCorpus\DbToolsBundle\Anonymization\Config\AnonymizerConfig; use MakinaCorpus\DbToolsBundle\Helper\Format; @@ -42,15 +43,16 @@ class Anonymizator implements LoggerAwareInterface ]; private OutputInterface $output; + private readonly Context $defaultContext; public function __construct( private DatabaseSession $databaseSession, private AnonymizerRegistry $anonymizerRegistry, private AnonymizationConfig $anonymizationConfig, - private ?string $salt = null, ) { $this->logger = new NullLogger(); $this->output = new NullOutput(); + $this->defaultContext = new Context(); } /** @@ -71,25 +73,21 @@ public function setOutput(OutputInterface $output): self return $this; } + #[\Deprecated(message: "Will be removed in 3.0, use Context::generateRandomSalt() instead.", since: "2.1.0")] public static function generateRandomSalt(): string { - return \base64_encode(\random_bytes(12)); - } - - protected function getSalt(): string - { - return $this->salt ??= self::generateRandomSalt(); + return Context::generateRandomSalt(); } /** * Create anonymizer instance. */ - protected function createAnonymizer(AnonymizerConfig $config): AbstractAnonymizer + protected function createAnonymizer(AnonymizerConfig $config, Context $context): AbstractAnonymizer { return $this->anonymizerRegistry->createAnonymizer( $config->anonymizer, $config, - $config->options->with(['salt' => $this->getSalt()]), + $context, $this->databaseSession ); } @@ -127,6 +125,7 @@ public function anonymize( } $plan = []; + $context = clone $this->defaultContext; if ($onlyTargets) { foreach ($onlyTargets as $targetString) { @@ -160,7 +159,7 @@ public function anonymize( foreach ($plan as $table => $targets) { $anonymizers[$table] = []; foreach ($this->anonymizationConfig->getTableConfig($table, $targets) as $target => $config) { - $anonymizers[$table][] = $this->createAnonymizer($config); + $anonymizers[$table][] = $this->createAnonymizer($config, $context); } } @@ -910,7 +909,7 @@ public function checkAnonymizationConfig(): array foreach ($this->anonymizationConfig->all() as $table => $tableConfig) { foreach ($tableConfig as $config) { try { - $this->createAnonymizer($config); + $this->createAnonymizer($config, $this->defaultContext); } catch (\Exception $e) { if (!\key_exists($table, $errors)) { $errors[$table] = []; diff --git a/src/Anonymization/Anonymizer/AbstractAnonymizer.php b/src/Anonymization/Anonymizer/AbstractAnonymizer.php index a8c3c49c..0c458b5d 100644 --- a/src/Anonymization/Anonymizer/AbstractAnonymizer.php +++ b/src/Anonymization/Anonymizer/AbstractAnonymizer.php @@ -4,7 +4,6 @@ namespace MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer; -use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizator; use MakinaCorpus\QueryBuilder\DatabaseSession; use MakinaCorpus\QueryBuilder\Expression; use MakinaCorpus\QueryBuilder\ExpressionFactory; @@ -22,7 +21,8 @@ final public function __construct( protected string $tableName, protected string $columnName, protected DatabaseSession $databaseSession, - protected Options $options, + protected readonly Context $context, + protected readonly Options $options, ) { $this->validateOptions(); } @@ -74,14 +74,6 @@ protected function getJoinColumn(): Expression return ExpressionFactory::column($this->getJoinId(), self::JOIN_TABLE); } - /** - * Get a random, global salt for anonymizing hashed values. - */ - protected function getSalt(): string - { - return $this->options->get('salt') ?? Anonymizator::generateRandomSalt(); - } - /** * Validate options given to the Anonymizer. * diff --git a/src/Anonymization/Anonymizer/AnonymizerRegistry.php b/src/Anonymization/Anonymizer/AnonymizerRegistry.php index ac3f9fd1..86380b0e 100644 --- a/src/Anonymization/Anonymizer/AnonymizerRegistry.php +++ b/src/Anonymization/Anonymizer/AnonymizerRegistry.php @@ -67,12 +67,12 @@ public function getAllAnonymizerMetadata(): array public function createAnonymizer( string $name, AnonymizerConfig $config, - Options $options, + Context $context, DatabaseSession $databaseSession, ): AbstractAnonymizer { $className = $this->getAnonymizerClass($name); - $ret = new $className($config->table, $config->targetName, $databaseSession, $options); + $ret = new $className($config->table, $config->targetName, $databaseSession, $context, $config->options); \assert($ret instanceof AbstractAnonymizer); if ($ret instanceof WithAnonymizerRegistry) { diff --git a/src/Anonymization/Anonymizer/Context.php b/src/Anonymization/Anonymizer/Context.php new file mode 100644 index 00000000..7316fe6f --- /dev/null +++ b/src/Anonymization/Anonymizer/Context.php @@ -0,0 +1,21 @@ +salt = $salt ?? self::generateRandomSalt(); + } + + public static function generateRandomSalt(): string + { + return \base64_encode(\random_bytes(12)); + } +} diff --git a/src/Anonymization/Anonymizer/Core/EmailAnonymizer.php b/src/Anonymization/Anonymizer/Core/EmailAnonymizer.php index ba73ca7d..a570004f 100644 --- a/src/Anonymization/Anonymizer/Core/EmailAnonymizer.php +++ b/src/Anonymization/Anonymizer/Core/EmailAnonymizer.php @@ -38,7 +38,7 @@ public function createAnonymizeExpression(Update $update): Expression $userExpr = $expr->column($this->columnName, $this->tableName); if ($this->options->getBool('use_salt', true)) { - $userExpr = $expr->concat($userExpr, $expr->value($this->getSalt())); + $userExpr = $expr->concat($userExpr, $expr->value($this->context->salt)); } $emailHashExpr = $expr->md5($userExpr); diff --git a/src/Anonymization/Anonymizer/Core/Md5Anonymizer.php b/src/Anonymization/Anonymizer/Core/Md5Anonymizer.php index 0d37c80e..04a1126d 100644 --- a/src/Anonymization/Anonymizer/Core/Md5Anonymizer.php +++ b/src/Anonymization/Anonymizer/Core/Md5Anonymizer.php @@ -27,7 +27,7 @@ public function createAnonymizeExpression(Update $update): Expression $columnExpr = $expr->column($this->columnName, $this->tableName); if ($this->options->get('use_salt', true)) { - $columnExpr = $expr->concat($columnExpr, $expr->value($this->getSalt())); + $columnExpr = $expr->concat($columnExpr, $expr->value($this->context->salt)); // Work around some RDBMS not seeing the NULL value anymore // once we added the string concat. diff --git a/src/Anonymization/Anonymizer/Core/StringPatternAnonymizer.php b/src/Anonymization/Anonymizer/Core/StringPatternAnonymizer.php index 890dc979..fdb9f99a 100644 --- a/src/Anonymization/Anonymizer/Core/StringPatternAnonymizer.php +++ b/src/Anonymization/Anonymizer/Core/StringPatternAnonymizer.php @@ -194,14 +194,14 @@ private function getAnonymizer(string $anonymizer, ?Options $options = null, int return $ret; } - $config = new AnonymizerConfig($this->tableName, $this->columnName, $anonymizer, new Options()); + $config = new AnonymizerConfig($this->tableName, $this->columnName, $anonymizer, $options ?? new Options()); return $this->childAnonymizers[$key] = $this ->getAnonymizerRegistry() ->createAnonymizer( $anonymizer, $config, - $options ?? new Options(), + $this->context, $this->databaseSession ) ; diff --git a/tests/Unit/Anonymization/Anonymizer/AbstractMultipleColumnAnonymizerTest.php b/tests/Unit/Anonymization/Anonymizer/AbstractMultipleColumnAnonymizerTest.php index 0d0f9bb4..4811128f 100644 --- a/tests/Unit/Anonymization/Anonymizer/AbstractMultipleColumnAnonymizerTest.php +++ b/tests/Unit/Anonymization/Anonymizer/AbstractMultipleColumnAnonymizerTest.php @@ -5,6 +5,7 @@ namespace MakinaCorpus\DbToolsBundle\Tests\Unit\Anonymization\Anonymizer; use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\AbstractMultipleColumnAnonymizer; +use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\Context; use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\Options; use MakinaCorpus\DbToolsBundle\Attribute\AsAnonymizer; use MakinaCorpus\DbToolsBundle\Test\UnitTestCase; @@ -17,6 +18,7 @@ public function testValidateOptionsOkWithAllColumnOption(): void 'some_table', 'some_column', $this->getDatabaseSession(), + new Context(), new Options([ 'column_1' => 'actual_column_1', 'column_2' => 'actual_column_2', @@ -32,6 +34,7 @@ public function testValidateOptionsOkWithSomeColumnOption(): void 'some_table', 'some_column', $this->getDatabaseSession(), + new Context(), new Options([ 'column_2' => 'actual_column_2', ]), @@ -48,7 +51,8 @@ public function testValidateOptionsKoWithNoOption(): void 'some_table', 'some_column', $this->getDatabaseSession(), - new Options([]), + new Context(), + new Options(), ); } @@ -60,6 +64,7 @@ public function testValidateOptionsKoWithColumnMapedTwice(): void 'some_table', 'some_column', $this->getDatabaseSession(), + new Context(), new Options([ 'column_1' => 'actual_column_1', 'column_2' => 'actual_column_1', diff --git a/tests/Unit/Anonymization/Anonymizer/Core/ConstantAnonymizerTest.php b/tests/Unit/Anonymization/Anonymizer/Core/ConstantAnonymizerTest.php index ef096895..8815f95e 100644 --- a/tests/Unit/Anonymization/Anonymizer/Core/ConstantAnonymizerTest.php +++ b/tests/Unit/Anonymization/Anonymizer/Core/ConstantAnonymizerTest.php @@ -4,6 +4,7 @@ namespace MakinaCorpus\DbToolsBundle\Tests\Unit\Anonymization\Anonymizer\Core; +use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\Context; use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\Core\ConstantAnonymizer; use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\Options; use MakinaCorpus\DbToolsBundle\Test\UnitTestCase; @@ -16,6 +17,7 @@ public function testValidateOptionsOkWithValueOption(): void 'some_table', 'some_column', $this->getDatabaseSession(), + new Context(), new Options([ 'value' => 'test', ]), @@ -32,6 +34,7 @@ public function testValidateOptionsKoWithValueOption(): void 'some_table', 'some_column', $this->getDatabaseSession(), + new Context(), new Options([]), ); } diff --git a/tests/Unit/Anonymization/Anonymizer/Core/EmailAnonymizerTest.php b/tests/Unit/Anonymization/Anonymizer/Core/EmailAnonymizerTest.php index 3274cd02..3cc5a01a 100644 --- a/tests/Unit/Anonymization/Anonymizer/Core/EmailAnonymizerTest.php +++ b/tests/Unit/Anonymization/Anonymizer/Core/EmailAnonymizerTest.php @@ -4,8 +4,9 @@ namespace MakinaCorpus\DbToolsBundle\Tests\Unit\Anonymization\Anonymizer\Core; -use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\Options; +use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\Context; use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\Core\EmailAnonymizer; +use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\Options; use MakinaCorpus\DbToolsBundle\Test\UnitTestCase; class EmailAnonymizerTest extends UnitTestCase @@ -16,7 +17,8 @@ public function testValidateOptionsOkWithNoOption(): void 'some_table', 'email', $this->getDatabaseSession(), - new Options([]), + new Context(), + new Options(), ); self::expectNotToPerformAssertions(); @@ -28,6 +30,7 @@ public function testValidateOptionsOkWithDomainOptionAsString(): void 'some_table', 'email', $this->getDatabaseSession(), + new Context(), new Options([ 'domain' => 'makina-corpus.com', ]), @@ -44,6 +47,7 @@ public function testValidateOptionsKoWithDomainNotStringable(): void 'some_table', 'email', $this->getDatabaseSession(), + new Context(), new Options([ 'domain' => ['ttt', 'ttt'], ]), @@ -56,6 +60,7 @@ public function testValidateOptionsOkWithUseSaltOptionAsBool(): void 'some_table', 'email', $this->getDatabaseSession(), + new Context(), new Options([ 'use_salt' => true, ]), @@ -72,6 +77,7 @@ public function testValidateOptionsKoWithUseSaltOptionAsNoneBool(): void 'some_table', 'email', $this->getDatabaseSession(), + new Context(), new Options([ 'use_salt' => ['true'], ]), @@ -86,9 +92,10 @@ public function testAnonymizeWithDefaultDomain(): void 'some_table', 'email', $this->getDatabaseSession(), - new Options([ - 'salt' => 'my_salt', - ]) + new Context( + salt: 'my_salt', + ), + new Options(), ); $instance->anonymize($update); @@ -121,9 +128,11 @@ public function testAnonymize(): void 'some_table', 'email', $this->getDatabaseSession(), + new Context( + salt: 'my_salt', + ), new Options([ 'domain' => 'makina-corpus.com', - 'salt' => 'my_salt', ]), ); @@ -157,6 +166,7 @@ public function testAnonymizeWithoutSalt(): void 'some_table', 'email', $this->getDatabaseSession(), + new Context(), new Options([ 'use_salt' => false, ]), diff --git a/tests/Unit/Anonymization/Anonymizer/Core/FloatAnonymizerTest.php b/tests/Unit/Anonymization/Anonymizer/Core/FloatAnonymizerTest.php index 9c253e8c..0af4d050 100644 --- a/tests/Unit/Anonymization/Anonymizer/Core/FloatAnonymizerTest.php +++ b/tests/Unit/Anonymization/Anonymizer/Core/FloatAnonymizerTest.php @@ -4,6 +4,7 @@ namespace MakinaCorpus\DbToolsBundle\Tests\Unit\Anonymization\Anonymizer\Core; +use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\Context; use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\Core\FloatAnonymizer; use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\Options; use MakinaCorpus\DbToolsBundle\Test\UnitTestCase; @@ -16,6 +17,7 @@ public function testValidateOptionsOkWithMinMax(): void 'some_table', 'some_column', $this->getDatabaseSession(), + new Context(), new Options([ 'min' => 12.5, 'max' => 14.5, @@ -33,6 +35,7 @@ public function testValidateOptionsKoWithMinGreaterThanMax(): void 'some_table', 'some_column', $this->getDatabaseSession(), + new Context(), new Options([ 'min' => 15.5, 'max' => 14.5, @@ -46,6 +49,7 @@ public function testValidateOptionsOkWithDelta(): void 'some_table', 'some_column', $this->getDatabaseSession(), + new Context(), new Options([ 'delta' => 12.5, ]), @@ -62,6 +66,7 @@ public function testValidateOptionsKoWithDeltaLesserThan0(): void 'some_table', 'some_column', $this->getDatabaseSession(), + new Context(), new Options([ 'delta' => -12.5, ]), @@ -74,6 +79,7 @@ public function testValidateOptionsOkWithPercent(): void 'some_table', 'some_column', $this->getDatabaseSession(), + new Context(), new Options([ 'percent' => 12, ]), @@ -90,6 +96,7 @@ public function testValidateOptionsKoWithPercentLesserThan0(): void 'some_table', 'some_column', $this->getDatabaseSession(), + new Context(), new Options([ 'percent' => -12, ]), @@ -104,6 +111,7 @@ public function testValidateOptionsKoWithTooManyOptions(): void 'some_table', 'some_column', $this->getDatabaseSession(), + new Context(), new Options([ 'min' => 12.5, 'max' => 14.5, @@ -117,6 +125,7 @@ public function testValidateOptionsKoWithTooManyOptions(): void 'some_table', 'some_column', $this->getDatabaseSession(), + new Context(), new Options([ 'min' => 12.5, 'max' => 14.5, @@ -130,6 +139,7 @@ public function testValidateOptionsKoWithTooManyOptions(): void 'some_table', 'some_column', $this->getDatabaseSession(), + new Context(), new Options([ 'delta' => 14.5, 'percent' => 14.5, @@ -145,7 +155,8 @@ public function testValidateOptionsKoWithoutOption(): void 'some_table', 'some_column', $this->getDatabaseSession(), - new Options([]), + new Context(), + new Options(), ); } } diff --git a/tests/Unit/Anonymization/Anonymizer/Core/IbanBicAnonymizerTest.php b/tests/Unit/Anonymization/Anonymizer/Core/IbanBicAnonymizerTest.php index 0bcb166d..597e65a2 100644 --- a/tests/Unit/Anonymization/Anonymizer/Core/IbanBicAnonymizerTest.php +++ b/tests/Unit/Anonymization/Anonymizer/Core/IbanBicAnonymizerTest.php @@ -4,8 +4,9 @@ namespace MakinaCorpus\DbToolsBundle\Tests\Unit\Anonymization\Anonymizer\Core; -use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\Options; +use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\Context; use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\Core\IbanBicAnonymizer; +use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\Options; use MakinaCorpus\DbToolsBundle\Test\UnitTestCase; class IbanBicAnonymizerTest extends UnitTestCase @@ -16,6 +17,7 @@ public function testValidateOptionsOkWithNoOptionButColumns(): void 'some_table', 'iban', $this->getDatabaseSession(), + new Context(), new Options([ 'iban' => 'foo_iban', 'bic' => 'foo_bic', @@ -31,6 +33,7 @@ public function testValidateOptionsOkWithAllOptions(): void 'some_table', 'iban', $this->getDatabaseSession(), + new Context(), new Options([ 'iban' => 'foo_iban', 'bic' => 'foo_bic', @@ -50,6 +53,7 @@ public function testValidateOptionsKoWithNegativeSampleSize(): void 'some_table', 'iban', $this->getDatabaseSession(), + new Context(), new Options([ 'iban' => 'foo_iban', 'bic' => 'foo_bic', @@ -66,6 +70,7 @@ public function testValidateOptionsKoWithZeroSampleSize(): void 'some_table', 'iban', $this->getDatabaseSession(), + new Context(), new Options([ 'iban' => 'foo_iban', 'bic' => 'foo_bic', @@ -82,6 +87,7 @@ public function testValidateOptionsKoWithCountryTooLong(): void 'some_table', 'iban', $this->getDatabaseSession(), + new Context(), new Options([ 'iban' => 'foo_iban', 'bic' => 'foo_bic', @@ -98,6 +104,7 @@ public function testValidateOptionsKoWithCountryNotLetters(): void 'some_table', 'iban', $this->getDatabaseSession(), + new Context(), new Options([ 'iban' => 'foo_iban', 'bic' => 'foo_bic', @@ -114,6 +121,7 @@ public function testValidateOptionsKoWithCountryNotString(): void 'some_table', 'iban', $this->getDatabaseSession(), + new Context(), new Options([ 'iban' => 'foo_iban', 'bic' => 'foo_bic', diff --git a/tests/Unit/Anonymization/Anonymizer/Core/IntegerAnonymizerTest.php b/tests/Unit/Anonymization/Anonymizer/Core/IntegerAnonymizerTest.php index 0b1227aa..16d70373 100644 --- a/tests/Unit/Anonymization/Anonymizer/Core/IntegerAnonymizerTest.php +++ b/tests/Unit/Anonymization/Anonymizer/Core/IntegerAnonymizerTest.php @@ -4,6 +4,7 @@ namespace MakinaCorpus\DbToolsBundle\Tests\Unit\Anonymization\Anonymizer\Core; +use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\Context; use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\Core\IntegerAnonymizer; use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\Options; use MakinaCorpus\DbToolsBundle\Test\UnitTestCase; @@ -16,6 +17,7 @@ public function testValidateOptionsOkWithMinMax(): void 'some_table', 'some_column', $this->getDatabaseSession(), + new Context(), new Options([ 'min' => 12, 'max' => 14, @@ -33,6 +35,7 @@ public function testValidateOptionsKoWithMinGreaterThanMax(): void 'some_table', 'some_column', $this->getDatabaseSession(), + new Context(), new Options([ 'min' => 15, 'max' => 14, @@ -46,6 +49,7 @@ public function testValidateOptionsOkWithDelta(): void 'some_table', 'some_column', $this->getDatabaseSession(), + new Context(), new Options([ 'delta' => 12, ]), @@ -62,6 +66,7 @@ public function testValidateOptionsKoWithDeltaLesserThan0(): void 'some_table', 'some_column', $this->getDatabaseSession(), + new Context(), new Options([ 'delta' => -12, ]), @@ -74,6 +79,7 @@ public function testValidateOptionsOkWithPercent(): void 'some_table', 'some_column', $this->getDatabaseSession(), + new Context(), new Options([ 'percent' => 12, ]), @@ -90,6 +96,7 @@ public function testValidateOptionsKoWithPercentLesserThan0(): void 'some_table', 'some_column', $this->getDatabaseSession(), + new Context(), new Options([ 'percent' => -12, ]), @@ -104,6 +111,7 @@ public function testValidateOptionsKoWithTooManyOptions(): void 'some_table', 'some_column', $this->getDatabaseSession(), + new Context(), new Options([ 'min' => 12, 'max' => 14, @@ -117,6 +125,7 @@ public function testValidateOptionsKoWithTooManyOptions(): void 'some_table', 'some_column', $this->getDatabaseSession(), + new Context(), new Options([ 'min' => 12, 'max' => 14, @@ -130,6 +139,7 @@ public function testValidateOptionsKoWithTooManyOptions(): void 'some_table', 'some_column', $this->getDatabaseSession(), + new Context(), new Options([ 'delta' => 14, 'percent' => 14, @@ -145,7 +155,8 @@ public function testValidateOptionsKoWithoutOption(): void 'some_table', 'some_column', $this->getDatabaseSession(), - new Options([]), + new Context(), + new Options(), ); } } diff --git a/tests/Unit/Anonymization/Anonymizer/Core/LoremIpsumAnonymizerTest.php b/tests/Unit/Anonymization/Anonymizer/Core/LoremIpsumAnonymizerTest.php index 40a96618..ddf152fb 100644 --- a/tests/Unit/Anonymization/Anonymizer/Core/LoremIpsumAnonymizerTest.php +++ b/tests/Unit/Anonymization/Anonymizer/Core/LoremIpsumAnonymizerTest.php @@ -4,6 +4,7 @@ namespace MakinaCorpus\DbToolsBundle\Tests\Unit\Anonymization\Anonymizer\Core; +use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\Context; use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\Core\LoremIpsumAnonymizer; use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\Options; use MakinaCorpus\DbToolsBundle\Test\UnitTestCase; @@ -16,7 +17,8 @@ public function testValidateOptionsOkWithNoOption(): void 'some_table', 'some_column', $this->getDatabaseSession(), - new Options([]), + new Context(), + new Options(), ); self::expectNotToPerformAssertions(); @@ -28,6 +30,7 @@ public function testValidateOptionsOkWithWords(): void 'some_table', 'some_column', $this->getDatabaseSession(), + new Context(), new Options([ 'words' => 15, ]), @@ -44,6 +47,7 @@ public function testValidateOptionsKoWithWordsLesserThan0(): void 'some_table', 'some_column', $this->getDatabaseSession(), + new Context(), new Options([ 'words' => -15, ]), @@ -56,6 +60,7 @@ public function testValidateOptionsOkWithParagraphs(): void 'some_table', 'some_column', $this->getDatabaseSession(), + new Context(), new Options([ 'paragraphs' => 15, ]), @@ -72,6 +77,7 @@ public function testValidateOptionsKoWithParagraphsLesserThan0(): void 'some_table', 'some_column', $this->getDatabaseSession(), + new Context(), new Options([ 'paragraphs' => -15, ]), diff --git a/tests/Unit/Anonymization/Anonymizer/Core/Md5AnonymizerTest.php b/tests/Unit/Anonymization/Anonymizer/Core/Md5AnonymizerTest.php index 4283bf99..1f56f2f8 100644 --- a/tests/Unit/Anonymization/Anonymizer/Core/Md5AnonymizerTest.php +++ b/tests/Unit/Anonymization/Anonymizer/Core/Md5AnonymizerTest.php @@ -4,8 +4,9 @@ namespace MakinaCorpus\DbToolsBundle\Tests\Unit\Anonymization\Anonymizer\Core; -use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\Options; +use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\Context; use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\Core\Md5Anonymizer; +use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\Options; use MakinaCorpus\DbToolsBundle\Test\UnitTestCase; class Md5AnonymizerTest extends UnitTestCase @@ -18,9 +19,8 @@ public function testAnonymize(): void 'some_table', 'some_column', $this->getDatabaseSession(), - new Options([ - 'salt' => 'my_salt', - ]) + new Context(salt: 'my_salt'), + new Options(), ); $instance->anonymize($update); @@ -54,6 +54,7 @@ public function testAnonymizeWithoutSalt(): void 'some_table', 'some_column', $this->getDatabaseSession(), + new Context(), new Options([ 'use_salt' => false, ]) diff --git a/tests/Unit/Anonymization/Anonymizer/Core/PasswordAnonymizerTest.php b/tests/Unit/Anonymization/Anonymizer/Core/PasswordAnonymizerTest.php index d9f6a653..95f079a8 100644 --- a/tests/Unit/Anonymization/Anonymizer/Core/PasswordAnonymizerTest.php +++ b/tests/Unit/Anonymization/Anonymizer/Core/PasswordAnonymizerTest.php @@ -4,6 +4,7 @@ namespace MakinaCorpus\DbToolsBundle\Tests\Unit\Anonymization\Anonymizer\Core; +use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\Context; use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\Core\PasswordAnonymizer; use MakinaCorpus\DbToolsBundle\Anonymization\Anonymizer\Options; use MakinaCorpus\DbToolsBundle\Test\UnitTestCase; @@ -16,7 +17,8 @@ public function testValidateOptionsOkWithNoOption(): void 'some_table', 'some_column', $this->getDatabaseSession(), - new Options([]), + new Context(), + new Options(), ); self::expectNotToPerformAssertions(); @@ -28,6 +30,7 @@ public function testValidateOptionsOkWithPassword(): void 'some_table', 'some_column', $this->getDatabaseSession(), + new Context(), new Options([ 'password' => 'test', ]), @@ -42,6 +45,7 @@ public function testValidateOptionsOkWithAlgorithm(): void 'some_table', 'some_column', $this->getDatabaseSession(), + new Context(), new Options([ 'algorithm' => 'bcrypt', ]), @@ -58,6 +62,7 @@ public function testValidateOptionsKoWithUnknownAlgorithm(): void 'some_table', 'some_column', $this->getDatabaseSession(), + new Context(), new Options([ 'algorithm' => 'toto', ]),