/**
  * @dataProvider fingerprintProvider
  * @expectedException WirecardCEE_Stdlib_Exception_InvalidValueException
  */
 public function testGenerateException($values, $fingerprintOrder, $hash)
 {
     $fingerprintOrder[] = 'FailKey';
     try {
         WirecardCEE_Stdlib_Fingerprint::generate($values, new WirecardCEE_Stdlib_FingerprintOrder($fingerprintOrder));
     } catch (WirecardCEE_Stdlib_Exception_InvalidValueException $e) {
         $this->assertEquals('Value for key FAILKEY not found in values array.', $e->getMessage());
         throw $e;
     }
 }
 /**
  * method to calculate fingerprint from given fields.
  *
  * @return string - fingerprint hash
  */
 protected function _calculateFingerprint()
 {
     $oFingerprintOrder = $this->_fingerprintOrder;
     if ($this->_fingerprintOrderType == self::$FINGERPRINT_TYPE_DYNAMIC) {
         // we have to add REQUESTFINGERPRINTORDER to local fingerprintOrder to add correct value to param list
         $oFingerprintOrder[] = self::REQUEST_FINGERPRINT_ORDER;
         $this->_requestData[self::REQUEST_FINGERPRINT_ORDER] = (string) $oFingerprintOrder;
     }
     // fingerprintFields == requestFields + secret - secret MUST NOT be send as param
     $fingerprintFields = $this->_requestData;
     $fingerprintFields[self::SECRET] = $this->_secret;
     return WirecardCEE_Stdlib_Fingerprint::generate($fingerprintFields, $oFingerprintOrder);
 }