Skip to content

Commit

Permalink
FIX GroupClassHydrator
Browse files Browse the repository at this point in the history
  • Loading branch information
goten4 committed May 22, 2015
1 parent 298ab1f commit 66143d0
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 15 deletions.
2 changes: 1 addition & 1 deletion src/KmbPmProxy/Hydrator/GroupClassHydrator.php
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class GroupClassHydrator implements GroupClassHydratorInterface
*/
public function hydrate($templates, $class)
{
if (!empty($templates)) {
if (is_array($templates) && !empty($templates)) {
$availableParameters = array_filter($templates, function ($template) use ($class) {
return !$class->hasParameterWithName($template->name);
});
Expand Down
32 changes: 18 additions & 14 deletions src/KmbPmProxy/Validator/PuppetClassValidator.php
Original file line number Diff line number Diff line change
Expand Up @@ -57,23 +57,27 @@ public function __construct($options = null)
*/
public function isValid($value)
{
foreach ($value->getParametersDefinitions() as $parameterDefinition) {
$name = $parameterDefinition->name;
$parameterTemplate = $value->getParameterTemplate($name);
if ($parameterTemplate === null) {
$this->abstractOptions['messages'][$name] = $this->createMessage(self::MSG_MISSING_PARAMETER, $name);
} elseif ($parameterDefinition->required !== $parameterTemplate->required) {
$this->abstractOptions['messages'][$name] = $this->createMessage(
$parameterDefinition->required ? self::MSG_REQUIRED : self::MSG_NOT_REQUIRED,
$name
);
if ($value->hasParametersDefinitions()) {
foreach ($value->getParametersDefinitions() as $parameterDefinition) {
$name = $parameterDefinition->name;
$parameterTemplate = $value->getParameterTemplate($name);
if ($parameterTemplate === null) {
$this->abstractOptions['messages'][$name] = $this->createMessage(self::MSG_MISSING_PARAMETER, $name);
} elseif ($parameterDefinition->required !== $parameterTemplate->required) {
$this->abstractOptions['messages'][$name] = $this->createMessage(
$parameterDefinition->required ? self::MSG_REQUIRED : self::MSG_NOT_REQUIRED,
$name
);
}
}
}

foreach ($value->getParametersTemplates() as $parameterTemplate) {
$name = $parameterTemplate->name;
if (!$value->hasParameterDefinition($name)) {
$this->abstractOptions['messages'][$name] = $this->createMessage(self::MSG_UNDEFINED_PARAMETER, $name);
if ($value->hasParametersTemplates()) {
foreach ($value->getParametersTemplates() as $parameterTemplate) {
$name = $parameterTemplate->name;
if (!$value->hasParameterDefinition($name)) {
$this->abstractOptions['messages'][$name] = $this->createMessage(self::MSG_UNDEFINED_PARAMETER, $name);
}
}
}

Expand Down

0 comments on commit 66143d0

Please sign in to comment.