commit
cd4cceaf7b
|
@ -40,18 +40,19 @@ class SpdxLicenseIdentifier
|
||||||
public function validate($license)
|
public function validate($license)
|
||||||
{
|
{
|
||||||
if (is_array($license)) {
|
if (is_array($license)) {
|
||||||
$license = count($license) > 1 ? '('.implode(' or ', $license).')' : reset($license);
|
$count = count($license);
|
||||||
|
if ($count !== count(array_filter($license, 'is_string'))) {
|
||||||
|
throw new \InvalidArgumentException('Array of strings expected.');
|
||||||
|
}
|
||||||
|
$license = $count > 1 ? '('.implode(' or ', $license).')' : (string) reset($license);
|
||||||
}
|
}
|
||||||
if (!is_string($license)) {
|
if (!is_string($license)) {
|
||||||
throw new \InvalidArgumentException(sprintf(
|
throw new \InvalidArgumentException(sprintf(
|
||||||
'Array or String expected, %s given.', gettype($license)
|
'Array or String expected, %s given.', gettype($license)
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
if (!$this->isValidLicenseString($license)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return $this->isValidLicenseString($license);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -32,6 +32,7 @@ class SpdxLicenseIdentifierTest extends TestCase
|
||||||
{
|
{
|
||||||
return array(
|
return array(
|
||||||
array(""),
|
array(""),
|
||||||
|
array(array()),
|
||||||
array("The system pwns you"),
|
array("The system pwns you"),
|
||||||
array("()"),
|
array("()"),
|
||||||
array("(MIT)"),
|
array("(MIT)"),
|
||||||
|
@ -50,6 +51,17 @@ class SpdxLicenseIdentifierTest extends TestCase
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function provideInvalidArgument()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array(null),
|
||||||
|
array(new \stdClass),
|
||||||
|
array(array(new \stdClass)),
|
||||||
|
array(array("mixed", new \stdClass)),
|
||||||
|
array(array(new \stdClass, new \stdClass)),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @dataProvider provideValidLicenses
|
* @dataProvider provideValidLicenses
|
||||||
* @param $license
|
* @param $license
|
||||||
|
@ -71,11 +83,12 @@ class SpdxLicenseIdentifierTest extends TestCase
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* @dataProvider provideInvalidArgument
|
||||||
* @expectedException InvalidArgumentException
|
* @expectedException InvalidArgumentException
|
||||||
*/
|
*/
|
||||||
public function testInvalidArgument()
|
public function testInvalidArgument($invalidArgument)
|
||||||
{
|
{
|
||||||
$validator = new SpdxLicenseIdentifier();
|
$validator = new SpdxLicenseIdentifier();
|
||||||
$validator->validate(null);
|
$validator->validate($invalidArgument);
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue