MultiSelectConfigOptionTest.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\Setup\Test\Unit\Option;
  7. use Magento\Framework\Setup\Option\MultiSelectConfigOption;
  8. use Magento\Framework\Setup\Option\TextConfigOption;
  9. class MultiSelectConfigOptionTest extends \PHPUnit\Framework\TestCase
  10. {
  11. /**
  12. * @expectedException \InvalidArgumentException
  13. * @expectedExceptionMessage Frontend input type has to be 'multiselect', 'textarea' or 'checkbox'.
  14. */
  15. public function testConstructInvalidFrontendType()
  16. {
  17. new MultiSelectConfigOption('test', TextConfigOption::FRONTEND_WIZARD_TEXT, ['a', 'b'], 'path/to/value');
  18. }
  19. /**
  20. * @expectedException \InvalidArgumentException
  21. * @expectedExceptionMessage Select options can't be empty.
  22. */
  23. public function testConstructNoOptions()
  24. {
  25. new MultiSelectConfigOption('test', MultiSelectConfigOption::FRONTEND_WIZARD_MULTISELECT, [], 'path/to/value');
  26. }
  27. public function testGetFrontendType()
  28. {
  29. $option = new MultiSelectConfigOption(
  30. 'test',
  31. MultiSelectConfigOption::FRONTEND_WIZARD_MULTISELECT,
  32. ['a', 'b'],
  33. 'path/to/value'
  34. );
  35. $this->assertEquals(MultiSelectConfigOption::FRONTEND_WIZARD_MULTISELECT, $option->getFrontendType());
  36. }
  37. public function testGetSelectOptions()
  38. {
  39. $option = new MultiSelectConfigOption(
  40. 'test',
  41. MultiSelectConfigOption::FRONTEND_WIZARD_MULTISELECT,
  42. ['a', 'b'],
  43. 'path/to/value'
  44. );
  45. $this->assertEquals(['a', 'b'], $option->getSelectOptions());
  46. }
  47. /**
  48. * @expectedException \InvalidArgumentException
  49. * @expectedExceptionMessage Value specified for
  50. */
  51. public function testValidateException()
  52. {
  53. $option = new MultiSelectConfigOption(
  54. 'test',
  55. MultiSelectConfigOption::FRONTEND_WIZARD_MULTISELECT,
  56. ['a', 'b'],
  57. 'path/to/value'
  58. );
  59. $option->validate(['c', 'd']);
  60. }
  61. }