mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-14 06:14:23 +00:00
improve function isEmptyValue + tests
This commit is contained in:
parent
24f9db6ae7
commit
573697d8c7
@ -269,11 +269,6 @@ class CustomFieldChoice extends AbstractCustomField
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// if only one choice...
|
|
||||||
if (is_string($value)) {
|
|
||||||
return empty($value);
|
|
||||||
}
|
|
||||||
|
|
||||||
// if multiple choice OR multiple/single choice with other
|
// if multiple choice OR multiple/single choice with other
|
||||||
if (is_array($value))
|
if (is_array($value))
|
||||||
{
|
{
|
||||||
@ -282,17 +277,14 @@ class CustomFieldChoice extends AbstractCustomField
|
|||||||
if ($value['_choices'] === NULL) {
|
if ($value['_choices'] === NULL) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (is_string($value['_choices'])) {
|
return empty($value['_choices']);
|
||||||
return empty($value);
|
|
||||||
}
|
|
||||||
if (is_array($value['_choices'])){
|
|
||||||
return count($value['_choices']) > 0;
|
|
||||||
}
|
|
||||||
} else { // we do not have 'allow other'
|
} else { // we do not have 'allow other'
|
||||||
return count($value) > .0;
|
return empty($value);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
return empty($value);
|
||||||
}
|
}
|
||||||
|
|
||||||
throw \LogicException("This case is not expected.");
|
throw \LogicException("This case is not expected.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -344,22 +344,79 @@ class CustomFieldsChoiceTest extends KernelTestCase
|
|||||||
////////////////////////////////////////
|
////////////////////////////////////////
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* test the not empty with the not-empty data provider
|
||||||
*
|
*
|
||||||
* @param mixed $data
|
* @param mixed $data
|
||||||
* @dataProvider serializedRepresentationDataProvider
|
* @dataProvider serializedRepresentationDataProvider
|
||||||
*/
|
*/
|
||||||
public function testIsEmptyValueNotEmpty($data)
|
public function testIsEmptyValueNotEmpty($data)
|
||||||
{
|
{
|
||||||
$this->markTestSkipped("We have to improve the isEmptyFunction");
|
$customField = $this->generateCustomField(array(
|
||||||
|
CustomFieldChoice::ALLOW_OTHER => false,
|
||||||
|
CustomFieldChoice::MULTIPLE => true
|
||||||
|
));
|
||||||
|
|
||||||
|
$isEmpty = $this->cfChoice->isEmptyValue($data, $customField);
|
||||||
|
|
||||||
|
$this->assertFalse($isEmpty);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @dataProvider emptyDataProvider
|
||||||
|
* @param mixed $data
|
||||||
|
*/
|
||||||
|
public function testIsEmptyValueEmpty($data)
|
||||||
|
{
|
||||||
$customField = $this->generateCustomField(array(
|
$customField = $this->generateCustomField(array(
|
||||||
CustomFieldChoice::ALLOW_OTHER => false,
|
CustomFieldChoice::ALLOW_OTHER => false,
|
||||||
CustomFieldChoice::MULTIPLE => true
|
CustomFieldChoice::MULTIPLE => true
|
||||||
));
|
));
|
||||||
|
|
||||||
$deserialized = $this->cfChoice->deserialize($data, $customField);
|
$isEmpty = $this->cfChoice->isEmptyValue($data, $customField);
|
||||||
$isEmpty = $this->cfChoice->isEmptyValue($deserialized, $customField);
|
|
||||||
|
|
||||||
$this->assertFalse($isEmpty);
|
$this->assertTrue($isEmpty);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* provide empty data in different possible reprsentation
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function emptyDataProvider()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
// 0
|
||||||
|
array(
|
||||||
|
// signle
|
||||||
|
''
|
||||||
|
),
|
||||||
|
// 1
|
||||||
|
array(
|
||||||
|
// single
|
||||||
|
null
|
||||||
|
),
|
||||||
|
// 2
|
||||||
|
array(
|
||||||
|
// signle with allow other
|
||||||
|
array('_other' => 'something', '_choices' => '')
|
||||||
|
),
|
||||||
|
// 3
|
||||||
|
array(
|
||||||
|
// multiple
|
||||||
|
array()
|
||||||
|
),
|
||||||
|
// 4
|
||||||
|
array(
|
||||||
|
// multiple with allow other
|
||||||
|
array('_other' => 'something', '_choices' => array())
|
||||||
|
),
|
||||||
|
// 5
|
||||||
|
array(
|
||||||
|
// multiple with allow other
|
||||||
|
array('_other' => '', '_choices' => array())
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user