FeatureSetTest.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. declare(strict_types=1);
  3. namespace Ramsey\Uuid\Test;
  4. use Mockery;
  5. use Ramsey\Uuid\Builder\FallbackBuilder;
  6. use Ramsey\Uuid\Converter\TimeConverterInterface;
  7. use Ramsey\Uuid\FeatureSet;
  8. use Ramsey\Uuid\Generator\DefaultNameGenerator;
  9. use Ramsey\Uuid\Generator\PeclUuidTimeGenerator;
  10. use Ramsey\Uuid\Generator\UnixTimeGenerator;
  11. use Ramsey\Uuid\Guid\GuidBuilder;
  12. use Ramsey\Uuid\Math\BrickMathCalculator;
  13. use Ramsey\Uuid\Provider\NodeProviderInterface;
  14. use Ramsey\Uuid\Validator\ValidatorInterface;
  15. class FeatureSetTest extends TestCase
  16. {
  17. public function testGuidBuilderIsSelected(): void
  18. {
  19. $featureSet = new FeatureSet(true, true);
  20. $this->assertInstanceOf(GuidBuilder::class, $featureSet->getBuilder());
  21. }
  22. public function testFallbackBuilderIsSelected(): void
  23. {
  24. $featureSet = new FeatureSet(false, true);
  25. $this->assertInstanceOf(FallbackBuilder::class, $featureSet->getBuilder());
  26. }
  27. public function testSetValidatorSetsTheProvidedValidator(): void
  28. {
  29. $validator = Mockery::mock(ValidatorInterface::class);
  30. $featureSet = new FeatureSet();
  31. $featureSet->setValidator($validator);
  32. $this->assertSame($validator, $featureSet->getValidator());
  33. }
  34. public function testGetTimeConverter(): void
  35. {
  36. $featureSet = new FeatureSet();
  37. $this->assertInstanceOf(TimeConverterInterface::class, $featureSet->getTimeConverter());
  38. }
  39. public function testDefaultNameGeneratorIsSelected(): void
  40. {
  41. $featureSet = new FeatureSet();
  42. $this->assertInstanceOf(DefaultNameGenerator::class, $featureSet->getNameGenerator());
  43. }
  44. public function testPeclUuidTimeGeneratorIsSelected(): void
  45. {
  46. $featureSet = new FeatureSet(false, false, false, false, true);
  47. $this->assertInstanceOf(PeclUuidTimeGenerator::class, $featureSet->getTimeGenerator());
  48. }
  49. public function testGetCalculator(): void
  50. {
  51. $featureSet = new FeatureSet();
  52. $this->assertInstanceOf(BrickMathCalculator::class, $featureSet->getCalculator());
  53. }
  54. public function testSetNodeProvider(): void
  55. {
  56. $nodeProvider = Mockery::mock(NodeProviderInterface::class);
  57. $featureSet = new FeatureSet();
  58. $featureSet->setNodeProvider($nodeProvider);
  59. $this->assertSame($nodeProvider, $featureSet->getNodeProvider());
  60. }
  61. public function testGetUnixTimeGenerator(): void
  62. {
  63. $featureSet = new FeatureSet();
  64. $this->assertInstanceOf(UnixTimeGenerator::class, $featureSet->getUnixTimeGenerator());
  65. }
  66. }