ConstraintTest.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. /**
  7. * Test case for \Magento\Framework\Validator\Constraint
  8. */
  9. namespace Magento\Framework\Validator\Test\Unit;
  10. class ConstraintTest extends \PHPUnit\Framework\TestCase
  11. {
  12. /**
  13. * @var \Magento\Framework\Validator\Constraint
  14. */
  15. protected $_constraint;
  16. /**
  17. * @var \Magento\Framework\Validator\ValidatorInterface|\PHPUnit_Framework_MockObject_MockObject
  18. */
  19. protected $_validatorMock;
  20. /**
  21. * Set up
  22. */
  23. protected function setUp()
  24. {
  25. $this->_validatorMock = $this->getMockBuilder(
  26. \Magento\Framework\Validator\AbstractValidator::class
  27. )->setMethods(
  28. ['isValid', 'getMessages']
  29. )->getMock();
  30. $this->_constraint = new \Magento\Framework\Validator\Constraint($this->_validatorMock);
  31. }
  32. /**
  33. * Test getAlias method
  34. */
  35. public function testGetAlias()
  36. {
  37. $this->assertEmpty($this->_constraint->getAlias());
  38. $alias = 'foo';
  39. $constraint = new \Magento\Framework\Validator\Constraint($this->_validatorMock, $alias);
  40. $this->assertEquals($alias, $constraint->getAlias());
  41. }
  42. /**
  43. * Test isValid method
  44. *
  45. * @dataProvider isValidDataProvider
  46. *
  47. * @param mixed $value
  48. * @param bool $expectedResult
  49. * @param array $expectedMessages
  50. */
  51. public function testIsValid($value, $expectedResult, $expectedMessages = [])
  52. {
  53. $this->_validatorMock->expects(
  54. $this->once()
  55. )->method(
  56. 'isValid'
  57. )->with(
  58. $value
  59. )->will(
  60. $this->returnValue($expectedResult)
  61. );
  62. if ($expectedResult) {
  63. $this->_validatorMock->expects($this->never())->method('getMessages');
  64. } else {
  65. $this->_validatorMock->expects(
  66. $this->once()
  67. )->method(
  68. 'getMessages'
  69. )->will(
  70. $this->returnValue($expectedMessages)
  71. );
  72. }
  73. $this->assertEquals($expectedResult, $this->_constraint->isValid($value));
  74. $this->assertEquals($expectedMessages, $this->_constraint->getMessages());
  75. }
  76. /**
  77. * Data provider for testIsValid
  78. *
  79. * @return array
  80. */
  81. public function isValidDataProvider()
  82. {
  83. return [['test', true], ['test', false, ['foo']]];
  84. }
  85. /**
  86. * Check translator was set into wrapped validator
  87. */
  88. public function testSetTranslator()
  89. {
  90. /** @var \Magento\Framework\Translate\AbstractAdapter $translator */
  91. $translator = $this->getMockBuilder(
  92. \Magento\Framework\Translate\AdapterInterface::class
  93. )->getMockForAbstractClass();
  94. $this->_constraint->setTranslator($translator);
  95. $this->assertEquals($translator, $this->_validatorMock->getTranslator());
  96. $this->assertEquals($translator, $this->_constraint->getTranslator());
  97. }
  98. }