Skip to content

Commit

Permalink
CT-1670 - add more tests with invalid characters
Browse files Browse the repository at this point in the history
  • Loading branch information
vojtabiberle committed Jul 26, 2024
1 parent 828adf4 commit 3793dd7
Showing 1 changed file with 35 additions and 7 deletions.
42 changes: 35 additions & 7 deletions tests/Common/IndexTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -169,21 +169,20 @@ public function validColumnNameDataForValidation(): Generator
/**
* @dataProvider invalidColumnNameDataForValidation
*/
public function testInvalidColumnNames(array $columnNames): void
public function testInvalidColumnNames(array $columnNames, array $validationErrorMessages): void
{
try {
$this->_client->validateColumnNames($columnNames);
$this->fail('Invalid columns should fail');
} catch (ClientException $exception) {
$expectedMessages = [];
$expectedErrorMessages = [];
foreach ($columnNames as $key => $columnName) {
$key = sprintf('columnNames[%d]', $key);
$msg = sprintf('"%s" is a system column used by the database for internal purposes.', $columnName);
$expectedMessages[] = sprintf(' - %s: "%s"', $key, $msg);
foreach ($validationErrorMessages as $key => $errorMessage) {
$keyName = sprintf('columnNames[%d]', $key);
$expectedMessages[] = sprintf(' - %s: "%s"', $keyName, $errorMessage);
$expectedErrorMessages[] = [
'key' => $key,
'message' => $msg,
'key' => $keyName,
'message' => $errorMessage,
];
}
$expectedMessage = 'Invalid request:' . PHP_EOL . implode(PHP_EOL, $expectedMessages);
Expand All @@ -203,6 +202,35 @@ public function invalidColumnNameDataForValidation(): Generator
'xmax',
'cmax',
'ctid',
'currency €',
'ěĚšŠčČřŘžŽýÝáÁíÍéÉ',
'lorem &@€\\#˝´˙`˛°˘^ˇ~€||\đĐ[]łŁ}{{@@&##<>*$ߤ×÷¸¨ IPsum',
'muj Bucket',
'account € & $',
'$$ some name $$',
'_MůjBucketíček',
'loremIpsumDolorSitAmetWhateverNextLoremIpsumDolorSitAmetloremIpsumDolorSitAmetWhateverNextLoremIpsumDolorSitAmet',
base64_decode('AQIDBAUGBwgODxAREhMUFRYXGBkaGxwdHh9/'),
'----$$$$-----',
],
[
'"oid" is a system column used by the database for internal purposes.',
'"tableoid" is a system column used by the database for internal purposes.',
'"xmin" is a system column used by the database for internal purposes.',
'"cmin" is a system column used by the database for internal purposes.',
'"xmax" is a system column used by the database for internal purposes.',
'"cmax" is a system column used by the database for internal purposes.',
'"ctid" is a system column used by the database for internal purposes.',
'"currency €" contains not allowed characters. Only alphanumeric characters dash and underscores are allowed.',
'"ěĚšŠčČřŘžŽýÝáÁíÍéÉ" contains not allowed characters. Only alphanumeric characters dash and underscores are allowed.',
'"lorem &@€\#˝´˙`˛°˘^ˇ~€||\đĐ[]łŁ}{{@@&##<>*$ߤ×÷¸¨ IPsum" contains not allowed characters. Only alphanumeric characters dash and underscores are allowed.',
'"muj Bucket" contains not allowed characters. Only alphanumeric characters dash and underscores are allowed.',
'"account € & $" contains not allowed characters. Only alphanumeric characters dash and underscores are allowed.',
'"$$ some name $$" contains not allowed characters. Only alphanumeric characters dash and underscores are allowed.',
'"_MůjBucketíček" contains not allowed characters. Only alphanumeric characters dash and underscores are allowed.',
'Column name cannot be longer than 64 characters.',
'"'.base64_decode('AQIDBAUGBwgODxAREhMUFRYXGBkaGxwdHh9/').'" contains not allowed characters. Only alphanumeric characters dash and underscores are allowed.',
'"----$$$$-----" contains not allowed characters. Only alphanumeric characters dash and underscores are allowed.',
],
];
}
Expand Down

0 comments on commit 3793dd7

Please sign in to comment.