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()); }