/**
  * FeedbackResponse constructor
  *
  * @param  Request $request
  */
 public function __construct(Request $request)
 {
     foreach (array_merge($request->query->all(), $request->request->all()) as $receivedField => $value) {
         if (Sha1Out::isAcceptableField($receivedField)) {
             if ((string) $value !== '') {
                 $this->addValue($receivedField, $value);
             }
         } elseif ('SHASIGN' === strtoupper($receivedField) && null !== $value) {
             $this->hash = $value;
             // SHASIGN is not part of the acceptable fields for the calculation of the hash
         }
     }
 }
 public function testGenerate()
 {
     $params = array('PayId' => 123456, 'CURRENCY' => 'EUR', 'NCERROR' => 0, 'BRAND' => '');
     $sha1outGen = new Sha1Out($this->createTokenMock());
     $this->assertEquals('236FC768128A1104F949912E67ADFD4F2ED54341', $sha1outGen->generate($params), 'Generated hash is different from expected.');
 }