/**
  * Validate customer attribute values.
  *
  * @param CustomerModel $customerModel
  * @throws InputException
  * @return void
  *
  * @SuppressWarnings(PHPMD.CyclomaticComplexity)
  * @SuppressWarnings(PHPMD.NPathComplexity)
  */
 private function validate(CustomerModel $customerModel)
 {
     $exception = new InputException();
     if (!\Zend_Validate::is(trim($customerModel->getFirstname()), 'NotEmpty')) {
         $exception->addError(InputException::REQUIRED_FIELD, ['fieldName' => 'firstname']);
     }
     if (!\Zend_Validate::is(trim($customerModel->getLastname()), 'NotEmpty')) {
         $exception->addError(InputException::REQUIRED_FIELD, ['fieldName' => 'lastname']);
     }
     if (!\Zend_Validate::is($customerModel->getEmail(), 'EmailAddress')) {
         $exception->addError(InputException::INVALID_FIELD_VALUE, ['fieldName' => 'email', 'value' => $customerModel->getEmail()]);
     }
     $dob = $this->getAttributeMetadata('dob');
     if (!is_null($dob) && $dob->isRequired() && '' == trim($customerModel->getDob())) {
         $exception->addError(InputException::REQUIRED_FIELD, ['fieldName' => 'dob']);
     }
     $taxvat = $this->getAttributeMetadata('taxvat');
     if (!is_null($taxvat) && $taxvat->isRequired() && '' == trim($customerModel->getTaxvat())) {
         $exception->addError(InputException::REQUIRED_FIELD, ['fieldName' => 'taxvat']);
     }
     $gender = $this->getAttributeMetadata('gender');
     if (!is_null($gender) && $gender->isRequired() && '' == trim($customerModel->getGender())) {
         $exception->addError(InputException::REQUIRED_FIELD, ['fieldName' => 'gender']);
     }
     if ($exception->wasErrorAdded()) {
         throw $exception;
     }
 }