![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-customer/Test/Unit/Model/Metadata/Form/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Customer\Test\Unit\Model\Metadata\Form; use Magento\Customer\Api\Data\OptionInterface; use Magento\Customer\Model\Metadata\Form\Select; use Magento\Framework\Phrase; /** * test Magento\Customer\Model\Metadata\Form\Select */ class SelectTest extends AbstractFormTestCase { /** * Create an instance of the class that is being tested * * @param string|int|bool|null $value The value undergoing testing by a given test * @return Select */ protected function getClass($value) { return new Select( $this->localeMock, $this->loggerMock, $this->attributeMetadataMock, $this->localeResolverMock, $value, 0 ); } /** * @param string|int|bool|null $value to assign to Select * @param bool $expected text output * @dataProvider validateValueDataProvider */ public function testValidateValue($value, $expected) { $select = $this->getClass($value); $actual = $select->validateValue($value); $this->assertEquals($expected, $actual); } /** * @return array */ public function validateValueDataProvider() { return [ 'empty' => ['', true], '0' => [0, true], 'zero' => ['0', true], 'string' => ['some text', true], 'number' => [123, true], 'true' => [true, true], 'false' => [false, true] ]; } /** * @param string|int|bool|null $value to assign to boolean * @param string|bool $expected text output * @dataProvider validateValueRequiredDataProvider */ public function testValidateValueRequired($value, $expected) { $this->attributeMetadataMock->expects($this->any())->method('isRequired')->willReturn(true); $select = $this->getClass($value); $actual = $select->validateValue($value); if (is_bool($actual)) { $this->assertEquals($expected, $actual); } else { if (is_array($actual)) { $actual = array_map( function (Phrase $message) { return $message->__toString(); }, $actual ); } $this->assertContains($expected, $actual); } } /** * @return array */ public function validateValueRequiredDataProvider() { return [ 'empty' => ['', '"" is a required value.'], 'null' => [null, '"" is a required value.'], '0' => [0, '"" is a required value.'], 'string' => ['some text', true], 'number' => [123, true], 'true' => [true, true], 'false' => [false, '"" is a required value.'] ]; } /** * @param string|int|bool|null $value * @param string|int $expected * @dataProvider outputValueDataProvider */ public function testOutputValue($value, $expected) { $option1 = $this->getMockBuilder(OptionInterface::class) ->disableOriginalConstructor() ->setMethods(['getLabel', 'getValue']) ->getMockForAbstractClass(); $option1->expects($this->any()) ->method('getLabel') ->willReturn('fourteen'); $option1->expects($this->any()) ->method('getValue') ->willReturn('14'); $option2 = $this->getMockBuilder(OptionInterface::class) ->disableOriginalConstructor() ->setMethods(['getLabel', 'getValue']) ->getMockForAbstractClass(); $option2->expects($this->any()) ->method('getLabel') ->willReturn('some string'); $option2->expects($this->any()) ->method('getValue') ->willReturn('some key'); $option3 = $this->getMockBuilder(OptionInterface::class) ->disableOriginalConstructor() ->setMethods(['getLabel', 'getValue']) ->getMockForAbstractClass(); $option3->expects($this->any()) ->method('getLabel') ->willReturn('True'); $option3->expects($this->any()) ->method('getValue') ->willReturn('true'); $this->attributeMetadataMock->expects($this->any()) ->method('getOptions') ->willReturn( [ $option1, $option2, $option3, ] ); $select = $this->getClass($value); $actual = (string)$select->outputValue(); $this->assertStringContainsString($expected, $actual); } /** * @return array */ public function outputValueDataProvider() { return [ 'empty' => ['', ''], 'null' => [null, ''], 'number' => [14, 'fourteen'], 'string' => ['some key', 'some string'], 'boolean' => [true, ''], 'unknown' => ['unknownKey', ''], 'true' => ['true', 'True'] ]; } }