12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- <?php
- namespace Drupal\Tests\Component\Uuid;
- use Drupal\Component\Uuid\Uuid;
- use Drupal\Component\Uuid\UuidInterface;
- use Drupal\Component\Uuid\Com;
- use Drupal\Component\Uuid\Pecl;
- use Drupal\Component\Uuid\Php;
- use PHPUnit\Framework\TestCase;
- /**
- * Tests the handling of Universally Unique Identifiers (UUIDs).
- *
- * @group Uuid
- */
- class UuidTest extends TestCase {
- /**
- * Tests generating valid UUIDs.
- *
- * @dataProvider providerUuidInstances
- */
- public function testGenerateUuid(UuidInterface $instance) {
- $this->assertTrue(Uuid::isValid($instance->generate()), sprintf('UUID generation for %s works.', get_class($instance)));
- }
- /**
- * Tests that generated UUIDs are unique.
- *
- * @dataProvider providerUuidInstances
- */
- public function testUuidIsUnique(UuidInterface $instance) {
- $this->assertNotEquals($instance->generate(), $instance->generate(), sprintf('Same UUID was not generated twice with %s.', get_class($instance)));
- }
- /**
- * Dataprovider for UUID instance tests.
- *
- * @return array
- */
- public function providerUuidInstances() {
- $instances = [];
- $instances[][] = new Php();
- // If valid PECL extensions exists add to list.
- if (function_exists('uuid_create') && !function_exists('uuid_make')) {
- $instances[][] = new Pecl();
- }
- // If we are on Windows add the com implementation as well.
- if (function_exists('com_create_guid')) {
- $instances[][] = new Com();
- }
- return $instances;
- }
- /**
- * Tests UUID validation.
- *
- * @param string $uuid
- * The uuid to check against.
- * @param bool $is_valid
- * Whether the uuid is valid or not.
- * @param string $message
- * The message to display on failure.
- *
- * @dataProvider providerTestValidation
- */
- public function testValidation($uuid, $is_valid, $message) {
- $this->assertSame($is_valid, Uuid::isValid($uuid), $message);
- }
- /**
- * Dataprovider for UUID instance tests.
- *
- * @return array
- * An array of arrays containing
- * - The Uuid to check against.
- * - (bool) Whether or not the Uuid is valid.
- * - Failure message.
- */
- public function providerTestValidation() {
- return [
- // These valid UUIDs.
- ['6ba7b810-9dad-11d1-80b4-00c04fd430c8', TRUE, 'Basic FQDN UUID did not validate'],
- ['00000000-0000-0000-0000-000000000000', TRUE, 'Minimum UUID did not validate'],
- ['ffffffff-ffff-ffff-ffff-ffffffffffff', TRUE, 'Maximum UUID did not validate'],
- // These are invalid UUIDs.
- ['0ab26e6b-f074-4e44-9da-601205fa0e976', FALSE, 'Invalid format was validated'],
- ['0ab26e6b-f074-4e44-9daf-1205fa0e9761f', FALSE, 'Invalid length was validated'],
- ];
- }
- }
|