Compare commits

...
3 changed files with 54 additions and 2 deletions
@@ -125,11 +125,33 @@ final class CoreLibsCreateRandomKeyTest extends TestCase
); );
$this->assertEquals( $this->assertEquals(
$expected, $expected,
strlen($random_key), strlen(\CoreLibs\Create\RandomKey::randomKeyGen($input))
'String length not matching'
); );
} }
} }
/**
* Check that if set to n and then invalid, it keeps the previous one
* or if second change valid, second will be shown
*
* @covers ::setRandomKeyLength
* @dataProvider keepKeyLengthProvider
* @testdox keep setRandomKeyLength set with $input_valid and then $input_invalid will be $expected [$_dataName]
*
* @param integer $input_valid
* @param integer $input_invalid
* @param integer $expected
* @return void
*/
public function testKeepKeyLength(int $input_valid, int $input_invalid, int $expected): void
{
\CoreLibs\Create\RandomKey::setRandomKeyLength($input_valid);
\CoreLibs\Create\RandomKey::setRandomKeyLength($input_invalid);
$this->assertEquals(
$expected,
\CoreLibs\Create\RandomKey::getRandomKeyLength()
);
}
} }
// __END__ // __END__
+4
View File
@@ -53,6 +53,10 @@ print "===<Br>";
// CHANGE key characters // CHANGE key characters
$_array = new CoreLibs\Create\RandomKey(['A', 'F', 'B'], ['1', '5', '9']); $_array = new CoreLibs\Create\RandomKey(['A', 'F', 'B'], ['1', '5', '9']);
print "C->RANDOMKEYGEN(pre set): " . $_array->randomKeyGen() . "<br>"; print "C->RANDOMKEYGEN(pre set): " . $_array->randomKeyGen() . "<br>";
$random_key = new CoreLibs\Create\RandomKey();
print "C->RANDOMKEYGEN(auto): " . $random_key->randomKeyGen() . "<br>";
$random_key->setRandomKeyCharacters(['a', 'z']);
print "C->RANDOMKEYGEN(Fixed set): " . $random_key->randomKeyGen() . "<br>";
print "</body></html>"; print "</body></html>";
+26
View File
@@ -119,6 +119,32 @@ class RandomKey
} }
} }
/**
* sets a different character range
*
* @param array<array{0:string,1:string}> $ranges
* @return bool
*/
public static function setRandomKeyCharacters(array ...$ranges): bool
{
// each range must be an arary of start end range
$character_range = [];
foreach ($ranges as $range) {
if (count($range) != 2) {
throw new \ArgumentCountError(__FUNCTION__ . ' array must have two range entries');
}
$character_range = array_merge($character_range, range($range[0], $range[1]));
}
self::$key_range = join('', $character_range);
self::$one_key_length = strlen(self::$key_range);
if (
self::$one_key_length == 0
) {
return false;
}
return true;
}
/** /**
* sets the key length and checks that they key given is valid * sets the key length and checks that they key given is valid
* if failed it will not change the default key length and return false * if failed it will not change the default key length and return false