commit
cd4cceaf7b
|
@ -40,18 +40,19 @@ class SpdxLicenseIdentifier
|
|||
public function validate($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)) {
|
||||
throw new \InvalidArgumentException(sprintf(
|
||||
'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(
|
||||
array(""),
|
||||
array(array()),
|
||||
array("The system pwns you"),
|
||||
array("()"),
|
||||
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
|
||||
* @param $license
|
||||
|
@ -71,11 +83,12 @@ class SpdxLicenseIdentifierTest extends TestCase
|
|||
}
|
||||
|
||||
/**
|
||||
* @dataProvider provideInvalidArgument
|
||||
* @expectedException InvalidArgumentException
|
||||
*/
|
||||
public function testInvalidArgument()
|
||||
public function testInvalidArgument($invalidArgument)
|
||||
{
|
||||
$validator = new SpdxLicenseIdentifier();
|
||||
$validator->validate(null);
|
||||
$validator->validate($invalidArgument);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue