SequenceTest.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\DB\Test\Unit\Ddl;
  7. use Magento\Framework\DB\Ddl\Sequence;
  8. use Magento\Framework\DB\Ddl\Table;
  9. class SequenceTest extends \PHPUnit\Framework\TestCase
  10. {
  11. /**
  12. * @param array $params
  13. * @param string $expectedQuery
  14. * @dataProvider createSequenceDdlDataProvider
  15. */
  16. public function testGetCreateSequenceDdl(array $params, $expectedQuery)
  17. {
  18. $model = new Sequence();
  19. $actualQuery = $model->getCreateSequenceDdl(...array_values($params));
  20. $cleanString = function ($string) {
  21. return trim(preg_replace('/\s+/', ' ', $string));
  22. };
  23. $this->assertEquals(
  24. $cleanString($expectedQuery),
  25. $cleanString($actualQuery)
  26. );
  27. }
  28. public function testDropSequence()
  29. {
  30. $this->assertEquals(
  31. 'DROP TABLE someTable',
  32. (new Sequence())->dropSequence('someTable')
  33. );
  34. }
  35. /**
  36. * @return array
  37. */
  38. public function createSequenceDdlDataProvider()
  39. {
  40. return [
  41. [
  42. [
  43. 'name' => 'someName'
  44. ],
  45. 'CREATE TABLE someName (
  46. sequence_value integer UNSIGNED NOT NULL AUTO_INCREMENT,
  47. PRIMARY KEY (sequence_value)
  48. ) AUTO_INCREMENT = 1 ENGINE = INNODB'
  49. ],
  50. [
  51. [
  52. 'name' => 'someName',
  53. 'startNumber' => 123,
  54. 'columnType' => Table::TYPE_BIGINT,
  55. 'unsigned' => false
  56. ],
  57. 'CREATE TABLE someName (
  58. sequence_value bigint NOT NULL AUTO_INCREMENT,
  59. PRIMARY KEY (sequence_value)
  60. ) AUTO_INCREMENT = 123 ENGINE = INNODB'
  61. ]
  62. ];
  63. }
  64. }