private function assertBindingValid(BindingDescriptor $bindingDescriptor)
 {
     if ($bindingDescriptor->isTypeNotFound() || $bindingDescriptor->isTypeNotEnabled()) {
         return;
     }
     foreach ($bindingDescriptor->getLoadErrors() as $exception) {
         throw $exception;
     }
 }
 private function assertBindingValid(BindingDescriptor $bindingDescriptor)
 {
     if ($bindingDescriptor->isTypeNotFound() || $bindingDescriptor->isTypeNotEnabled()) {
         return;
     }
     foreach ($bindingDescriptor->getViolations() as $violation) {
         switch ($violation->getCode()) {
             case ConstraintViolation::NO_SUCH_PARAMETER:
                 throw NoSuchParameterException::forParameterName($violation->getParameterName(), $violation->getTypeName());
             case ConstraintViolation::MISSING_PARAMETER:
                 throw MissingParameterException::forParameterName($violation->getParameterName(), $violation->getTypeName());
         }
     }
 }
 public function testAddRootBindingDoesNotFailIfTypeNotEnabledAndIgnoreTypeNotEnabled()
 {
     $this->initDefaultManager();
     $binding = new BindingDescriptor('/path', 'my/type');
     $this->rootPackageFile->addTypeDescriptor(new BindingTypeDescriptor('my/type'));
     $this->packageFile1->addTypeDescriptor(new BindingTypeDescriptor('my/type'));
     // The type is not enabled
     $this->discovery->expects($this->never())->method('bind');
     $this->packageFileStorage->expects($this->once())->method('saveRootPackageFile')->with($this->rootPackageFile)->will($this->returnCallback(function (RootPackageFile $rootPackageFile) use($binding) {
         $bindings = $rootPackageFile->getBindingDescriptors();
         PHPUnit_Framework_Assert::assertSame(array($binding), $bindings);
         PHPUnit_Framework_Assert::assertTrue($binding->isTypeNotEnabled());
     }));
     $this->manager->addRootBinding($binding, DiscoveryManager::IGNORE_TYPE_NOT_ENABLED);
 }