public function testCardFieldGroupPrecedence()
 {
     // Data needed to initialize card model.
     $data = ['MagneprintData' => uniqid(), 'EncryptedTrack2Data' => uniqid(), 'EncryptedTrack1Data' => uniqid(), 'EncryptedCardData' => uniqid(), 'Track2Data' => uniqid(), 'Track1Data' => uniqid(), 'CardNumber' => '4111111111111111', 'ExpirationMonth' => '01', 'ExpirationYear' => gmdate('Y') + 2];
     // Fields to look for in precedence order.
     $fields = ['MagneprintData', 'EncryptedTrack2Data', 'EncryptedTrack1Data', 'EncryptedCardData', 'Track2Data', 'Track1Data', 'CardNumber'];
     while ($fields) {
         $doc = new \DOMDocument('1.0');
         $model = new Card();
         $model->initialize($data)->appendToDom($doc);
         $this->assertSame(1, $doc->getElementsByTagName(current($fields))->length, 'Did not find expected "' . current($fields) . '" node');
         // Remove highest precedence element
         array_shift($fields);
         array_shift($data);
     }
 }
 public function getCardModel()
 {
     $model = new Card();
     return $model->initialize($this->getParameters());
 }